Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/files_texteditor.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorTom Needham <tom@owncloud.com>2015-11-18 14:51:42 +0300
committerTom Needham <tom@owncloud.com>2015-11-18 14:51:42 +0300
commitf811b470c8bc85c4d7f864fd3a449589cfb8eaaa (patch)
tree738ed5abd5b963126431108607bcbf29c0d563a0 /js
parent9c0f59f5bb12fe74d278cd3802fd690f1c379c21 (diff)
Remove unnecessary worker files from distribution
Diffstat (limited to 'js')
-rw-r--r--js/vendor/ace/src-noconflict/worker-coffee.js7441
-rw-r--r--js/vendor/ace/src-noconflict/worker-css.js8235
-rw-r--r--js/vendor/ace/src-noconflict/worker-javascript.js9980
-rw-r--r--js/vendor/ace/src-noconflict/worker-json.js2251
-rw-r--r--js/vendor/ace/src-noconflict/worker-lua.js3487
-rw-r--r--js/vendor/ace/src-noconflict/worker-php.js6847
-rw-r--r--js/vendor/ace/src-noconflict/worker-xquery.js21843
7 files changed, 0 insertions, 60084 deletions
diff --git a/js/vendor/ace/src-noconflict/worker-coffee.js b/js/vendor/ace/src-noconflict/worker-coffee.js
deleted file mode 100644
index e8e3484..0000000
--- a/js/vendor/ace/src-noconflict/worker-coffee.js
+++ /dev/null
@@ -1,7441 +0,0 @@
-"no use strict";
-;(function(window) {
-if (typeof window.window != "undefined" && window.document) {
- return;
-}
-
-window.console = function() {
- var msgs = Array.prototype.slice.call(arguments, 0);
- postMessage({type: "log", data: msgs});
-};
-window.console.error =
-window.console.warn =
-window.console.log =
-window.console.trace = window.console;
-
-window.window = window;
-window.ace = window;
-
-window.normalizeModule = function(parentId, moduleName) {
- if (moduleName.indexOf("!") !== -1) {
- var chunks = moduleName.split("!");
- return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
- }
- if (moduleName.charAt(0) == ".") {
- var base = parentId.split("/").slice(0, -1).join("/");
- moduleName = base + "/" + moduleName;
-
- while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
- var previous = moduleName;
- moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
- }
- }
-
- return moduleName;
-};
-
-window.require = function(parentId, id) {
- if (!id) {
- id = parentId
- parentId = null;
- }
- if (!id.charAt)
- throw new Error("worker.js require() accepts only (parentId, id) as arguments");
-
- id = normalizeModule(parentId, id);
-
- var module = require.modules[id];
- if (module) {
- if (!module.initialized) {
- module.initialized = true;
- module.exports = module.factory().exports;
- }
- return module.exports;
- }
-
- var chunks = id.split("/");
- chunks[0] = require.tlns[chunks[0]] || chunks[0];
- var path = chunks.join("/") + ".js";
-
- require.id = id;
- importScripts(path);
- return require(parentId, id);
-};
-
-require.modules = {};
-require.tlns = {};
-
-window.define = function(id, deps, factory) {
- if (arguments.length == 2) {
- factory = deps;
- if (typeof id != "string") {
- deps = id;
- id = require.id;
- }
- } else if (arguments.length == 1) {
- factory = id;
- id = require.id;
- }
-
- if (id.indexOf("text!") === 0)
- return;
-
- var req = function(deps, factory) {
- return require(id, deps, factory);
- };
-
- require.modules[id] = {
- exports: {},
- factory: function() {
- var module = this;
- var returnExports = factory(req, module.exports, module);
- if (returnExports)
- module.exports = returnExports;
- return module;
- }
- };
-};
-
-window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
- require.tlns = topLevelNamespaces;
-}
-
-window.initSender = function initSender() {
-
- var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
- var oop = require("ace/lib/oop");
-
- var Sender = function() {};
-
- (function() {
-
- oop.implement(this, EventEmitter);
-
- this.callback = function(data, callbackId) {
- postMessage({
- type: "call",
- id: callbackId,
- data: data
- });
- };
-
- this.emit = function(name, data) {
- postMessage({
- type: "event",
- name: name,
- data: data
- });
- };
-
- }).call(Sender.prototype);
-
- return new Sender();
-}
-
-window.main = null;
-window.sender = null;
-
-window.onmessage = function(e) {
- var msg = e.data;
- if (msg.command) {
- if (main[msg.command])
- main[msg.command].apply(main, msg.args);
- else
- throw new Error("Unknown command:" + msg.command);
- }
- else if (msg.init) {
- initBaseUrls(msg.tlns);
- require("ace/lib/es5-shim");
- sender = initSender();
- var clazz = require(msg.module)[msg.classname];
- main = new clazz(sender);
- }
- else if (msg.event && sender) {
- sender._emit(msg.event, msg.data);
- }
-};
-})(this);
-
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-var EventEmitter = {};
-var stopPropagation = function() { this.propagationStopped = true; };
-var preventDefault = function() { this.defaultPrevented = true; };
-
-EventEmitter._emit =
-EventEmitter._dispatchEvent = function(eventName, e) {
- this._eventRegistry || (this._eventRegistry = {});
- this._defaultHandlers || (this._defaultHandlers = {});
-
- var listeners = this._eventRegistry[eventName] || [];
- var defaultHandler = this._defaultHandlers[eventName];
- if (!listeners.length && !defaultHandler)
- return;
-
- if (typeof e != "object" || !e)
- e = {};
-
- if (!e.type)
- e.type = eventName;
- if (!e.stopPropagation)
- e.stopPropagation = stopPropagation;
- if (!e.preventDefault)
- e.preventDefault = preventDefault;
-
- for (var i=0; i<listeners.length; i++) {
- listeners[i](e, this);
- if (e.propagationStopped)
- break;
- }
-
- if (defaultHandler && !e.defaultPrevented)
- return defaultHandler(e, this);
-};
-
-
-EventEmitter._signal = function(eventName, e) {
- var listeners = (this._eventRegistry || {})[eventName];
- if (!listeners)
- return;
-
- for (var i=0; i<listeners.length; i++)
- listeners[i](e, this);
-};
-
-EventEmitter.once = function(eventName, callback) {
- var _self = this;
- callback && this.addEventListener(eventName, function newCallback() {
- _self.removeEventListener(eventName, newCallback);
- callback.apply(null, arguments);
- });
-};
-
-
-EventEmitter.setDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- handlers = this._defaultHandlers = {_disabled_: {}};
-
- if (handlers[eventName]) {
- var old = handlers[eventName];
- var disabled = handlers._disabled_[eventName];
- if (!disabled)
- handlers._disabled_[eventName] = disabled = [];
- disabled.push(old);
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
- handlers[eventName] = callback;
-};
-EventEmitter.removeDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- return;
- var disabled = handlers._disabled_[eventName];
-
- if (handlers[eventName] == callback) {
- var old = handlers[eventName];
- if (disabled)
- this.setDefaultHandler(eventName, disabled.pop());
- } else if (disabled) {
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
-};
-
-EventEmitter.on =
-EventEmitter.addEventListener = function(eventName, callback, capturing) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- listeners = this._eventRegistry[eventName] = [];
-
- if (listeners.indexOf(callback) == -1)
- listeners[capturing ? "unshift" : "push"](callback);
- return callback;
-};
-
-EventEmitter.off =
-EventEmitter.removeListener =
-EventEmitter.removeEventListener = function(eventName, callback) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- return;
-
- var index = listeners.indexOf(callback);
- if (index !== -1)
- listeners.splice(index, 1);
-};
-
-EventEmitter.removeAllListeners = function(eventName) {
- if (this._eventRegistry) this._eventRegistry[eventName] = [];
-};
-
-exports.EventEmitter = EventEmitter;
-
-});
-
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.inherits = (function() {
- var tempCtor = function() {};
- return function(ctor, superCtor) {
- tempCtor.prototype = superCtor.prototype;
- ctor.super_ = superCtor.prototype;
- ctor.prototype = new tempCtor();
- ctor.prototype.constructor = ctor;
- };
-}());
-
-exports.mixin = function(obj, mixin) {
- for (var key in mixin) {
- obj[key] = mixin[key];
- }
- return obj;
-};
-
-exports.implement = function(proto, mixin) {
- exports.mixin(proto, mixin);
-};
-
-});
-
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-function Empty() {}
-
-if (!Function.prototype.bind) {
- Function.prototype.bind = function bind(that) { // .length is 1
- var target = this;
- if (typeof target != "function") {
- throw new TypeError("Function.prototype.bind called on incompatible " + target);
- }
- var args = slice.call(arguments, 1); // for normal call
- var bound = function () {
-
- if (this instanceof bound) {
-
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
-
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
-
- }
-
- };
- if(target.prototype) {
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
-}
-var call = Function.prototype.call;
-var prototypeOfArray = Array.prototype;
-var prototypeOfObject = Object.prototype;
-var slice = prototypeOfArray.slice;
-var _toString = call.bind(prototypeOfObject.toString);
-var owns = call.bind(prototypeOfObject.hasOwnProperty);
-var defineGetter;
-var defineSetter;
-var lookupGetter;
-var lookupSetter;
-var supportsAccessors;
-if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
- defineGetter = call.bind(prototypeOfObject.__defineGetter__);
- defineSetter = call.bind(prototypeOfObject.__defineSetter__);
- lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
- lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
-}
-if ([1,2].splice(0).length != 2) {
- if(function() { // test IE < 9 to splice bug - see issue #138
- function makeArray(l) {
- var a = new Array(l+2);
- a[0] = a[1] = 0;
- return a;
- }
- var array = [], lengthBefore;
-
- array.splice.apply(array, makeArray(20));
- array.splice.apply(array, makeArray(26));
-
- lengthBefore = array.length; //46
- array.splice(5, 0, "XXX"); // add one element
-
- lengthBefore + 1 == array.length
-
- if (lengthBefore + 1 == array.length) {
- return true;// has right splice implementation without bugs
- }
- }()) {//IE 6/7
- var array_splice = Array.prototype.splice;
- Array.prototype.splice = function(start, deleteCount) {
- if (!arguments.length) {
- return [];
- } else {
- return array_splice.apply(this, [
- start === void 0 ? 0 : start,
- deleteCount === void 0 ? (this.length - start) : deleteCount
- ].concat(slice.call(arguments, 2)))
- }
- };
- } else {//IE8
- Array.prototype.splice = function(pos, removeCount){
- var length = this.length;
- if (pos > 0) {
- if (pos > length)
- pos = length;
- } else if (pos == void 0) {
- pos = 0;
- } else if (pos < 0) {
- pos = Math.max(length + pos, 0);
- }
-
- if (!(pos+removeCount < length))
- removeCount = length - pos;
-
- var removed = this.slice(pos, pos+removeCount);
- var insert = slice.call(arguments, 2);
- var add = insert.length;
- if (pos === length) {
- if (add) {
- this.push.apply(this, insert);
- }
- } else {
- var remove = Math.min(removeCount, length - pos);
- var tailOldPos = pos + remove;
- var tailNewPos = tailOldPos + add - remove;
- var tailCount = length - tailOldPos;
- var lengthAfterRemove = length - remove;
-
- if (tailNewPos < tailOldPos) { // case A
- for (var i = 0; i < tailCount; ++i) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } else if (tailNewPos > tailOldPos) { // case B
- for (i = tailCount; i--; ) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } // else, add == remove (nothing to do)
-
- if (add && pos === lengthAfterRemove) {
- this.length = lengthAfterRemove; // truncate array
- this.push.apply(this, insert);
- } else {
- this.length = lengthAfterRemove + add; // reserves space
- for (i = 0; i < add; ++i) {
- this[pos+i] = insert[i];
- }
- }
- }
- return removed;
- };
- }
-}
-if (!Array.isArray) {
- Array.isArray = function isArray(obj) {
- return _toString(obj) == "[object Array]";
- };
-}
-var boxedString = Object("a"),
- splitString = boxedString[0] != "a" || !(0 in boxedString);
-
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function forEach(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- thisp = arguments[1],
- i = -1,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(); // TODO message
- }
-
- while (++i < length) {
- if (i in self) {
- fun.call(thisp, self[i], i, object);
- }
- }
- };
-}
-if (!Array.prototype.map) {
- Array.prototype.map = function map(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = Array(length),
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self)
- result[i] = fun.call(thisp, self[i], i, object);
- }
- return result;
- };
-}
-if (!Array.prototype.filter) {
- Array.prototype.filter = function filter(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = [],
- value,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self) {
- value = self[i];
- if (fun.call(thisp, value, i, object)) {
- result.push(value);
- }
- }
- }
- return result;
- };
-}
-if (!Array.prototype.every) {
- Array.prototype.every = function every(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && !fun.call(thisp, self[i], i, object)) {
- return false;
- }
- }
- return true;
- };
-}
-if (!Array.prototype.some) {
- Array.prototype.some = function some(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && fun.call(thisp, self[i], i, object)) {
- return true;
- }
- }
- return false;
- };
-}
-if (!Array.prototype.reduce) {
- Array.prototype.reduce = function reduce(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduce of empty array with no initial value");
- }
-
- var i = 0;
- var result;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i++];
- break;
- }
- if (++i >= length) {
- throw new TypeError("reduce of empty array with no initial value");
- }
- } while (true);
- }
-
- for (; i < length; i++) {
- if (i in self) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- }
-
- return result;
- };
-}
-if (!Array.prototype.reduceRight) {
- Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
-
- var result, i = length - 1;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i--];
- break;
- }
- if (--i < 0) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
- } while (true);
- }
-
- do {
- if (i in this) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- } while (i--);
-
- return result;
- };
-}
-if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
- Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
-
- var i = 0;
- if (arguments.length > 1) {
- i = toInteger(arguments[1]);
- }
- i = i >= 0 ? i : Math.max(0, length + i);
- for (; i < length; i++) {
- if (i in self && self[i] === sought) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
- Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
- var i = length - 1;
- if (arguments.length > 1) {
- i = Math.min(i, toInteger(arguments[1]));
- }
- i = i >= 0 ? i : length - Math.abs(i);
- for (; i >= 0; i--) {
- if (i in self && sought === self[i]) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Object.getPrototypeOf) {
- Object.getPrototypeOf = function getPrototypeOf(object) {
- return object.__proto__ || (
- object.constructor ?
- object.constructor.prototype :
- prototypeOfObject
- );
- };
-}
-if (!Object.getOwnPropertyDescriptor) {
- var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
- "non-object: ";
- Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT + object);
- if (!owns(object, property))
- return;
-
- var descriptor, getter, setter;
- descriptor = { enumerable: true, configurable: true };
- if (supportsAccessors) {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
-
- var getter = lookupGetter(object, property);
- var setter = lookupSetter(object, property);
- object.__proto__ = prototype;
-
- if (getter || setter) {
- if (getter) descriptor.get = getter;
- if (setter) descriptor.set = setter;
- return descriptor;
- }
- }
- descriptor.value = object[property];
- return descriptor;
- };
-}
-if (!Object.getOwnPropertyNames) {
- Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
- return Object.keys(object);
- };
-}
-if (!Object.create) {
- var createEmpty;
- if (Object.prototype.__proto__ === null) {
- createEmpty = function () {
- return { "__proto__": null };
- };
- } else {
- createEmpty = function () {
- var empty = {};
- for (var i in empty)
- empty[i] = null;
- empty.constructor =
- empty.hasOwnProperty =
- empty.propertyIsEnumerable =
- empty.isPrototypeOf =
- empty.toLocaleString =
- empty.toString =
- empty.valueOf =
- empty.__proto__ = null;
- return empty;
- }
- }
-
- Object.create = function create(prototype, properties) {
- var object;
- if (prototype === null) {
- object = createEmpty();
- } else {
- if (typeof prototype != "object")
- throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
- var Type = function () {};
- Type.prototype = prototype;
- object = new Type();
- object.__proto__ = prototype;
- }
- if (properties !== void 0)
- Object.defineProperties(object, properties);
- return object;
- };
-}
-
-function doesDefinePropertyWork(object) {
- try {
- Object.defineProperty(object, "sentinel", {});
- return "sentinel" in object;
- } catch (exception) {
- }
-}
-if (Object.defineProperty) {
- var definePropertyWorksOnObject = doesDefinePropertyWork({});
- var definePropertyWorksOnDom = typeof document == "undefined" ||
- doesDefinePropertyWork(document.createElement("div"));
- if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
- var definePropertyFallback = Object.defineProperty;
- }
-}
-
-if (!Object.defineProperty || definePropertyFallback) {
- var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
- var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
- var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
- "on this javascript engine";
-
- Object.defineProperty = function defineProperty(object, property, descriptor) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT_TARGET + object);
- if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
- throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
- if (definePropertyFallback) {
- try {
- return definePropertyFallback.call(Object, object, property, descriptor);
- } catch (exception) {
- }
- }
- if (owns(descriptor, "value")) {
-
- if (supportsAccessors && (lookupGetter(object, property) ||
- lookupSetter(object, property)))
- {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
- delete object[property];
- object[property] = descriptor.value;
- object.__proto__ = prototype;
- } else {
- object[property] = descriptor.value;
- }
- } else {
- if (!supportsAccessors)
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
- if (owns(descriptor, "get"))
- defineGetter(object, property, descriptor.get);
- if (owns(descriptor, "set"))
- defineSetter(object, property, descriptor.set);
- }
-
- return object;
- };
-}
-if (!Object.defineProperties) {
- Object.defineProperties = function defineProperties(object, properties) {
- for (var property in properties) {
- if (owns(properties, property))
- Object.defineProperty(object, property, properties[property]);
- }
- return object;
- };
-}
-if (!Object.seal) {
- Object.seal = function seal(object) {
- return object;
- };
-}
-if (!Object.freeze) {
- Object.freeze = function freeze(object) {
- return object;
- };
-}
-try {
- Object.freeze(function () {});
-} catch (exception) {
- Object.freeze = (function freeze(freezeObject) {
- return function freeze(object) {
- if (typeof object == "function") {
- return object;
- } else {
- return freezeObject(object);
- }
- };
- })(Object.freeze);
-}
-if (!Object.preventExtensions) {
- Object.preventExtensions = function preventExtensions(object) {
- return object;
- };
-}
-if (!Object.isSealed) {
- Object.isSealed = function isSealed(object) {
- return false;
- };
-}
-if (!Object.isFrozen) {
- Object.isFrozen = function isFrozen(object) {
- return false;
- };
-}
-if (!Object.isExtensible) {
- Object.isExtensible = function isExtensible(object) {
- if (Object(object) === object) {
- throw new TypeError(); // TODO message
- }
- var name = '';
- while (owns(object, name)) {
- name += '?';
- }
- object[name] = true;
- var returnValue = owns(object, name);
- delete object[name];
- return returnValue;
- };
-}
-if (!Object.keys) {
- var hasDontEnumBug = true,
- dontEnums = [
- "toString",
- "toLocaleString",
- "valueOf",
- "hasOwnProperty",
- "isPrototypeOf",
- "propertyIsEnumerable",
- "constructor"
- ],
- dontEnumsLength = dontEnums.length;
-
- for (var key in {"toString": null}) {
- hasDontEnumBug = false;
- }
-
- Object.keys = function keys(object) {
-
- if (
- (typeof object != "object" && typeof object != "function") ||
- object === null
- ) {
- throw new TypeError("Object.keys called on a non-object");
- }
-
- var keys = [];
- for (var name in object) {
- if (owns(object, name)) {
- keys.push(name);
- }
- }
-
- if (hasDontEnumBug) {
- for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
- var dontEnum = dontEnums[i];
- if (owns(object, dontEnum)) {
- keys.push(dontEnum);
- }
- }
- }
- return keys;
- };
-
-}
-if (!Date.now) {
- Date.now = function now() {
- return new Date().getTime();
- };
-}
-var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
- "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
- "\u2029\uFEFF";
-if (!String.prototype.trim || ws.trim()) {
- ws = "[" + ws + "]";
- var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
- trimEndRegexp = new RegExp(ws + ws + "*$");
- String.prototype.trim = function trim() {
- return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
- };
-}
-
-function toInteger(n) {
- n = +n;
- if (n !== n) { // isNaN
- n = 0;
- } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- return n;
-}
-
-function isPrimitive(input) {
- var type = typeof input;
- return (
- input === null ||
- type === "undefined" ||
- type === "boolean" ||
- type === "number" ||
- type === "string"
- );
-}
-
-function toPrimitive(input) {
- var val, valueOf, toString;
- if (isPrimitive(input)) {
- return input;
- }
- valueOf = input.valueOf;
- if (typeof valueOf === "function") {
- val = valueOf.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- toString = input.toString;
- if (typeof toString === "function") {
- val = toString.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- throw new TypeError();
-}
-var toObject = function (o) {
- if (o == null) { // this matches both null and undefined
- throw new TypeError("can't convert "+o+" to object");
- }
- return Object(o);
-};
-
-});
-
-ace.define('ace/mode/coffee_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/coffee/coffee-script'], function(require, exports, module) {
-
-
-var oop = require("../lib/oop");
-var Mirror = require("../worker/mirror").Mirror;
-var coffee = require("../mode/coffee/coffee-script");
-
-window.addEventListener = function() {};
-
-
-var Worker = exports.Worker = function(sender) {
- Mirror.call(this, sender);
- this.setTimeout(250);
-};
-
-oop.inherits(Worker, Mirror);
-
-(function() {
-
- this.onUpdate = function() {
- var value = this.doc.getValue();
-
- try {
- coffee.parse(value).compile();
- } catch(e) {
- var loc = e.location;
- if (loc) {
- this.sender.emit("error", {
- row: loc.first_line,
- column: loc.first_column,
- endRow: loc.last_line,
- endColumn: loc.last_column,
- text: e.message,
- type: "error"
- });
- }
- return;
- }
- this.sender.emit("ok");
- };
-
-}).call(Worker.prototype);
-
-});
-ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
-
-
-var Document = require("../document").Document;
-var lang = require("../lib/lang");
-
-var Mirror = exports.Mirror = function(sender) {
- this.sender = sender;
- var doc = this.doc = new Document("");
-
- var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
-
- var _self = this;
- sender.on("change", function(e) {
- doc.applyDeltas(e.data);
- deferredUpdate.schedule(_self.$timeout);
- });
-};
-
-(function() {
-
- this.$timeout = 500;
-
- this.setTimeout = function(timeout) {
- this.$timeout = timeout;
- };
-
- this.setValue = function(value) {
- this.doc.setValue(value);
- this.deferredUpdate.schedule(this.$timeout);
- };
-
- this.getValue = function(callbackId) {
- this.sender.callback(this.doc.getValue(), callbackId);
- };
-
- this.onUpdate = function() {
- };
-
-}).call(Mirror.prototype);
-
-});
-
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-var Range = require("./range").Range;
-var Anchor = require("./anchor").Anchor;
-
-var Document = function(text) {
- this.$lines = [];
- if (text.length == 0) {
- this.$lines = [""];
- } else if (Array.isArray(text)) {
- this._insertLines(0, text);
- } else {
- this.insert({row: 0, column:0}, text);
- }
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.setValue = function(text) {
- var len = this.getLength();
- this.remove(new Range(0, 0, len, this.getLine(len-1).length));
- this.insert({row: 0, column:0}, text);
- };
- this.getValue = function() {
- return this.getAllLines().join(this.getNewLineCharacter());
- };
- this.createAnchor = function(row, column) {
- return new Anchor(this, row, column);
- };
- if ("aaa".split(/a/).length == 0)
- this.$split = function(text) {
- return text.replace(/\r\n|\r/g, "\n").split("\n");
- }
- else
- this.$split = function(text) {
- return text.split(/\r\n|\r|\n/);
- };
-
-
- this.$detectNewLine = function(text) {
- var match = text.match(/^.*?(\r\n|\r|\n)/m);
- this.$autoNewLine = match ? match[1] : "\n";
- };
- this.getNewLineCharacter = function() {
- switch (this.$newLineMode) {
- case "windows":
- return "\r\n";
- case "unix":
- return "\n";
- default:
- return this.$autoNewLine;
- }
- };
-
- this.$autoNewLine = "\n";
- this.$newLineMode = "auto";
- this.setNewLineMode = function(newLineMode) {
- if (this.$newLineMode === newLineMode)
- return;
-
- this.$newLineMode = newLineMode;
- };
- this.getNewLineMode = function() {
- return this.$newLineMode;
- };
- this.isNewLine = function(text) {
- return (text == "\r\n" || text == "\r" || text == "\n");
- };
- this.getLine = function(row) {
- return this.$lines[row] || "";
- };
- this.getLines = function(firstRow, lastRow) {
- return this.$lines.slice(firstRow, lastRow + 1);
- };
- this.getAllLines = function() {
- return this.getLines(0, this.getLength());
- };
- this.getLength = function() {
- return this.$lines.length;
- };
- this.getTextRange = function(range) {
- if (range.start.row == range.end.row) {
- return this.getLine(range.start.row)
- .substring(range.start.column, range.end.column);
- }
- var lines = this.getLines(range.start.row, range.end.row);
- lines[0] = (lines[0] || "").substring(range.start.column);
- var l = lines.length - 1;
- if (range.end.row - range.start.row == l)
- lines[l] = lines[l].substring(0, range.end.column);
- return lines.join(this.getNewLineCharacter());
- };
-
- this.$clipPosition = function(position) {
- var length = this.getLength();
- if (position.row >= length) {
- position.row = Math.max(0, length - 1);
- position.column = this.getLine(length-1).length;
- } else if (position.row < 0)
- position.row = 0;
- return position;
- };
- this.insert = function(position, text) {
- if (!text || text.length === 0)
- return position;
-
- position = this.$clipPosition(position);
- if (this.getLength() <= 1)
- this.$detectNewLine(text);
-
- var lines = this.$split(text);
- var firstLine = lines.splice(0, 1)[0];
- var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
-
- position = this.insertInLine(position, firstLine);
- if (lastLine !== null) {
- position = this.insertNewLine(position); // terminate first line
- position = this._insertLines(position.row, lines);
- position = this.insertInLine(position, lastLine || "");
- }
- return position;
- };
- this.insertLines = function(row, lines) {
- if (row >= this.getLength())
- return this.insert({row: row, column: 0}, "\n" + lines.join("\n"));
- return this._insertLines(Math.max(row, 0), lines);
- };
- this._insertLines = function(row, lines) {
- if (lines.length == 0)
- return {row: row, column: 0};
- if (lines.length > 0xFFFF) {
- var end = this._insertLines(row, lines.slice(0xFFFF));
- lines = lines.slice(0, 0xFFFF);
- }
-
- var args = [row, 0];
- args.push.apply(args, lines);
- this.$lines.splice.apply(this.$lines, args);
-
- var range = new Range(row, 0, row + lines.length, 0);
- var delta = {
- action: "insertLines",
- range: range,
- lines: lines
- };
- this._emit("change", { data: delta });
- return end || range.end;
- };
- this.insertNewLine = function(position) {
- position = this.$clipPosition(position);
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column);
- this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
-
- var end = {
- row : position.row + 1,
- column : 0
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.insertInLine = function(position, text) {
- if (text.length == 0)
- return position;
-
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column) + text
- + line.substring(position.column);
-
- var end = {
- row : position.row,
- column : position.column + text.length
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: text
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.remove = function(range) {
- range.start = this.$clipPosition(range.start);
- range.end = this.$clipPosition(range.end);
-
- if (range.isEmpty())
- return range.start;
-
- var firstRow = range.start.row;
- var lastRow = range.end.row;
-
- if (range.isMultiLine()) {
- var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
- var lastFullRow = lastRow - 1;
-
- if (range.end.column > 0)
- this.removeInLine(lastRow, 0, range.end.column);
-
- if (lastFullRow >= firstFullRow)
- this._removeLines(firstFullRow, lastFullRow);
-
- if (firstFullRow != firstRow) {
- this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
- this.removeNewLine(range.start.row);
- }
- }
- else {
- this.removeInLine(firstRow, range.start.column, range.end.column);
- }
- return range.start;
- };
- this.removeInLine = function(row, startColumn, endColumn) {
- if (startColumn == endColumn)
- return;
-
- var range = new Range(row, startColumn, row, endColumn);
- var line = this.getLine(row);
- var removed = line.substring(startColumn, endColumn);
- var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
- this.$lines.splice(row, 1, newLine);
-
- var delta = {
- action: "removeText",
- range: range,
- text: removed
- };
- this._emit("change", { data: delta });
- return range.start;
- };
- this.removeLines = function(firstRow, lastRow) {
- if (firstRow < 0 || lastRow >= this.getLength())
- return this.remove(new Range(firstRow, 0, lastRow + 1, 0));
- return this._removeLines(firstRow, lastRow);
- };
-
- this._removeLines = function(firstRow, lastRow) {
- var range = new Range(firstRow, 0, lastRow + 1, 0);
- var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
-
- var delta = {
- action: "removeLines",
- range: range,
- nl: this.getNewLineCharacter(),
- lines: removed
- };
- this._emit("change", { data: delta });
- return removed;
- };
- this.removeNewLine = function(row) {
- var firstLine = this.getLine(row);
- var secondLine = this.getLine(row+1);
-
- var range = new Range(row, firstLine.length, row+1, 0);
- var line = firstLine + secondLine;
-
- this.$lines.splice(row, 2, line);
-
- var delta = {
- action: "removeText",
- range: range,
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
- };
- this.replace = function(range, text) {
- if (text.length == 0 && range.isEmpty())
- return range.start;
- if (text == this.getTextRange(range))
- return range.end;
-
- this.remove(range);
- if (text) {
- var end = this.insert(range.start, text);
- }
- else {
- end = range.start;
- }
-
- return end;
- };
- this.applyDeltas = function(deltas) {
- for (var i=0; i<deltas.length; i++) {
- var delta = deltas[i];
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this.insertLines(range.start.row, delta.lines);
- else if (delta.action == "insertText")
- this.insert(range.start, delta.text);
- else if (delta.action == "removeLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "removeText")
- this.remove(range);
- }
- };
- this.revertDeltas = function(deltas) {
- for (var i=deltas.length-1; i>=0; i--) {
- var delta = deltas[i];
-
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "insertText")
- this.remove(range);
- else if (delta.action == "removeLines")
- this._insertLines(range.start.row, delta.lines);
- else if (delta.action == "removeText")
- this.insert(range.start, delta.text);
- }
- };
- this.indexToPosition = function(index, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- for (var i = startRow || 0, l = lines.length; i < l; i++) {
- index -= lines[i].length + newlineLength;
- if (index < 0)
- return {row: i, column: index + lines[i].length + newlineLength};
- }
- return {row: l-1, column: lines[l-1].length};
- };
- this.positionToIndex = function(pos, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- var index = 0;
- var row = Math.min(pos.row, lines.length);
- for (var i = startRow || 0; i < row; ++i)
- index += lines[i].length + newlineLength;
-
- return index + pos.column;
- };
-
-}).call(Document.prototype);
-
-exports.Document = Document;
-});
-
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-var Range = function(startRow, startColumn, endRow, endColumn) {
- this.start = {
- row: startRow,
- column: startColumn
- };
-
- this.end = {
- row: endRow,
- column: endColumn
- };
-};
-
-(function() {
- this.isEqual = function(range) {
- return this.start.row === range.start.row &&
- this.end.row === range.end.row &&
- this.start.column === range.start.column &&
- this.end.column === range.end.column;
- };
- this.toString = function() {
- return ("Range: [" + this.start.row + "/" + this.start.column +
- "] -> [" + this.end.row + "/" + this.end.column + "]");
- };
-
- this.contains = function(row, column) {
- return this.compare(row, column) == 0;
- };
- this.compareRange = function(range) {
- var cmp,
- end = range.end,
- start = range.start;
-
- cmp = this.compare(end.row, end.column);
- if (cmp == 1) {
- cmp = this.compare(start.row, start.column);
- if (cmp == 1) {
- return 2;
- } else if (cmp == 0) {
- return 1;
- } else {
- return 0;
- }
- } else if (cmp == -1) {
- return -2;
- } else {
- cmp = this.compare(start.row, start.column);
- if (cmp == -1) {
- return -1;
- } else if (cmp == 1) {
- return 42;
- } else {
- return 0;
- }
- }
- };
- this.comparePoint = function(p) {
- return this.compare(p.row, p.column);
- };
- this.containsRange = function(range) {
- return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
- };
- this.intersects = function(range) {
- var cmp = this.compareRange(range);
- return (cmp == -1 || cmp == 0 || cmp == 1);
- };
- this.isEnd = function(row, column) {
- return this.end.row == row && this.end.column == column;
- };
- this.isStart = function(row, column) {
- return this.start.row == row && this.start.column == column;
- };
- this.setStart = function(row, column) {
- if (typeof row == "object") {
- this.start.column = row.column;
- this.start.row = row.row;
- } else {
- this.start.row = row;
- this.start.column = column;
- }
- };
- this.setEnd = function(row, column) {
- if (typeof row == "object") {
- this.end.column = row.column;
- this.end.row = row.row;
- } else {
- this.end.row = row;
- this.end.column = column;
- }
- };
- this.inside = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column) || this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideStart = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideEnd = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.compare = function(row, column) {
- if (!this.isMultiLine()) {
- if (row === this.start.row) {
- return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
- };
- }
-
- if (row < this.start.row)
- return -1;
-
- if (row > this.end.row)
- return 1;
-
- if (this.start.row === row)
- return column >= this.start.column ? 0 : -1;
-
- if (this.end.row === row)
- return column <= this.end.column ? 0 : 1;
-
- return 0;
- };
- this.compareStart = function(row, column) {
- if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareEnd = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareInside = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.clipRows = function(firstRow, lastRow) {
- if (this.end.row > lastRow)
- var end = {row: lastRow + 1, column: 0};
- else if (this.end.row < firstRow)
- var end = {row: firstRow, column: 0};
-
- if (this.start.row > lastRow)
- var start = {row: lastRow + 1, column: 0};
- else if (this.start.row < firstRow)
- var start = {row: firstRow, column: 0};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
- this.extend = function(row, column) {
- var cmp = this.compare(row, column);
-
- if (cmp == 0)
- return this;
- else if (cmp == -1)
- var start = {row: row, column: column};
- else
- var end = {row: row, column: column};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
-
- this.isEmpty = function() {
- return (this.start.row === this.end.row && this.start.column === this.end.column);
- };
- this.isMultiLine = function() {
- return (this.start.row !== this.end.row);
- };
- this.clone = function() {
- return Range.fromPoints(this.start, this.end);
- };
- this.collapseRows = function() {
- if (this.end.column == 0)
- return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
- else
- return new Range(this.start.row, 0, this.end.row, 0)
- };
- this.toScreenRange = function(session) {
- var screenPosStart = session.documentToScreenPosition(this.start);
- var screenPosEnd = session.documentToScreenPosition(this.end);
-
- return new Range(
- screenPosStart.row, screenPosStart.column,
- screenPosEnd.row, screenPosEnd.column
- );
- };
- this.moveBy = function(row, column) {
- this.start.row += row;
- this.start.column += column;
- this.end.row += row;
- this.end.column += column;
- };
-
-}).call(Range.prototype);
-Range.fromPoints = function(start, end) {
- return new Range(start.row, start.column, end.row, end.column);
-};
-Range.comparePoints = comparePoints;
-
-Range.comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-
-
-exports.Range = Range;
-});
-
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-
-var Anchor = exports.Anchor = function(doc, row, column) {
- this.$onChange = this.onChange.bind(this);
- this.attach(doc);
-
- if (typeof column == "undefined")
- this.setPosition(row.row, row.column);
- else
- this.setPosition(row, column);
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.getPosition = function() {
- return this.$clipPositionToDocument(this.row, this.column);
- };
- this.getDocument = function() {
- return this.document;
- };
- this.onChange = function(e) {
- var delta = e.data;
- var range = delta.range;
-
- if (range.start.row == range.end.row && range.start.row != this.row)
- return;
-
- if (range.start.row > this.row)
- return;
-
- if (range.start.row == this.row && range.start.column > this.column)
- return;
-
- var row = this.row;
- var column = this.column;
- var start = range.start;
- var end = range.end;
-
- if (delta.action === "insertText") {
- if (start.row === row && start.column <= column) {
- if (start.row === end.row) {
- column += end.column - start.column;
- } else {
- column -= start.column;
- row += end.row - start.row;
- }
- } else if (start.row !== end.row && start.row < row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "insertLines") {
- if (start.row <= row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "removeText") {
- if (start.row === row && start.column < column) {
- if (end.column >= column)
- column = start.column;
- else
- column = Math.max(0, column - (end.column - start.column));
-
- } else if (start.row !== end.row && start.row < row) {
- if (end.row === row)
- column = Math.max(0, column - end.column) + start.column;
- row -= (end.row - start.row);
- } else if (end.row === row) {
- row -= end.row - start.row;
- column = Math.max(0, column - end.column) + start.column;
- }
- } else if (delta.action == "removeLines") {
- if (start.row <= row) {
- if (end.row <= row)
- row -= end.row - start.row;
- else {
- row = start.row;
- column = 0;
- }
- }
- }
-
- this.setPosition(row, column, true);
- };
- this.setPosition = function(row, column, noClip) {
- var pos;
- if (noClip) {
- pos = {
- row: row,
- column: column
- };
- } else {
- pos = this.$clipPositionToDocument(row, column);
- }
-
- if (this.row == pos.row && this.column == pos.column)
- return;
-
- var old = {
- row: this.row,
- column: this.column
- };
-
- this.row = pos.row;
- this.column = pos.column;
- this._emit("change", {
- old: old,
- value: pos
- });
- };
- this.detach = function() {
- this.document.removeEventListener("change", this.$onChange);
- };
- this.attach = function(doc) {
- this.document = doc || this.document;
- this.document.on("change", this.$onChange);
- };
- this.$clipPositionToDocument = function(row, column) {
- var pos = {};
-
- if (row >= this.document.getLength()) {
- pos.row = Math.max(0, this.document.getLength() - 1);
- pos.column = this.document.getLine(pos.row).length;
- }
- else if (row < 0) {
- pos.row = 0;
- pos.column = 0;
- }
- else {
- pos.row = row;
- pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
- }
-
- if (column < 0)
- pos.column = 0;
-
- return pos;
- };
-
-}).call(Anchor.prototype);
-
-});
-
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.stringReverse = function(string) {
- return string.split("").reverse().join("");
-};
-
-exports.stringRepeat = function (string, count) {
- var result = '';
- while (count > 0) {
- if (count & 1)
- result += string;
-
- if (count >>= 1)
- string += string;
- }
- return result;
-};
-
-var trimBeginRegexp = /^\s\s*/;
-var trimEndRegexp = /\s\s*$/;
-
-exports.stringTrimLeft = function (string) {
- return string.replace(trimBeginRegexp, '');
-};
-
-exports.stringTrimRight = function (string) {
- return string.replace(trimEndRegexp, '');
-};
-
-exports.copyObject = function(obj) {
- var copy = {};
- for (var key in obj) {
- copy[key] = obj[key];
- }
- return copy;
-};
-
-exports.copyArray = function(array){
- var copy = [];
- for (var i=0, l=array.length; i<l; i++) {
- if (array[i] && typeof array[i] == "object")
- copy[i] = this.copyObject( array[i] );
- else
- copy[i] = array[i];
- }
- return copy;
-};
-
-exports.deepCopy = function (obj) {
- if (typeof obj != "object") {
- return obj;
- }
-
- var copy = obj.constructor();
- for (var key in obj) {
- if (typeof obj[key] == "object") {
- copy[key] = this.deepCopy(obj[key]);
- } else {
- copy[key] = obj[key];
- }
- }
- return copy;
-};
-
-exports.arrayToMap = function(arr) {
- var map = {};
- for (var i=0; i<arr.length; i++) {
- map[arr[i]] = 1;
- }
- return map;
-
-};
-
-exports.createMap = function(props) {
- var map = Object.create(null);
- for (var i in props) {
- map[i] = props[i];
- }
- return map;
-};
-exports.arrayRemove = function(array, value) {
- for (var i = 0; i <= array.length; i++) {
- if (value === array[i]) {
- array.splice(i, 1);
- }
- }
-};
-
-exports.escapeRegExp = function(str) {
- return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
-};
-
-exports.escapeHTML = function(str) {
- return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
-};
-
-exports.getMatchOffsets = function(string, regExp) {
- var matches = [];
-
- string.replace(regExp, function(str) {
- matches.push({
- offset: arguments[arguments.length-2],
- length: str.length
- });
- });
-
- return matches;
-};
-exports.deferredCall = function(fcn) {
-
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var deferred = function(timeout) {
- deferred.cancel();
- timer = setTimeout(callback, timeout || 0);
- return deferred;
- };
-
- deferred.schedule = deferred;
-
- deferred.call = function() {
- this.cancel();
- fcn();
- return deferred;
- };
-
- deferred.cancel = function() {
- clearTimeout(timer);
- timer = null;
- return deferred;
- };
-
- return deferred;
-};
-
-
-exports.delayedCall = function(fcn, defaultTimeout) {
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var _self = function(timeout) {
- timer && clearTimeout(timer);
- timer = setTimeout(callback, timeout || defaultTimeout);
- };
-
- _self.delay = _self;
- _self.schedule = function(timeout) {
- if (timer == null)
- timer = setTimeout(callback, timeout || 0);
- };
-
- _self.call = function() {
- this.cancel();
- fcn();
- };
-
- _self.cancel = function() {
- timer && clearTimeout(timer);
- timer = null;
- };
-
- _self.isPending = function() {
- return timer;
- };
-
- return _self;
-};
-});
-
-ace.define('ace/mode/coffee/coffee-script', ['require', 'exports', 'module' , 'ace/mode/coffee/lexer', 'ace/mode/coffee/parser', 'ace/mode/coffee/nodes'], function(require, exports, module) {
-
- var Lexer = require("./lexer").Lexer;
- var parser = require("./parser");
-
- var lexer = new Lexer();
- parser.lexer = {
- lex: function() {
- var tag, token;
- token = this.tokens[this.pos++];
- if (token) {
- tag = token[0], this.yytext = token[1], this.yylloc = token[2];
- this.yylineno = this.yylloc.first_line;
- } else {
- tag = '';
- }
- return tag;
- },
- setInput: function(tokens) {
- this.tokens = tokens;
- return this.pos = 0;
- },
- upcomingInput: function() {
- return "";
- }
- };
- parser.yy = require('./nodes');
-
- exports.parse = function(code) {
- return parser.parse(lexer.tokenize(code));
- };
-});
-
-ace.define('ace/mode/coffee/lexer', ['require', 'exports', 'module' , 'ace/mode/coffee/rewriter', 'ace/mode/coffee/helpers'], function(require, exports, module) {
-
- var BOM, BOOL, CALLABLE, CODE, COFFEE_ALIASES, COFFEE_ALIAS_MAP, COFFEE_KEYWORDS, COMMENT, COMPARE, COMPOUND_ASSIGN, HEREDOC, HEREDOC_ILLEGAL, HEREDOC_INDENT, HEREGEX, HEREGEX_OMIT, IDENTIFIER, INDEXABLE, INVERSES, JSTOKEN, JS_FORBIDDEN, JS_KEYWORDS, LINE_BREAK, LINE_CONTINUER, LOGIC, Lexer, MATH, MULTILINER, MULTI_DENT, NOT_REGEX, NOT_SPACED_REGEX, NUMBER, OPERATOR, REGEX, RELATION, RESERVED, Rewriter, SHIFT, SIMPLESTR, STRICT_PROSCRIBED, TRAILING_SPACES, UNARY, WHITESPACE, compact, count, invertLiterate, key, last, locationDataToString, repeat, starts, throwSyntaxError, _ref, _ref1,
- __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
-
- _ref = require('./rewriter'), Rewriter = _ref.Rewriter, INVERSES = _ref.INVERSES;
-
- _ref1 = require('./helpers'), count = _ref1.count, starts = _ref1.starts, compact = _ref1.compact, last = _ref1.last, repeat = _ref1.repeat, invertLiterate = _ref1.invertLiterate, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError;
-
- exports.Lexer = Lexer = (function() {
- function Lexer() {}
-
- Lexer.prototype.tokenize = function(code, opts) {
- var consumed, i, tag, _ref2;
- if (opts == null) {
- opts = {};
- }
- this.literate = opts.literate;
- this.indent = 0;
- this.indebt = 0;
- this.outdebt = 0;
- this.indents = [];
- this.ends = [];
- this.tokens = [];
- this.chunkLine = opts.line || 0;
- this.chunkColumn = opts.column || 0;
- code = this.clean(code);
- i = 0;
- while (this.chunk = code.slice(i)) {
- consumed = this.identifierToken() || this.commentToken() || this.whitespaceToken() || this.lineToken() || this.heredocToken() || this.stringToken() || this.numberToken() || this.regexToken() || this.jsToken() || this.literalToken();
- _ref2 = this.getLineAndColumnFromChunk(consumed), this.chunkLine = _ref2[0], this.chunkColumn = _ref2[1];
- i += consumed;
- }
- this.closeIndentation();
- if (tag = this.ends.pop()) {
- this.error("missing " + tag);
- }
- if (opts.rewrite === false) {
- return this.tokens;
- }
- return (new Rewriter).rewrite(this.tokens);
- };
-
- Lexer.prototype.clean = function(code) {
- if (code.charCodeAt(0) === BOM) {
- code = code.slice(1);
- }
- code = code.replace(/\r/g, '').replace(TRAILING_SPACES, '');
- if (WHITESPACE.test(code)) {
- code = "\n" + code;
- this.chunkLine--;
- }
- if (this.literate) {
- code = invertLiterate(code);
- }
- return code;
- };
-
- Lexer.prototype.identifierToken = function() {
- var colon, colonOffset, forcedIdentifier, id, idLength, input, match, poppedToken, prev, tag, tagToken, _ref2, _ref3, _ref4;
- if (!(match = IDENTIFIER.exec(this.chunk))) {
- return 0;
- }
- input = match[0], id = match[1], colon = match[2];
- idLength = id.length;
- poppedToken = void 0;
- if (id === 'own' && this.tag() === 'FOR') {
- this.token('OWN', id);
- return id.length;
- }
- forcedIdentifier = colon || (prev = last(this.tokens)) && (((_ref2 = prev[0]) === '.' || _ref2 === '?.' || _ref2 === '::' || _ref2 === '?::') || !prev.spaced && prev[0] === '@');
- tag = 'IDENTIFIER';
- if (!forcedIdentifier && (__indexOf.call(JS_KEYWORDS, id) >= 0 || __indexOf.call(COFFEE_KEYWORDS, id) >= 0)) {
- tag = id.toUpperCase();
- if (tag === 'WHEN' && (_ref3 = this.tag(), __indexOf.call(LINE_BREAK, _ref3) >= 0)) {
- tag = 'LEADING_WHEN';
- } else if (tag === 'FOR') {
- this.seenFor = true;
- } else if (tag === 'UNLESS') {
- tag = 'IF';
- } else if (__indexOf.call(UNARY, tag) >= 0) {
- tag = 'UNARY';
- } else if (__indexOf.call(RELATION, tag) >= 0) {
- if (tag !== 'INSTANCEOF' && this.seenFor) {
- tag = 'FOR' + tag;
- this.seenFor = false;
- } else {
- tag = 'RELATION';
- if (this.value() === '!') {
- poppedToken = this.tokens.pop();
- id = '!' + id;
- }
- }
- }
- }
- if (__indexOf.call(JS_FORBIDDEN, id) >= 0) {
- if (forcedIdentifier) {
- tag = 'IDENTIFIER';
- id = new String(id);
- id.reserved = true;
- } else if (__indexOf.call(RESERVED, id) >= 0) {
- this.error("reserved word \"" + id + "\"");
- }
- }
- if (!forcedIdentifier) {
- if (__indexOf.call(COFFEE_ALIASES, id) >= 0) {
- id = COFFEE_ALIAS_MAP[id];
- }
- tag = (function() {
- switch (id) {
- case '!':
- return 'UNARY';
- case '==':
- case '!=':
- return 'COMPARE';
- case '&&':
- case '||':
- return 'LOGIC';
- case 'true':
- case 'false':
- return 'BOOL';
- case 'break':
- case 'continue':
- return 'STATEMENT';
- default:
- return tag;
- }
- })();
- }
- tagToken = this.token(tag, id, 0, idLength);
- if (poppedToken) {
- _ref4 = [poppedToken[2].first_line, poppedToken[2].first_column], tagToken[2].first_line = _ref4[0], tagToken[2].first_column = _ref4[1];
- }
- if (colon) {
- colonOffset = input.lastIndexOf(':');
- this.token(':', ':', colonOffset, colon.length);
- }
- return input.length;
- };
-
- Lexer.prototype.numberToken = function() {
- var binaryLiteral, lexedLength, match, number, octalLiteral;
- if (!(match = NUMBER.exec(this.chunk))) {
- return 0;
- }
- number = match[0];
- if (/^0[BOX]/.test(number)) {
- this.error("radix prefix '" + number + "' must be lowercase");
- } else if (/E/.test(number) && !/^0x/.test(number)) {
- this.error("exponential notation '" + number + "' must be indicated with a lowercase 'e'");
- } else if (/^0\d*[89]/.test(number)) {
- this.error("decimal literal '" + number + "' must not be prefixed with '0'");
- } else if (/^0\d+/.test(number)) {
- this.error("octal literal '" + number + "' must be prefixed with '0o'");
- }
- lexedLength = number.length;
- if (octalLiteral = /^0o([0-7]+)/.exec(number)) {
- number = '0x' + parseInt(octalLiteral[1], 8).toString(16);
- }
- if (binaryLiteral = /^0b([01]+)/.exec(number)) {
- number = '0x' + parseInt(binaryLiteral[1], 2).toString(16);
- }
- this.token('NUMBER', number, 0, lexedLength);
- return lexedLength;
- };
-
- Lexer.prototype.stringToken = function() {
- var match, octalEsc, string;
- switch (this.chunk.charAt(0)) {
- case "'":
- if (!(match = SIMPLESTR.exec(this.chunk))) {
- return 0;
- }
- string = match[0];
- this.token('STRING', string.replace(MULTILINER, '\\\n'), 0, string.length);
- break;
- case '"':
- if (!(string = this.balancedString(this.chunk, '"'))) {
- return 0;
- }
- if (0 < string.indexOf('#{', 1)) {
- this.interpolateString(string.slice(1, -1), {
- strOffset: 1,
- lexedLength: string.length
- });
- } else {
- this.token('STRING', this.escapeLines(string, 0, string.length));
- }
- break;
- default:
- return 0;
- }
- if (octalEsc = /^(?:\\.|[^\\])*\\(?:0[0-7]|[1-7])/.test(string)) {
- this.error("octal escape sequences " + string + " are not allowed");
- }
- return string.length;
- };
-
- Lexer.prototype.heredocToken = function() {
- var doc, heredoc, match, quote;
- if (!(match = HEREDOC.exec(this.chunk))) {
- return 0;
- }
- heredoc = match[0];
- quote = heredoc.charAt(0);
- doc = this.sanitizeHeredoc(match[2], {
- quote: quote,
- indent: null
- });
- if (quote === '"' && 0 <= doc.indexOf('#{')) {
- this.interpolateString(doc, {
- heredoc: true,
- strOffset: 3,
- lexedLength: heredoc.length
- });
- } else {
- this.token('STRING', this.makeString(doc, quote, true), 0, heredoc.length);
- }
- return heredoc.length;
- };
-
- Lexer.prototype.commentToken = function() {
- var comment, here, match;
- if (!(match = this.chunk.match(COMMENT))) {
- return 0;
- }
- comment = match[0], here = match[1];
- if (here) {
- this.token('HERECOMMENT', this.sanitizeHeredoc(here, {
- herecomment: true,
- indent: repeat(' ', this.indent)
- }), 0, comment.length);
- }
- return comment.length;
- };
-
- Lexer.prototype.jsToken = function() {
- var match, script;
- if (!(this.chunk.charAt(0) === '`' && (match = JSTOKEN.exec(this.chunk)))) {
- return 0;
- }
- this.token('JS', (script = match[0]).slice(1, -1), 0, script.length);
- return script.length;
- };
-
- Lexer.prototype.regexToken = function() {
- var flags, length, match, prev, regex, _ref2, _ref3;
- if (this.chunk.charAt(0) !== '/') {
- return 0;
- }
- if (match = HEREGEX.exec(this.chunk)) {
- length = this.heregexToken(match);
- return length;
- }
- prev = last(this.tokens);
- if (prev && (_ref2 = prev[0], __indexOf.call((prev.spaced ? NOT_REGEX : NOT_SPACED_REGEX), _ref2) >= 0)) {
- return 0;
- }
- if (!(match = REGEX.exec(this.chunk))) {
- return 0;
- }
- _ref3 = match, match = _ref3[0], regex = _ref3[1], flags = _ref3[2];
- if (regex.slice(0, 2) === '/*') {
- this.error('regular expressions cannot begin with `*`');
- }
- if (regex === '//') {
- regex = '/(?:)/';
- }
- this.token('REGEX', "" + regex + flags, 0, match.length);
- return match.length;
- };
-
- Lexer.prototype.heregexToken = function(match) {
- var body, flags, flagsOffset, heregex, plusToken, prev, re, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4;
- heregex = match[0], body = match[1], flags = match[2];
- if (0 > body.indexOf('#{')) {
- re = body.replace(HEREGEX_OMIT, '').replace(/\//g, '\\/');
- if (re.match(/^\*/)) {
- this.error('regular expressions cannot begin with `*`');
- }
- this.token('REGEX', "/" + (re || '(?:)') + "/" + flags, 0, heregex.length);
- return heregex.length;
- }
- this.token('IDENTIFIER', 'RegExp', 0, 0);
- this.token('CALL_START', '(', 0, 0);
- tokens = [];
- _ref2 = this.interpolateString(body, {
- regex: true
- });
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- token = _ref2[_i];
- tag = token[0], value = token[1];
- if (tag === 'TOKENS') {
- tokens.push.apply(tokens, value);
- } else if (tag === 'NEOSTRING') {
- if (!(value = value.replace(HEREGEX_OMIT, ''))) {
- continue;
- }
- value = value.replace(/\\/g, '\\\\');
- token[0] = 'STRING';
- token[1] = this.makeString(value, '"', true);
- tokens.push(token);
- } else {
- this.error("Unexpected " + tag);
- }
- prev = last(this.tokens);
- plusToken = ['+', '+'];
- plusToken[2] = prev[2];
- tokens.push(plusToken);
- }
- tokens.pop();
- if (((_ref3 = tokens[0]) != null ? _ref3[0] : void 0) !== 'STRING') {
- this.token('STRING', '""', 0, 0);
- this.token('+', '+', 0, 0);
- }
- (_ref4 = this.tokens).push.apply(_ref4, tokens);
- if (flags) {
- flagsOffset = heregex.lastIndexOf(flags);
- this.token(',', ',', flagsOffset, 0);
- this.token('STRING', '"' + flags + '"', flagsOffset, flags.length);
- }
- this.token(')', ')', heregex.length - 1, 0);
- return heregex.length;
- };
-
- Lexer.prototype.lineToken = function() {
- var diff, indent, match, noNewlines, size;
- if (!(match = MULTI_DENT.exec(this.chunk))) {
- return 0;
- }
- indent = match[0];
- this.seenFor = false;
- size = indent.length - 1 - indent.lastIndexOf('\n');
- noNewlines = this.unfinished();
- if (size - this.indebt === this.indent) {
- if (noNewlines) {
- this.suppressNewlines();
- } else {
- this.newlineToken(0);
- }
- return indent.length;
- }
- if (size > this.indent) {
- if (noNewlines) {
- this.indebt = size - this.indent;
- this.suppressNewlines();
- return indent.length;
- }
- diff = size - this.indent + this.outdebt;
- this.token('INDENT', diff, indent.length - size, size);
- this.indents.push(diff);
- this.ends.push('OUTDENT');
- this.outdebt = this.indebt = 0;
- } else {
- this.indebt = 0;
- this.outdentToken(this.indent - size, noNewlines, indent.length);
- }
- this.indent = size;
- return indent.length;
- };
-
- Lexer.prototype.outdentToken = function(moveOut, noNewlines, outdentLength) {
- var dent, len;
- while (moveOut > 0) {
- len = this.indents.length - 1;
- if (this.indents[len] === void 0) {
- moveOut = 0;
- } else if (this.indents[len] === this.outdebt) {
- moveOut -= this.outdebt;
- this.outdebt = 0;
- } else if (this.indents[len] < this.outdebt) {
- this.outdebt -= this.indents[len];
- moveOut -= this.indents[len];
- } else {
- dent = this.indents.pop() + this.outdebt;
- moveOut -= dent;
- this.outdebt = 0;
- this.pair('OUTDENT');
- this.token('OUTDENT', dent, 0, outdentLength);
- }
- }
- if (dent) {
- this.outdebt -= moveOut;
- }
- while (this.value() === ';') {
- this.tokens.pop();
- }
- if (!(this.tag() === 'TERMINATOR' || noNewlines)) {
- this.token('TERMINATOR', '\n', outdentLength, 0);
- }
- return this;
- };
-
- Lexer.prototype.whitespaceToken = function() {
- var match, nline, prev;
- if (!((match = WHITESPACE.exec(this.chunk)) || (nline = this.chunk.charAt(0) === '\n'))) {
- return 0;
- }
- prev = last(this.tokens);
- if (prev) {
- prev[match ? 'spaced' : 'newLine'] = true;
- }
- if (match) {
- return match[0].length;
- } else {
- return 0;
- }
- };
-
- Lexer.prototype.newlineToken = function(offset) {
- while (this.value() === ';') {
- this.tokens.pop();
- }
- if (this.tag() !== 'TERMINATOR') {
- this.token('TERMINATOR', '\n', offset, 0);
- }
- return this;
- };
-
- Lexer.prototype.suppressNewlines = function() {
- if (this.value() === '\\') {
- this.tokens.pop();
- }
- return this;
- };
-
- Lexer.prototype.literalToken = function() {
- var match, prev, tag, value, _ref2, _ref3, _ref4, _ref5;
- if (match = OPERATOR.exec(this.chunk)) {
- value = match[0];
- if (CODE.test(value)) {
- this.tagParameters();
- }
- } else {
- value = this.chunk.charAt(0);
- }
- tag = value;
- prev = last(this.tokens);
- if (value === '=' && prev) {
- if (!prev[1].reserved && (_ref2 = prev[1], __indexOf.call(JS_FORBIDDEN, _ref2) >= 0)) {
- this.error("reserved word \"" + (this.value()) + "\" can't be assigned");
- }
- if ((_ref3 = prev[1]) === '||' || _ref3 === '&&') {
- prev[0] = 'COMPOUND_ASSIGN';
- prev[1] += '=';
- return value.length;
- }
- }
- if (value === ';') {
- this.seenFor = false;
- tag = 'TERMINATOR';
- } else if (__indexOf.call(MATH, value) >= 0) {
- tag = 'MATH';
- } else if (__indexOf.call(COMPARE, value) >= 0) {
- tag = 'COMPARE';
- } else if (__indexOf.call(COMPOUND_ASSIGN, value) >= 0) {
- tag = 'COMPOUND_ASSIGN';
- } else if (__indexOf.call(UNARY, value) >= 0) {
- tag = 'UNARY';
- } else if (__indexOf.call(SHIFT, value) >= 0) {
- tag = 'SHIFT';
- } else if (__indexOf.call(LOGIC, value) >= 0 || value === '?' && (prev != null ? prev.spaced : void 0)) {
- tag = 'LOGIC';
- } else if (prev && !prev.spaced) {
- if (value === '(' && (_ref4 = prev[0], __indexOf.call(CALLABLE, _ref4) >= 0)) {
- if (prev[0] === '?') {
- prev[0] = 'FUNC_EXIST';
- }
- tag = 'CALL_START';
- } else if (value === '[' && (_ref5 = prev[0], __indexOf.call(INDEXABLE, _ref5) >= 0)) {
- tag = 'INDEX_START';
- switch (prev[0]) {
- case '?':
- prev[0] = 'INDEX_SOAK';
- }
- }
- }
- switch (value) {
- case '(':
- case '{':
- case '[':
- this.ends.push(INVERSES[value]);
- break;
- case ')':
- case '}':
- case ']':
- this.pair(value);
- }
- this.token(tag, value);
- return value.length;
- };
-
- Lexer.prototype.sanitizeHeredoc = function(doc, options) {
- var attempt, herecomment, indent, match, _ref2;
- indent = options.indent, herecomment = options.herecomment;
- if (herecomment) {
- if (HEREDOC_ILLEGAL.test(doc)) {
- this.error("block comment cannot contain \"*/\", starting");
- }
- if (doc.indexOf('\n') < 0) {
- return doc;
- }
- } else {
- while (match = HEREDOC_INDENT.exec(doc)) {
- attempt = match[1];
- if (indent === null || (0 < (_ref2 = attempt.length) && _ref2 < indent.length)) {
- indent = attempt;
- }
- }
- }
- if (indent) {
- doc = doc.replace(RegExp("\\n" + indent, "g"), '\n');
- }
- if (!herecomment) {
- doc = doc.replace(/^\n/, '');
- }
- return doc;
- };
-
- Lexer.prototype.tagParameters = function() {
- var i, stack, tok, tokens;
- if (this.tag() !== ')') {
- return this;
- }
- stack = [];
- tokens = this.tokens;
- i = tokens.length;
- tokens[--i][0] = 'PARAM_END';
- while (tok = tokens[--i]) {
- switch (tok[0]) {
- case ')':
- stack.push(tok);
- break;
- case '(':
- case 'CALL_START':
- if (stack.length) {
- stack.pop();
- } else if (tok[0] === '(') {
- tok[0] = 'PARAM_START';
- return this;
- } else {
- return this;
- }
- }
- }
- return this;
- };
-
- Lexer.prototype.closeIndentation = function() {
- return this.outdentToken(this.indent);
- };
-
- Lexer.prototype.balancedString = function(str, end) {
- var continueCount, i, letter, match, prev, stack, _i, _ref2;
- continueCount = 0;
- stack = [end];
- for (i = _i = 1, _ref2 = str.length; 1 <= _ref2 ? _i < _ref2 : _i > _ref2; i = 1 <= _ref2 ? ++_i : --_i) {
- if (continueCount) {
- --continueCount;
- continue;
- }
- switch (letter = str.charAt(i)) {
- case '\\':
- ++continueCount;
- continue;
- case end:
- stack.pop();
- if (!stack.length) {
- return str.slice(0, +i + 1 || 9e9);
- }
- end = stack[stack.length - 1];
- continue;
- }
- if (end === '}' && (letter === '"' || letter === "'")) {
- stack.push(end = letter);
- } else if (end === '}' && letter === '/' && (match = HEREGEX.exec(str.slice(i)) || REGEX.exec(str.slice(i)))) {
- continueCount += match[0].length - 1;
- } else if (end === '}' && letter === '{') {
- stack.push(end = '}');
- } else if (end === '"' && prev === '#' && letter === '{') {
- stack.push(end = '}');
- }
- prev = letter;
- }
- return this.error("missing " + (stack.pop()) + ", starting");
- };
-
- Lexer.prototype.interpolateString = function(str, options) {
- var column, expr, heredoc, i, inner, interpolated, len, letter, lexedLength, line, locationToken, nested, offsetInChunk, pi, plusToken, popped, regex, rparen, strOffset, tag, token, tokens, value, _i, _len, _ref2, _ref3, _ref4;
- if (options == null) {
- options = {};
- }
- heredoc = options.heredoc, regex = options.regex, offsetInChunk = options.offsetInChunk, strOffset = options.strOffset, lexedLength = options.lexedLength;
- offsetInChunk = offsetInChunk || 0;
- strOffset = strOffset || 0;
- lexedLength = lexedLength || str.length;
- if (heredoc && str.length > 0 && str[0] === '\n') {
- str = str.slice(1);
- strOffset++;
- }
- tokens = [];
- pi = 0;
- i = -1;
- while (letter = str.charAt(i += 1)) {
- if (letter === '\\') {
- i += 1;
- continue;
- }
- if (!(letter === '#' && str.charAt(i + 1) === '{' && (expr = this.balancedString(str.slice(i + 1), '}')))) {
- continue;
- }
- if (pi < i) {
- tokens.push(this.makeToken('NEOSTRING', str.slice(pi, i), strOffset + pi));
- }
- inner = expr.slice(1, -1);
- if (inner.length) {
- _ref2 = this.getLineAndColumnFromChunk(strOffset + i + 1), line = _ref2[0], column = _ref2[1];
- nested = new Lexer().tokenize(inner, {
- line: line,
- column: column,
- rewrite: false
- });
- popped = nested.pop();
- if (((_ref3 = nested[0]) != null ? _ref3[0] : void 0) === 'TERMINATOR') {
- popped = nested.shift();
- }
- if (len = nested.length) {
- if (len > 1) {
- nested.unshift(this.makeToken('(', '(', strOffset + i + 1, 0));
- nested.push(this.makeToken(')', ')', strOffset + i + 1 + inner.length, 0));
- }
- tokens.push(['TOKENS', nested]);
- }
- }
- i += expr.length;
- pi = i + 1;
- }
- if ((i > pi && pi < str.length)) {
- tokens.push(this.makeToken('NEOSTRING', str.slice(pi), strOffset + pi));
- }
- if (regex) {
- return tokens;
- }
- if (!tokens.length) {
- return this.token('STRING', '""', offsetInChunk, lexedLength);
- }
- if (tokens[0][0] !== 'NEOSTRING') {
- tokens.unshift(this.makeToken('NEOSTRING', '', offsetInChunk));
- }
- if (interpolated = tokens.length > 1) {
- this.token('(', '(', offsetInChunk, 0);
- }
- for (i = _i = 0, _len = tokens.length; _i < _len; i = ++_i) {
- token = tokens[i];
- tag = token[0], value = token[1];
- if (i) {
- if (i) {
- plusToken = this.token('+', '+');
- }
- locationToken = tag === 'TOKENS' ? value[0] : token;
- plusToken[2] = {
- first_line: locationToken[2].first_line,
- first_column: locationToken[2].first_column,
- last_line: locationToken[2].first_line,
- last_column: locationToken[2].first_column
- };
- }
- if (tag === 'TOKENS') {
- (_ref4 = this.tokens).push.apply(_ref4, value);
- } else if (tag === 'NEOSTRING') {
- token[0] = 'STRING';
- token[1] = this.makeString(value, '"', heredoc);
- this.tokens.push(token);
- } else {
- this.error("Unexpected " + tag);
- }
- }
- if (interpolated) {
- rparen = this.makeToken(')', ')', offsetInChunk + lexedLength, 0);
- rparen.stringEnd = true;
- this.tokens.push(rparen);
- }
- return tokens;
- };
-
- Lexer.prototype.pair = function(tag) {
- var size, wanted;
- if (tag !== (wanted = last(this.ends))) {
- if ('OUTDENT' !== wanted) {
- this.error("unmatched " + tag);
- }
- this.indent -= size = last(this.indents);
- this.outdentToken(size, true);
- return this.pair(tag);
- }
- return this.ends.pop();
- };
-
- Lexer.prototype.getLineAndColumnFromChunk = function(offset) {
- var column, lineCount, lines, string;
- if (offset === 0) {
- return [this.chunkLine, this.chunkColumn];
- }
- if (offset >= this.chunk.length) {
- string = this.chunk;
- } else {
- string = this.chunk.slice(0, +(offset - 1) + 1 || 9e9);
- }
- lineCount = count(string, '\n');
- column = this.chunkColumn;
- if (lineCount > 0) {
- lines = string.split('\n');
- column = last(lines).length;
- } else {
- column += string.length;
- }
- return [this.chunkLine + lineCount, column];
- };
-
- Lexer.prototype.makeToken = function(tag, value, offsetInChunk, length) {
- var lastCharacter, locationData, token, _ref2, _ref3;
- if (offsetInChunk == null) {
- offsetInChunk = 0;
- }
- if (length == null) {
- length = value.length;
- }
- locationData = {};
- _ref2 = this.getLineAndColumnFromChunk(offsetInChunk), locationData.first_line = _ref2[0], locationData.first_column = _ref2[1];
- lastCharacter = Math.max(0, length - 1);
- _ref3 = this.getLineAndColumnFromChunk(offsetInChunk + lastCharacter), locationData.last_line = _ref3[0], locationData.last_column = _ref3[1];
- token = [tag, value, locationData];
- return token;
- };
-
- Lexer.prototype.token = function(tag, value, offsetInChunk, length) {
- var token;
- token = this.makeToken(tag, value, offsetInChunk, length);
- this.tokens.push(token);
- return token;
- };
-
- Lexer.prototype.tag = function(index, tag) {
- var tok;
- return (tok = last(this.tokens, index)) && (tag ? tok[0] = tag : tok[0]);
- };
-
- Lexer.prototype.value = function(index, val) {
- var tok;
- return (tok = last(this.tokens, index)) && (val ? tok[1] = val : tok[1]);
- };
-
- Lexer.prototype.unfinished = function() {
- var _ref2;
- return LINE_CONTINUER.test(this.chunk) || ((_ref2 = this.tag()) === '\\' || _ref2 === '.' || _ref2 === '?.' || _ref2 === '?::' || _ref2 === 'UNARY' || _ref2 === 'MATH' || _ref2 === '+' || _ref2 === '-' || _ref2 === 'SHIFT' || _ref2 === 'RELATION' || _ref2 === 'COMPARE' || _ref2 === 'LOGIC' || _ref2 === 'THROW' || _ref2 === 'EXTENDS');
- };
-
- Lexer.prototype.escapeLines = function(str, heredoc) {
- return str.replace(MULTILINER, heredoc ? '\\n' : '');
- };
-
- Lexer.prototype.makeString = function(body, quote, heredoc) {
- if (!body) {
- return quote + quote;
- }
- body = body.replace(/\\([\s\S])/g, function(match, contents) {
- if (contents === '\n' || contents === quote) {
- return contents;
- } else {
- return match;
- }
- });
- body = body.replace(RegExp("" + quote, "g"), '\\$&');
- return quote + this.escapeLines(body, heredoc) + quote;
- };
-
- Lexer.prototype.error = function(message) {
- return throwSyntaxError(message, {
- first_line: this.chunkLine,
- first_column: this.chunkColumn
- });
- };
-
- return Lexer;
-
- })();
-
- JS_KEYWORDS = ['true', 'false', 'null', 'this', 'new', 'delete', 'typeof', 'in', 'instanceof', 'return', 'throw', 'break', 'continue', 'debugger', 'if', 'else', 'switch', 'for', 'while', 'do', 'try', 'catch', 'finally', 'class', 'extends', 'super'];
-
- COFFEE_KEYWORDS = ['undefined', 'then', 'unless', 'until', 'loop', 'of', 'by', 'when'];
-
- COFFEE_ALIAS_MAP = {
- and: '&&',
- or: '||',
- is: '==',
- isnt: '!=',
- not: '!',
- yes: 'true',
- no: 'false',
- on: 'true',
- off: 'false'
- };
-
- COFFEE_ALIASES = (function() {
- var _results;
- _results = [];
- for (key in COFFEE_ALIAS_MAP) {
- _results.push(key);
- }
- return _results;
- })();
-
- COFFEE_KEYWORDS = COFFEE_KEYWORDS.concat(COFFEE_ALIASES);
-
- RESERVED = ['case', 'default', 'function', 'var', 'void', 'with', 'const', 'let', 'enum', 'export', 'import', 'native', '__hasProp', '__extends', '__slice', '__bind', '__indexOf', 'implements', 'interface', 'package', 'private', 'protected', 'public', 'static', 'yield'];
-
- STRICT_PROSCRIBED = ['arguments', 'eval'];
-
- JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED);
-
- exports.RESERVED = RESERVED.concat(JS_KEYWORDS).concat(COFFEE_KEYWORDS).concat(STRICT_PROSCRIBED);
-
- exports.STRICT_PROSCRIBED = STRICT_PROSCRIBED;
-
- BOM = 65279;
-
- IDENTIFIER = /^([$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)([^\n\S]*:(?!:))?/;
-
- NUMBER = /^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i;
-
- HEREDOC = /^("""|''')([\s\S]*?)(?:\n[^\n\S]*)?\1/;
-
- OPERATOR = /^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>])\2=?|\?(\.|::)|\.{2,3})/;
-
- WHITESPACE = /^[^\n\S]+/;
-
- COMMENT = /^###([^#][\s\S]*?)(?:###[^\n\S]*|(?:###)$)|^(?:\s*#(?!##[^#]).*)+/;
-
- CODE = /^[-=]>/;
-
- MULTI_DENT = /^(?:\n[^\n\S]*)+/;
-
- SIMPLESTR = /^'[^\\']*(?:\\.[^\\']*)*'/;
-
- JSTOKEN = /^`[^\\`]*(?:\\.[^\\`]*)*`/;
-
- REGEX = /^(\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)([imgy]{0,4})(?!\w)/;
-
- HEREGEX = /^\/{3}([\s\S]+?)\/{3}([imgy]{0,4})(?!\w)/;
-
- HEREGEX_OMIT = /\s+(?:#.*)?/g;
-
- MULTILINER = /\n/g;
-
- HEREDOC_INDENT = /\n+([^\n\S]*)/g;
-
- HEREDOC_ILLEGAL = /\*\//;
-
- LINE_CONTINUER = /^\s*(?:,|\??\.(?![.\d])|::)/;
-
- TRAILING_SPACES = /\s+$/;
-
- COMPOUND_ASSIGN = ['-=', '+=', '/=', '*=', '%=', '||=', '&&=', '?=', '<<=', '>>=', '>>>=', '&=', '^=', '|='];
-
- UNARY = ['!', '~', 'NEW', 'TYPEOF', 'DELETE', 'DO'];
-
- LOGIC = ['&&', '||', '&', '|', '^'];
-
- SHIFT = ['<<', '>>', '>>>'];
-
- COMPARE = ['==', '!=', '<', '>', '<=', '>='];
-
- MATH = ['*', '/', '%'];
-
- RELATION = ['IN', 'OF', 'INSTANCEOF'];
-
- BOOL = ['TRUE', 'FALSE'];
-
- NOT_REGEX = ['NUMBER', 'REGEX', 'BOOL', 'NULL', 'UNDEFINED', '++', '--'];
-
- NOT_SPACED_REGEX = NOT_REGEX.concat(')', '}', 'THIS', 'IDENTIFIER', 'STRING', ']');
-
- CALLABLE = ['IDENTIFIER', 'STRING', 'REGEX', ')', ']', '}', '?', '::', '@', 'THIS', 'SUPER'];
-
- INDEXABLE = CALLABLE.concat('NUMBER', 'BOOL', 'NULL', 'UNDEFINED');
-
- LINE_BREAK = ['INDENT', 'OUTDENT', 'TERMINATOR'];
-
-
-});
-
-ace.define('ace/mode/coffee/rewriter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
- var BALANCED_PAIRS, EXPRESSION_CLOSE, EXPRESSION_END, EXPRESSION_START, IMPLICIT_CALL, IMPLICIT_END, IMPLICIT_FUNC, IMPLICIT_UNSPACED_CALL, INVERSES, LINEBREAKS, SINGLE_CLOSERS, SINGLE_LINERS, generate, left, rite, _i, _len, _ref,
- __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
- __slice = [].slice;
-
- generate = function(tag, value) {
- var tok;
- tok = [tag, value];
- tok.generated = true;
- return tok;
- };
-
- exports.Rewriter = (function() {
- function Rewriter() {}
-
- Rewriter.prototype.rewrite = function(tokens) {
- this.tokens = tokens;
- this.removeLeadingNewlines();
- this.removeMidExpressionNewlines();
- this.closeOpenCalls();
- this.closeOpenIndexes();
- this.addImplicitIndentation();
- this.tagPostfixConditionals();
- this.addImplicitBracesAndParens();
- this.addLocationDataToGeneratedTokens();
- return this.tokens;
- };
-
- Rewriter.prototype.scanTokens = function(block) {
- var i, token, tokens;
- tokens = this.tokens;
- i = 0;
- while (token = tokens[i]) {
- i += block.call(this, token, i, tokens);
- }
- return true;
- };
-
- Rewriter.prototype.detectEnd = function(i, condition, action) {
- var levels, token, tokens, _ref, _ref1;
- tokens = this.tokens;
- levels = 0;
- while (token = tokens[i]) {
- if (levels === 0 && condition.call(this, token, i)) {
- return action.call(this, token, i);
- }
- if (!token || levels < 0) {
- return action.call(this, token, i - 1);
- }
- if (_ref = token[0], __indexOf.call(EXPRESSION_START, _ref) >= 0) {
- levels += 1;
- } else if (_ref1 = token[0], __indexOf.call(EXPRESSION_END, _ref1) >= 0) {
- levels -= 1;
- }
- i += 1;
- }
- return i - 1;
- };
-
- Rewriter.prototype.removeLeadingNewlines = function() {
- var i, tag, _i, _len, _ref;
- _ref = this.tokens;
- for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) {
- tag = _ref[i][0];
- if (tag !== 'TERMINATOR') {
- break;
- }
- }
- if (i) {
- return this.tokens.splice(0, i);
- }
- };
-
- Rewriter.prototype.removeMidExpressionNewlines = function() {
- return this.scanTokens(function(token, i, tokens) {
- var _ref;
- if (!(token[0] === 'TERMINATOR' && (_ref = this.tag(i + 1), __indexOf.call(EXPRESSION_CLOSE, _ref) >= 0))) {
- return 1;
- }
- tokens.splice(i, 1);
- return 0;
- });
- };
-
- Rewriter.prototype.closeOpenCalls = function() {
- var action, condition;
- condition = function(token, i) {
- var _ref;
- return ((_ref = token[0]) === ')' || _ref === 'CALL_END') || token[0] === 'OUTDENT' && this.tag(i - 1) === ')';
- };
- action = function(token, i) {
- return this.tokens[token[0] === 'OUTDENT' ? i - 1 : i][0] = 'CALL_END';
- };
- return this.scanTokens(function(token, i) {
- if (token[0] === 'CALL_START') {
- this.detectEnd(i + 1, condition, action);
- }
- return 1;
- });
- };
-
- Rewriter.prototype.closeOpenIndexes = function() {
- var action, condition;
- condition = function(token, i) {
- var _ref;
- return (_ref = token[0]) === ']' || _ref === 'INDEX_END';
- };
- action = function(token, i) {
- return token[0] = 'INDEX_END';
- };
- return this.scanTokens(function(token, i) {
- if (token[0] === 'INDEX_START') {
- this.detectEnd(i + 1, condition, action);
- }
- return 1;
- });
- };
-
- Rewriter.prototype.matchTags = function() {
- var fuzz, i, j, pattern, _i, _ref, _ref1;
- i = arguments[0], pattern = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
- fuzz = 0;
- for (j = _i = 0, _ref = pattern.length; 0 <= _ref ? _i < _ref : _i > _ref; j = 0 <= _ref ? ++_i : --_i) {
- while (this.tag(i + j + fuzz) === 'HERECOMMENT') {
- fuzz += 2;
- }
- if (pattern[j] == null) {
- continue;
- }
- if (typeof pattern[j] === 'string') {
- pattern[j] = [pattern[j]];
- }
- if (_ref1 = this.tag(i + j + fuzz), __indexOf.call(pattern[j], _ref1) < 0) {
- return false;
- }
- }
- return true;
- };
-
- Rewriter.prototype.looksObjectish = function(j) {
- return this.matchTags(j, '@', null, ':') || this.matchTags(j, null, ':');
- };
-
- Rewriter.prototype.findTagsBackwards = function(i, tags) {
- var backStack, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;
- backStack = [];
- while (i >= 0 && (backStack.length || (_ref2 = this.tag(i), __indexOf.call(tags, _ref2) < 0) && ((_ref3 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref3) < 0) || this.tokens[i].generated) && (_ref4 = this.tag(i), __indexOf.call(LINEBREAKS, _ref4) < 0))) {
- if (_ref = this.tag(i), __indexOf.call(EXPRESSION_END, _ref) >= 0) {
- backStack.push(this.tag(i));
- }
- if ((_ref1 = this.tag(i), __indexOf.call(EXPRESSION_START, _ref1) >= 0) && backStack.length) {
- backStack.pop();
- }
- i -= 1;
- }
- return _ref5 = this.tag(i), __indexOf.call(tags, _ref5) >= 0;
- };
-
- Rewriter.prototype.addImplicitBracesAndParens = function() {
- var stack;
- stack = [];
- return this.scanTokens(function(token, i, tokens) {
- var endImplicitCall, endImplicitObject, forward, inImplicit, inImplicitCall, inImplicitControl, inImplicitObject, nextTag, offset, prevTag, s, sameLine, stackIdx, stackTag, stackTop, startIdx, startImplicitCall, startImplicitObject, startsLine, tag, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;
- tag = token[0];
- prevTag = (i > 0 ? tokens[i - 1] : [])[0];
- nextTag = (i < tokens.length - 1 ? tokens[i + 1] : [])[0];
- stackTop = function() {
- return stack[stack.length - 1];
- };
- startIdx = i;
- forward = function(n) {
- return i - startIdx + n;
- };
- inImplicit = function() {
- var _ref, _ref1;
- return (_ref = stackTop()) != null ? (_ref1 = _ref[2]) != null ? _ref1.ours : void 0 : void 0;
- };
- inImplicitCall = function() {
- var _ref;
- return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '(';
- };
- inImplicitObject = function() {
- var _ref;
- return inImplicit() && ((_ref = stackTop()) != null ? _ref[0] : void 0) === '{';
- };
- inImplicitControl = function() {
- var _ref;
- return inImplicit && ((_ref = stackTop()) != null ? _ref[0] : void 0) === 'CONTROL';
- };
- startImplicitCall = function(j) {
- var idx;
- idx = j != null ? j : i;
- stack.push([
- '(', idx, {
- ours: true
- }
- ]);
- tokens.splice(idx, 0, generate('CALL_START', '('));
- if (j == null) {
- return i += 1;
- }
- };
- endImplicitCall = function() {
- stack.pop();
- tokens.splice(i, 0, generate('CALL_END', ')'));
- return i += 1;
- };
- startImplicitObject = function(j, startsLine) {
- var idx;
- if (startsLine == null) {
- startsLine = true;
- }
- idx = j != null ? j : i;
- stack.push([
- '{', idx, {
- sameLine: true,
- startsLine: startsLine,
- ours: true
- }
- ]);
- tokens.splice(idx, 0, generate('{', generate(new String('{'))));
- if (j == null) {
- return i += 1;
- }
- };
- endImplicitObject = function(j) {
- j = j != null ? j : i;
- stack.pop();
- tokens.splice(j, 0, generate('}', '}'));
- return i += 1;
- };
- if (inImplicitCall() && (tag === 'IF' || tag === 'TRY' || tag === 'FINALLY' || tag === 'CATCH' || tag === 'CLASS' || tag === 'SWITCH')) {
- stack.push([
- 'CONTROL', i, {
- ours: true
- }
- ]);
- return forward(1);
- }
- if (tag === 'INDENT' && inImplicit()) {
- if (prevTag !== '=>' && prevTag !== '->' && prevTag !== '[' && prevTag !== '(' && prevTag !== ',' && prevTag !== '{' && prevTag !== 'TRY' && prevTag !== 'ELSE' && prevTag !== '=') {
- while (inImplicitCall()) {
- endImplicitCall();
- }
- }
- if (inImplicitControl()) {
- stack.pop();
- }
- stack.push([tag, i]);
- return forward(1);
- }
- if (__indexOf.call(EXPRESSION_START, tag) >= 0) {
- stack.push([tag, i]);
- return forward(1);
- }
- if (__indexOf.call(EXPRESSION_END, tag) >= 0) {
- while (inImplicit()) {
- if (inImplicitCall()) {
- endImplicitCall();
- } else if (inImplicitObject()) {
- endImplicitObject();
- } else {
- stack.pop();
- }
- }
- stack.pop();
- }
- if ((__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && token.spaced && !token.stringEnd || tag === '?' && i > 0 && !tokens[i - 1].spaced) && (__indexOf.call(IMPLICIT_CALL, nextTag) >= 0 || __indexOf.call(IMPLICIT_UNSPACED_CALL, nextTag) >= 0 && !((_ref = tokens[i + 1]) != null ? _ref.spaced : void 0) && !((_ref1 = tokens[i + 1]) != null ? _ref1.newLine : void 0))) {
- if (tag === '?') {
- tag = token[0] = 'FUNC_EXIST';
- }
- startImplicitCall(i + 1);
- return forward(2);
- }
- if (__indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.matchTags(i + 1, 'INDENT', null, ':') && !this.findTagsBackwards(i, ['CLASS', 'EXTENDS', 'IF', 'CATCH', 'SWITCH', 'LEADING_WHEN', 'FOR', 'WHILE', 'UNTIL'])) {
- startImplicitCall(i + 1);
- stack.push(['INDENT', i + 2]);
- return forward(3);
- }
- if (tag === ':') {
- if (this.tag(i - 2) === '@') {
- s = i - 2;
- } else {
- s = i - 1;
- }
- while (this.tag(s - 2) === 'HERECOMMENT') {
- s -= 2;
- }
- startsLine = s === 0 || (_ref2 = this.tag(s - 1), __indexOf.call(LINEBREAKS, _ref2) >= 0) || tokens[s - 1].newLine;
- if (stackTop()) {
- _ref3 = stackTop(), stackTag = _ref3[0], stackIdx = _ref3[1];
- if ((stackTag === '{' || stackTag === 'INDENT' && this.tag(stackIdx - 1) === '{') && (startsLine || this.tag(s - 1) === ',' || this.tag(s - 1) === '{')) {
- return forward(1);
- }
- }
- startImplicitObject(s, !!startsLine);
- return forward(2);
- }
- if (prevTag === 'OUTDENT' && inImplicitCall() && (tag === '.' || tag === '?.' || tag === '::' || tag === '?::')) {
- endImplicitCall();
- return forward(1);
- }
- if (inImplicitObject() && __indexOf.call(LINEBREAKS, tag) >= 0) {
- stackTop()[2].sameLine = false;
- }
- if (__indexOf.call(IMPLICIT_END, tag) >= 0) {
- while (inImplicit()) {
- _ref4 = stackTop(), stackTag = _ref4[0], stackIdx = _ref4[1], (_ref5 = _ref4[2], sameLine = _ref5.sameLine, startsLine = _ref5.startsLine);
- if (inImplicitCall() && prevTag !== ',') {
- endImplicitCall();
- } else if (inImplicitObject() && sameLine && !startsLine) {
- endImplicitObject();
- } else if (inImplicitObject() && tag === 'TERMINATOR' && prevTag !== ',' && !(startsLine && this.looksObjectish(i + 1))) {
- endImplicitObject();
- } else {
- break;
- }
- }
- }
- if (tag === ',' && !this.looksObjectish(i + 1) && inImplicitObject() && (nextTag !== 'TERMINATOR' || !this.looksObjectish(i + 2))) {
- offset = nextTag === 'OUTDENT' ? 1 : 0;
- while (inImplicitObject()) {
- endImplicitObject(i + offset);
- }
- }
- return forward(1);
- });
- };
-
- Rewriter.prototype.addLocationDataToGeneratedTokens = function() {
- return this.scanTokens(function(token, i, tokens) {
- var column, line, nextLocation, prevLocation, _ref, _ref1;
- if (token[2]) {
- return 1;
- }
- if (!(token.generated || token.explicit)) {
- return 1;
- }
- if (token[0] === '{' && (nextLocation = (_ref = tokens[i + 1]) != null ? _ref[2] : void 0)) {
- line = nextLocation.first_line, column = nextLocation.first_column;
- } else if (prevLocation = (_ref1 = tokens[i - 1]) != null ? _ref1[2] : void 0) {
- line = prevLocation.last_line, column = prevLocation.last_column;
- } else {
- line = column = 0;
- }
- token[2] = {
- first_line: line,
- first_column: column,
- last_line: line,
- last_column: column
- };
- return 1;
- });
- };
-
- Rewriter.prototype.addImplicitIndentation = function() {
- var action, condition, indent, outdent, starter;
- starter = indent = outdent = null;
- condition = function(token, i) {
- var _ref, _ref1;
- return token[1] !== ';' && (_ref = token[0], __indexOf.call(SINGLE_CLOSERS, _ref) >= 0) && !(token[0] === 'ELSE' && starter !== 'THEN') && !(((_ref1 = token[0]) === 'CATCH' || _ref1 === 'FINALLY') && (starter === '->' || starter === '=>'));
- };
- action = function(token, i) {
- return this.tokens.splice((this.tag(i - 1) === ',' ? i - 1 : i), 0, outdent);
- };
- return this.scanTokens(function(token, i, tokens) {
- var j, tag, _i, _ref, _ref1;
- tag = token[0];
- if (tag === 'TERMINATOR' && this.tag(i + 1) === 'THEN') {
- tokens.splice(i, 1);
- return 0;
- }
- if (tag === 'ELSE' && this.tag(i - 1) !== 'OUTDENT') {
- tokens.splice.apply(tokens, [i, 0].concat(__slice.call(this.indentation())));
- return 2;
- }
- if (tag === 'CATCH') {
- for (j = _i = 1; _i <= 2; j = ++_i) {
- if (!((_ref = this.tag(i + j)) === 'OUTDENT' || _ref === 'TERMINATOR' || _ref === 'FINALLY')) {
- continue;
- }
- tokens.splice.apply(tokens, [i + j, 0].concat(__slice.call(this.indentation())));
- return 2 + j;
- }
- }
- if (__indexOf.call(SINGLE_LINERS, tag) >= 0 && this.tag(i + 1) !== 'INDENT' && !(tag === 'ELSE' && this.tag(i + 1) === 'IF')) {
- starter = tag;
- _ref1 = this.indentation(true), indent = _ref1[0], outdent = _ref1[1];
- if (starter === 'THEN') {
- indent.fromThen = true;
- }
- tokens.splice(i + 1, 0, indent);
- this.detectEnd(i + 2, condition, action);
- if (tag === 'THEN') {
- tokens.splice(i, 1);
- }
- return 1;
- }
- return 1;
- });
- };
-
- Rewriter.prototype.tagPostfixConditionals = function() {
- var action, condition, original;
- original = null;
- condition = function(token, i) {
- var prevTag, tag;
- tag = token[0];
- prevTag = this.tokens[i - 1][0];
- return tag === 'TERMINATOR' || (tag === 'INDENT' && __indexOf.call(SINGLE_LINERS, prevTag) < 0);
- };
- action = function(token, i) {
- if (token[0] !== 'INDENT' || (token.generated && !token.fromThen)) {
- return original[0] = 'POST_' + original[0];
- }
- };
- return this.scanTokens(function(token, i) {
- if (token[0] !== 'IF') {
- return 1;
- }
- original = token;
- this.detectEnd(i + 1, condition, action);
- return 1;
- });
- };
-
- Rewriter.prototype.indentation = function(implicit) {
- var indent, outdent;
- if (implicit == null) {
- implicit = false;
- }
- indent = ['INDENT', 2];
- outdent = ['OUTDENT', 2];
- if (implicit) {
- indent.generated = outdent.generated = true;
- }
- if (!implicit) {
- indent.explicit = outdent.explicit = true;
- }
- return [indent, outdent];
- };
-
- Rewriter.prototype.generate = generate;
-
- Rewriter.prototype.tag = function(i) {
- var _ref;
- return (_ref = this.tokens[i]) != null ? _ref[0] : void 0;
- };
-
- return Rewriter;
-
- })();
-
- BALANCED_PAIRS = [['(', ')'], ['[', ']'], ['{', '}'], ['INDENT', 'OUTDENT'], ['CALL_START', 'CALL_END'], ['PARAM_START', 'PARAM_END'], ['INDEX_START', 'INDEX_END']];
-
- exports.INVERSES = INVERSES = {};
-
- EXPRESSION_START = [];
-
- EXPRESSION_END = [];
-
- for (_i = 0, _len = BALANCED_PAIRS.length; _i < _len; _i++) {
- _ref = BALANCED_PAIRS[_i], left = _ref[0], rite = _ref[1];
- EXPRESSION_START.push(INVERSES[rite] = left);
- EXPRESSION_END.push(INVERSES[left] = rite);
- }
-
- EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END);
-
- IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS'];
-
- IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'TRY', 'SWITCH', 'THIS', 'BOOL', 'NULL', 'UNDEFINED', 'UNARY', 'SUPER', 'THROW', '@', '->', '=>', '[', '(', '{', '--', '++'];
-
- IMPLICIT_UNSPACED_CALL = ['+', '-'];
-
- IMPLICIT_END = ['POST_IF', 'FOR', 'WHILE', 'UNTIL', 'WHEN', 'BY', 'LOOP', 'TERMINATOR'];
-
- SINGLE_LINERS = ['ELSE', '->', '=>', 'TRY', 'FINALLY', 'THEN'];
-
- SINGLE_CLOSERS = ['TERMINATOR', 'CATCH', 'FINALLY', 'ELSE', 'OUTDENT', 'LEADING_WHEN'];
-
- LINEBREAKS = ['TERMINATOR', 'INDENT', 'OUTDENT'];
-
-
-});
-
-ace.define('ace/mode/coffee/helpers', ['require', 'exports', 'module' ], function(require, exports, module) {
-
- var buildLocationData, extend, flatten, last, repeat, _ref;
-
- exports.starts = function(string, literal, start) {
- return literal === string.substr(start, literal.length);
- };
-
- exports.ends = function(string, literal, back) {
- var len;
- len = literal.length;
- return literal === string.substr(string.length - len - (back || 0), len);
- };
-
- exports.repeat = repeat = function(str, n) {
- var res;
- res = '';
- while (n > 0) {
- if (n & 1) {
- res += str;
- }
- n >>>= 1;
- str += str;
- }
- return res;
- };
-
- exports.compact = function(array) {
- var item, _i, _len, _results;
- _results = [];
- for (_i = 0, _len = array.length; _i < _len; _i++) {
- item = array[_i];
- if (item) {
- _results.push(item);
- }
- }
- return _results;
- };
-
- exports.count = function(string, substr) {
- var num, pos;
- num = pos = 0;
- if (!substr.length) {
- return 1 / 0;
- }
- while (pos = 1 + string.indexOf(substr, pos)) {
- num++;
- }
- return num;
- };
-
- exports.merge = function(options, overrides) {
- return extend(extend({}, options), overrides);
- };
-
- extend = exports.extend = function(object, properties) {
- var key, val;
- for (key in properties) {
- val = properties[key];
- object[key] = val;
- }
- return object;
- };
-
- exports.flatten = flatten = function(array) {
- var element, flattened, _i, _len;
- flattened = [];
- for (_i = 0, _len = array.length; _i < _len; _i++) {
- element = array[_i];
- if (element instanceof Array) {
- flattened = flattened.concat(flatten(element));
- } else {
- flattened.push(element);
- }
- }
- return flattened;
- };
-
- exports.del = function(obj, key) {
- var val;
- val = obj[key];
- delete obj[key];
- return val;
- };
-
- exports.last = last = function(array, back) {
- return array[array.length - (back || 0) - 1];
- };
-
- exports.some = (_ref = Array.prototype.some) != null ? _ref : function(fn) {
- var e, _i, _len;
- for (_i = 0, _len = this.length; _i < _len; _i++) {
- e = this[_i];
- if (fn(e)) {
- return true;
- }
- }
- return false;
- };
-
- exports.invertLiterate = function(code) {
- var line, lines, maybe_code;
- maybe_code = true;
- lines = (function() {
- var _i, _len, _ref1, _results;
- _ref1 = code.split('\n');
- _results = [];
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- line = _ref1[_i];
- if (maybe_code && /^([ ]{4}|[ ]{0,3}\t)/.test(line)) {
- _results.push(line);
- } else if (maybe_code = /^\s*$/.test(line)) {
- _results.push(line);
- } else {
- _results.push('# ' + line);
- }
- }
- return _results;
- })();
- return lines.join('\n');
- };
-
- buildLocationData = function(first, last) {
- if (!last) {
- return first;
- } else {
- return {
- first_line: first.first_line,
- first_column: first.first_column,
- last_line: last.last_line,
- last_column: last.last_column
- };
- }
- };
-
- exports.addLocationDataFn = function(first, last) {
- return function(obj) {
- if (((typeof obj) === 'object') && (!!obj['updateLocationDataIfMissing'])) {
- obj.updateLocationDataIfMissing(buildLocationData(first, last));
- }
- return obj;
- };
- };
-
- exports.locationDataToString = function(obj) {
- var locationData;
- if (("2" in obj) && ("first_line" in obj[2])) {
- locationData = obj[2];
- } else if ("first_line" in obj) {
- locationData = obj;
- }
- if (locationData) {
- return ("" + (locationData.first_line + 1) + ":" + (locationData.first_column + 1) + "-") + ("" + (locationData.last_line + 1) + ":" + (locationData.last_column + 1));
- } else {
- return "No location data";
- }
- };
-
- exports.baseFileName = function(file, stripExt, useWinPathSep) {
- var parts, pathSep;
- if (stripExt == null) {
- stripExt = false;
- }
- if (useWinPathSep == null) {
- useWinPathSep = false;
- }
- pathSep = useWinPathSep ? /\\|\// : /\//;
- parts = file.split(pathSep);
- file = parts[parts.length - 1];
- if (!stripExt) {
- return file;
- }
- parts = file.split('.');
- parts.pop();
- if (parts[parts.length - 1] === 'coffee' && parts.length > 1) {
- parts.pop();
- }
- return parts.join('.');
- };
-
- exports.isCoffee = function(file) {
- return /\.((lit)?coffee|coffee\.md)$/.test(file);
- };
-
- exports.isLiterate = function(file) {
- return /\.(litcoffee|coffee\.md)$/.test(file);
- };
-
- exports.throwSyntaxError = function(message, location) {
- var error;
- if (location.last_line == null) {
- location.last_line = location.first_line;
- }
- if (location.last_column == null) {
- location.last_column = location.first_column;
- }
- error = new SyntaxError(message);
- error.location = location;
- throw error;
- };
-
- exports.prettyErrorMessage = function(error, filename, code, useColors) {
- var codeLine, colorize, end, first_column, first_line, last_column, last_line, marker, message, start, _ref1;
- if (!error.location) {
- return error.stack || ("" + error);
- }
- filename = error.filename || filename;
- code = error.code || code;
- _ref1 = error.location, first_line = _ref1.first_line, first_column = _ref1.first_column, last_line = _ref1.last_line, last_column = _ref1.last_column;
- codeLine = code.split('\n')[first_line];
- start = first_column;
- end = first_line === last_line ? last_column + 1 : codeLine.length;
- marker = repeat(' ', start) + repeat('^', end - start);
- if (useColors) {
- colorize = function(str) {
- return "\x1B[1;31m" + str + "\x1B[0m";
- };
- codeLine = codeLine.slice(0, start) + colorize(codeLine.slice(start, end)) + codeLine.slice(end);
- marker = colorize(marker);
- }
- message = "" + filename + ":" + (first_line + 1) + ":" + (first_column + 1) + ": error: " + error.message + "\n" + codeLine + "\n" + marker;
- return message;
- };
-
-
-});
-
-ace.define('ace/mode/coffee/parser', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"Root":3,"Body":4,"Block":5,"TERMINATOR":6,"Line":7,"Expression":8,"Statement":9,"Return":10,"Comment":11,"STATEMENT":12,"Value":13,"Invocation":14,"Code":15,"Operation":16,"Assign":17,"If":18,"Try":19,"While":20,"For":21,"Switch":22,"Class":23,"Throw":24,"INDENT":25,"OUTDENT":26,"Identifier":27,"IDENTIFIER":28,"AlphaNumeric":29,"NUMBER":30,"STRING":31,"Literal":32,"JS":33,"REGEX":34,"DEBUGGER":35,"UNDEFINED":36,"NULL":37,"BOOL":38,"Assignable":39,"=":40,"AssignObj":41,"ObjAssignable":42,":":43,"ThisProperty":44,"RETURN":45,"HERECOMMENT":46,"PARAM_START":47,"ParamList":48,"PARAM_END":49,"FuncGlyph":50,"->":51,"=>":52,"OptComma":53,",":54,"Param":55,"ParamVar":56,"...":57,"Array":58,"Object":59,"Splat":60,"SimpleAssignable":61,"Accessor":62,"Parenthetical":63,"Range":64,"This":65,".":66,"?.":67,"::":68,"?::":69,"Index":70,"INDEX_START":71,"IndexValue":72,"INDEX_END":73,"INDEX_SOAK":74,"Slice":75,"{":76,"AssignList":77,"}":78,"CLASS":79,"EXTENDS":80,"OptFuncExist":81,"Arguments":82,"SUPER":83,"FUNC_EXIST":84,"CALL_START":85,"CALL_END":86,"ArgList":87,"THIS":88,"@":89,"[":90,"]":91,"RangeDots":92,"..":93,"Arg":94,"SimpleArgs":95,"TRY":96,"Catch":97,"FINALLY":98,"CATCH":99,"THROW":100,"(":101,")":102,"WhileSource":103,"WHILE":104,"WHEN":105,"UNTIL":106,"Loop":107,"LOOP":108,"ForBody":109,"FOR":110,"ForStart":111,"ForSource":112,"ForVariables":113,"OWN":114,"ForValue":115,"FORIN":116,"FOROF":117,"BY":118,"SWITCH":119,"Whens":120,"ELSE":121,"When":122,"LEADING_WHEN":123,"IfBlock":124,"IF":125,"POST_IF":126,"UNARY":127,"-":128,"+":129,"--":130,"++":131,"?":132,"MATH":133,"SHIFT":134,"COMPARE":135,"LOGIC":136,"RELATION":137,"COMPOUND_ASSIGN":138,"$accept":0,"$end":1},
-terminals_: {2:"error",6:"TERMINATOR",12:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",31:"STRING",33:"JS",34:"REGEX",35:"DEBUGGER",36:"UNDEFINED",37:"NULL",38:"BOOL",40:"=",43:":",45:"RETURN",46:"HERECOMMENT",47:"PARAM_START",49:"PARAM_END",51:"->",52:"=>",54:",",57:"...",66:".",67:"?.",68:"::",69:"?::",71:"INDEX_START",73:"INDEX_END",74:"INDEX_SOAK",76:"{",78:"}",79:"CLASS",80:"EXTENDS",83:"SUPER",84:"FUNC_EXIST",85:"CALL_START",86:"CALL_END",88:"THIS",89:"@",90:"[",91:"]",93:"..",96:"TRY",98:"FINALLY",99:"CATCH",100:"THROW",101:"(",102:")",104:"WHILE",105:"WHEN",106:"UNTIL",108:"LOOP",110:"FOR",114:"OWN",116:"FORIN",117:"FOROF",118:"BY",119:"SWITCH",121:"ELSE",123:"LEADING_WHEN",125:"IF",126:"POST_IF",127:"UNARY",128:"-",129:"+",130:"--",131:"++",132:"?",133:"MATH",134:"SHIFT",135:"COMPARE",136:"LOGIC",137:"RELATION",138:"COMPOUND_ASSIGN"},
-productions_: [0,[3,0],[3,1],[3,2],[4,1],[4,3],[4,2],[7,1],[7,1],[9,1],[9,1],[9,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[8,1],[5,2],[5,3],[27,1],[29,1],[29,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[32,1],[17,3],[17,4],[17,5],[41,1],[41,3],[41,5],[41,1],[42,1],[42,1],[42,1],[10,2],[10,1],[11,1],[15,5],[15,2],[50,1],[50,1],[53,0],[53,1],[48,0],[48,1],[48,3],[48,4],[48,6],[55,1],[55,2],[55,3],[56,1],[56,1],[56,1],[56,1],[60,2],[61,1],[61,2],[61,2],[61,1],[39,1],[39,1],[39,1],[13,1],[13,1],[13,1],[13,1],[13,1],[62,2],[62,2],[62,2],[62,2],[62,1],[62,1],[70,3],[70,2],[72,1],[72,1],[59,4],[77,0],[77,1],[77,3],[77,4],[77,6],[23,1],[23,2],[23,3],[23,4],[23,2],[23,3],[23,4],[23,5],[14,3],[14,3],[14,1],[14,2],[81,0],[81,1],[82,2],[82,4],[65,1],[65,1],[44,2],[58,2],[58,4],[92,1],[92,1],[64,5],[75,3],[75,2],[75,2],[75,1],[87,1],[87,3],[87,4],[87,4],[87,6],[94,1],[94,1],[95,1],[95,3],[19,2],[19,3],[19,4],[19,5],[97,3],[97,3],[97,2],[24,2],[63,3],[63,5],[103,2],[103,4],[103,2],[103,4],[20,2],[20,2],[20,2],[20,1],[107,2],[107,2],[21,2],[21,2],[21,2],[109,2],[109,2],[111,2],[111,3],[115,1],[115,1],[115,1],[115,1],[113,1],[113,3],[112,2],[112,2],[112,4],[112,4],[112,4],[112,6],[112,6],[22,5],[22,7],[22,4],[22,6],[120,1],[120,2],[122,3],[122,4],[124,3],[124,5],[18,1],[18,3],[18,3],[18,3],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,2],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,3],[16,5],[16,4],[16,3]],
-performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1:return this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Block);
-break;
-case 2:return this.$ = $$[$0];
-break;
-case 3:return this.$ = $$[$0-1];
-break;
-case 4:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(yy.Block.wrap([$$[$0]]));
-break;
-case 5:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].push($$[$0]));
-break;
-case 6:this.$ = $$[$0-1];
-break;
-case 7:this.$ = $$[$0];
-break;
-case 8:this.$ = $$[$0];
-break;
-case 9:this.$ = $$[$0];
-break;
-case 10:this.$ = $$[$0];
-break;
-case 11:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 12:this.$ = $$[$0];
-break;
-case 13:this.$ = $$[$0];
-break;
-case 14:this.$ = $$[$0];
-break;
-case 15:this.$ = $$[$0];
-break;
-case 16:this.$ = $$[$0];
-break;
-case 17:this.$ = $$[$0];
-break;
-case 18:this.$ = $$[$0];
-break;
-case 19:this.$ = $$[$0];
-break;
-case 20:this.$ = $$[$0];
-break;
-case 21:this.$ = $$[$0];
-break;
-case 22:this.$ = $$[$0];
-break;
-case 23:this.$ = $$[$0];
-break;
-case 24:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Block);
-break;
-case 25:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]);
-break;
-case 26:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 27:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 28:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 29:this.$ = $$[$0];
-break;
-case 30:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 31:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 32:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Literal($$[$0]));
-break;
-case 33:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Undefined);
-break;
-case 34:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Null);
-break;
-case 35:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Bool($$[$0]));
-break;
-case 36:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0]));
-break;
-case 37:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0]));
-break;
-case 38:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1]));
-break;
-case 39:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 40:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-2])(new yy.Value($$[$0-2])), $$[$0], 'object'));
-break;
-case 41:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign(yy.addLocationDataFn(_$[$0-4])(new yy.Value($$[$0-4])), $$[$0-1], 'object'));
-break;
-case 42:this.$ = $$[$0];
-break;
-case 43:this.$ = $$[$0];
-break;
-case 44:this.$ = $$[$0];
-break;
-case 45:this.$ = $$[$0];
-break;
-case 46:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Return($$[$0]));
-break;
-case 47:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Return);
-break;
-case 48:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Comment($$[$0]));
-break;
-case 49:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Code($$[$0-3], $$[$0], $$[$0-1]));
-break;
-case 50:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Code([], $$[$0], $$[$0-1]));
-break;
-case 51:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('func');
-break;
-case 52:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('boundfunc');
-break;
-case 53:this.$ = $$[$0];
-break;
-case 54:this.$ = $$[$0];
-break;
-case 55:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]);
-break;
-case 56:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 57:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 58:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 59:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 60:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Param($$[$0]));
-break;
-case 61:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Param($$[$0-1], null, true));
-break;
-case 62:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Param($$[$0-2], $$[$0]));
-break;
-case 63:this.$ = $$[$0];
-break;
-case 64:this.$ = $$[$0];
-break;
-case 65:this.$ = $$[$0];
-break;
-case 66:this.$ = $$[$0];
-break;
-case 67:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Splat($$[$0-1]));
-break;
-case 68:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 69:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].add($$[$0]));
-break;
-case 70:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value($$[$0-1], [].concat($$[$0])));
-break;
-case 71:this.$ = $$[$0];
-break;
-case 72:this.$ = $$[$0];
-break;
-case 73:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 74:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 75:this.$ = $$[$0];
-break;
-case 76:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 77:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 78:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 79:this.$ = $$[$0];
-break;
-case 80:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0]));
-break;
-case 81:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Access($$[$0], 'soak'));
-break;
-case 82:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'))), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]);
-break;
-case 83:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Access(new yy.Literal('prototype'), 'soak')), yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))]);
-break;
-case 84:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Access(new yy.Literal('prototype')));
-break;
-case 85:this.$ = $$[$0];
-break;
-case 86:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-1]);
-break;
-case 87:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(yy.extend($$[$0], {
- soak: true
- }));
-break;
-case 88:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Index($$[$0]));
-break;
-case 89:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Slice($$[$0]));
-break;
-case 90:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Obj($$[$0-2], $$[$0-3].generated));
-break;
-case 91:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([]);
-break;
-case 92:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 93:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 94:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 95:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 96:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Class);
-break;
-case 97:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class(null, null, $$[$0]));
-break;
-case 98:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class(null, $$[$0]));
-break;
-case 99:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class(null, $$[$0-1], $$[$0]));
-break;
-case 100:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Class($$[$0]));
-break;
-case 101:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Class($$[$0-1], null, $$[$0]));
-break;
-case 102:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Class($$[$0-2], $$[$0]));
-break;
-case 103:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Class($$[$0-3], $$[$0-1], $$[$0]));
-break;
-case 104:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 105:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Call($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 106:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Call('super', [new yy.Splat(new yy.Literal('arguments'))]));
-break;
-case 107:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Call('super', $$[$0]));
-break;
-case 108:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(false);
-break;
-case 109:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(true);
-break;
-case 110:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([]);
-break;
-case 111:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]);
-break;
-case 112:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this')));
-break;
-case 113:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value(new yy.Literal('this')));
-break;
-case 114:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Value(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('this')), [yy.addLocationDataFn(_$[$0])(new yy.Access($$[$0]))], 'this'));
-break;
-case 115:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Arr([]));
-break;
-case 116:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Arr($$[$0-2]));
-break;
-case 117:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('inclusive');
-break;
-case 118:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])('exclusive');
-break;
-case 119:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Range($$[$0-3], $$[$0-1], $$[$0-2]));
-break;
-case 120:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Range($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 121:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range($$[$0-1], null, $$[$0]));
-break;
-case 122:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Range(null, $$[$0], $$[$0-1]));
-break;
-case 123:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Range(null, null, $$[$0]));
-break;
-case 124:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 125:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].concat($$[$0]));
-break;
-case 126:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-3].concat($$[$0]));
-break;
-case 127:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])($$[$0-2]);
-break;
-case 128:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])($$[$0-5].concat($$[$0-2]));
-break;
-case 129:this.$ = $$[$0];
-break;
-case 130:this.$ = $$[$0];
-break;
-case 131:this.$ = $$[$0];
-break;
-case 132:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([].concat($$[$0-2], $$[$0]));
-break;
-case 133:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Try($$[$0]));
-break;
-case 134:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Try($$[$0-1], $$[$0][0], $$[$0][1]));
-break;
-case 135:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Try($$[$0-2], null, null, $$[$0]));
-break;
-case 136:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Try($$[$0-3], $$[$0-2][0], $$[$0-2][1], $$[$0]));
-break;
-case 137:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-1], $$[$0]]);
-break;
-case 138:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([yy.addLocationDataFn(_$[$0-1])(new yy.Value($$[$0-1])), $$[$0]]);
-break;
-case 139:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])([null, $$[$0]]);
-break;
-case 140:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Throw($$[$0]));
-break;
-case 141:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Parens($$[$0-1]));
-break;
-case 142:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Parens($$[$0-2]));
-break;
-case 143:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0]));
-break;
-case 144:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], {
- guard: $$[$0]
- }));
-break;
-case 145:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While($$[$0], {
- invert: true
- }));
-break;
-case 146:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.While($$[$0-2], {
- invert: true,
- guard: $$[$0]
- }));
-break;
-case 147:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].addBody($$[$0]));
-break;
-case 148:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]]))));
-break;
-case 149:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0].addBody(yy.addLocationDataFn(_$[$0-1])(yy.Block.wrap([$$[$0-1]]))));
-break;
-case 150:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])($$[$0]);
-break;
-case 151:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody($$[$0]));
-break;
-case 152:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.While(yy.addLocationDataFn(_$[$0-1])(new yy.Literal('true'))).addBody(yy.addLocationDataFn(_$[$0])(yy.Block.wrap([$$[$0]]))));
-break;
-case 153:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0]));
-break;
-case 154:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0-1], $$[$0]));
-break;
-case 155:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.For($$[$0], $$[$0-1]));
-break;
-case 156:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
- source: yy.addLocationDataFn(_$[$0])(new yy.Value($$[$0]))
- });
-break;
-case 157:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])((function () {
- $$[$0].own = $$[$0-1].own;
- $$[$0].name = $$[$0-1][0];
- $$[$0].index = $$[$0-1][1];
- return $$[$0];
- }()));
-break;
-case 158:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0]);
-break;
-case 159:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () {
- $$[$0].own = true;
- return $$[$0];
- }()));
-break;
-case 160:this.$ = $$[$0];
-break;
-case 161:this.$ = $$[$0];
-break;
-case 162:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 163:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])(new yy.Value($$[$0]));
-break;
-case 164:this.$ = yy.addLocationDataFn(_$[$0], _$[$0])([$$[$0]]);
-break;
-case 165:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([$$[$0-2], $$[$0]]);
-break;
-case 166:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
- source: $$[$0]
- });
-break;
-case 167:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])({
- source: $$[$0],
- object: true
- });
-break;
-case 168:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
- source: $$[$0-2],
- guard: $$[$0]
- });
-break;
-case 169:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
- source: $$[$0-2],
- guard: $$[$0],
- object: true
- });
-break;
-case 170:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])({
- source: $$[$0-2],
- step: $$[$0]
- });
-break;
-case 171:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({
- source: $$[$0-4],
- guard: $$[$0-2],
- step: $$[$0]
- });
-break;
-case 172:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])({
- source: $$[$0-4],
- step: $$[$0-2],
- guard: $$[$0]
- });
-break;
-case 173:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Switch($$[$0-3], $$[$0-1]));
-break;
-case 174:this.$ = yy.addLocationDataFn(_$[$0-6], _$[$0])(new yy.Switch($$[$0-5], $$[$0-3], $$[$0-1]));
-break;
-case 175:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Switch(null, $$[$0-1]));
-break;
-case 176:this.$ = yy.addLocationDataFn(_$[$0-5], _$[$0])(new yy.Switch(null, $$[$0-3], $$[$0-1]));
-break;
-case 177:this.$ = $$[$0];
-break;
-case 178:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])($$[$0-1].concat($$[$0]));
-break;
-case 179:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])([[$$[$0-1], $$[$0]]]);
-break;
-case 180:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])([[$$[$0-2], $$[$0-1]]]);
-break;
-case 181:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0-1], $$[$0], {
- type: $$[$0-2]
- }));
-break;
-case 182:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])($$[$0-4].addElse(new yy.If($$[$0-1], $$[$0], {
- type: $$[$0-2]
- })));
-break;
-case 183:this.$ = $$[$0];
-break;
-case 184:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])($$[$0-2].addElse($$[$0]));
-break;
-case 185:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), {
- type: $$[$0-1],
- statement: true
- }));
-break;
-case 186:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.If($$[$0], yy.addLocationDataFn(_$[$0-2])(yy.Block.wrap([$$[$0-2]])), {
- type: $$[$0-1],
- statement: true
- }));
-break;
-case 187:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op($$[$0-1], $$[$0]));
-break;
-case 188:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('-', $$[$0]));
-break;
-case 189:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('+', $$[$0]));
-break;
-case 190:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0]));
-break;
-case 191:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0]));
-break;
-case 192:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('--', $$[$0-1], null, true));
-break;
-case 193:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Op('++', $$[$0-1], null, true));
-break;
-case 194:this.$ = yy.addLocationDataFn(_$[$0-1], _$[$0])(new yy.Existence($$[$0-1]));
-break;
-case 195:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('+', $$[$0-2], $$[$0]));
-break;
-case 196:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op('-', $$[$0-2], $$[$0]));
-break;
-case 197:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 198:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 199:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 200:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Op($$[$0-1], $$[$0-2], $$[$0]));
-break;
-case 201:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])((function () {
- if ($$[$0-1].charAt(0) === '!') {
- return new yy.Op($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert();
- } else {
- return new yy.Op($$[$0-1], $$[$0-2], $$[$0]);
- }
- }()));
-break;
-case 202:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Assign($$[$0-2], $$[$0], $$[$0-1]));
-break;
-case 203:this.$ = yy.addLocationDataFn(_$[$0-4], _$[$0])(new yy.Assign($$[$0-4], $$[$0-1], $$[$0-3]));
-break;
-case 204:this.$ = yy.addLocationDataFn(_$[$0-3], _$[$0])(new yy.Assign($$[$0-3], $$[$0], $$[$0-2]));
-break;
-case 205:this.$ = yy.addLocationDataFn(_$[$0-2], _$[$0])(new yy.Extends($$[$0-2], $$[$0]));
-break;
-}
-},
-table: [{1:[2,1],3:1,4:2,5:3,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[3]},{1:[2,2],6:[1,74]},{6:[1,75]},{1:[2,4],6:[2,4],26:[2,4],102:[2,4]},{4:77,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[1,76],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,7],6:[2,7],26:[2,7],102:[2,7],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,8],6:[2,8],26:[2,8],102:[2,8],103:90,104:[1,65],106:[1,66],109:91,110:[1,68],111:69,126:[1,89]},{1:[2,12],6:[2,12],25:[2,12],26:[2,12],49:[2,12],54:[2,12],57:[2,12],62:93,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],73:[2,12],74:[1,101],78:[2,12],81:92,84:[1,94],85:[2,108],86:[2,12],91:[2,12],93:[2,12],102:[2,12],104:[2,12],105:[2,12],106:[2,12],110:[2,12],118:[2,12],126:[2,12],128:[2,12],129:[2,12],132:[2,12],133:[2,12],134:[2,12],135:[2,12],136:[2,12],137:[2,12]},{1:[2,13],6:[2,13],25:[2,13],26:[2,13],49:[2,13],54:[2,13],57:[2,13],62:103,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],73:[2,13],74:[1,101],78:[2,13],81:102,84:[1,94],85:[2,108],86:[2,13],91:[2,13],93:[2,13],102:[2,13],104:[2,13],105:[2,13],106:[2,13],110:[2,13],118:[2,13],126:[2,13],128:[2,13],129:[2,13],132:[2,13],133:[2,13],134:[2,13],135:[2,13],136:[2,13],137:[2,13]},{1:[2,14],6:[2,14],25:[2,14],26:[2,14],49:[2,14],54:[2,14],57:[2,14],73:[2,14],78:[2,14],86:[2,14],91:[2,14],93:[2,14],102:[2,14],104:[2,14],105:[2,14],106:[2,14],110:[2,14],118:[2,14],126:[2,14],128:[2,14],129:[2,14],132:[2,14],133:[2,14],134:[2,14],135:[2,14],136:[2,14],137:[2,14]},{1:[2,15],6:[2,15],25:[2,15],26:[2,15],49:[2,15],54:[2,15],57:[2,15],73:[2,15],78:[2,15],86:[2,15],91:[2,15],93:[2,15],102:[2,15],104:[2,15],105:[2,15],106:[2,15],110:[2,15],118:[2,15],126:[2,15],128:[2,15],129:[2,15],132:[2,15],133:[2,15],134:[2,15],135:[2,15],136:[2,15],137:[2,15]},{1:[2,16],6:[2,16],25:[2,16],26:[2,16],49:[2,16],54:[2,16],57:[2,16],73:[2,16],78:[2,16],86:[2,16],91:[2,16],93:[2,16],102:[2,16],104:[2,16],105:[2,16],106:[2,16],110:[2,16],118:[2,16],126:[2,16],128:[2,16],129:[2,16],132:[2,16],133:[2,16],134:[2,16],135:[2,16],136:[2,16],137:[2,16]},{1:[2,17],6:[2,17],25:[2,17],26:[2,17],49:[2,17],54:[2,17],57:[2,17],73:[2,17],78:[2,17],86:[2,17],91:[2,17],93:[2,17],102:[2,17],104:[2,17],105:[2,17],106:[2,17],110:[2,17],118:[2,17],126:[2,17],128:[2,17],129:[2,17],132:[2,17],133:[2,17],134:[2,17],135:[2,17],136:[2,17],137:[2,17]},{1:[2,18],6:[2,18],25:[2,18],26:[2,18],49:[2,18],54:[2,18],57:[2,18],73:[2,18],78:[2,18],86:[2,18],91:[2,18],93:[2,18],102:[2,18],104:[2,18],105:[2,18],106:[2,18],110:[2,18],118:[2,18],126:[2,18],128:[2,18],129:[2,18],132:[2,18],133:[2,18],134:[2,18],135:[2,18],136:[2,18],137:[2,18]},{1:[2,19],6:[2,19],25:[2,19],26:[2,19],49:[2,19],54:[2,19],57:[2,19],73:[2,19],78:[2,19],86:[2,19],91:[2,19],93:[2,19],102:[2,19],104:[2,19],105:[2,19],106:[2,19],110:[2,19],118:[2,19],126:[2,19],128:[2,19],129:[2,19],132:[2,19],133:[2,19],134:[2,19],135:[2,19],136:[2,19],137:[2,19]},{1:[2,20],6:[2,20],25:[2,20],26:[2,20],49:[2,20],54:[2,20],57:[2,20],73:[2,20],78:[2,20],86:[2,20],91:[2,20],93:[2,20],102:[2,20],104:[2,20],105:[2,20],106:[2,20],110:[2,20],118:[2,20],126:[2,20],128:[2,20],129:[2,20],132:[2,20],133:[2,20],134:[2,20],135:[2,20],136:[2,20],137:[2,20]},{1:[2,21],6:[2,21],25:[2,21],26:[2,21],49:[2,21],54:[2,21],57:[2,21],73:[2,21],78:[2,21],86:[2,21],91:[2,21],93:[2,21],102:[2,21],104:[2,21],105:[2,21],106:[2,21],110:[2,21],118:[2,21],126:[2,21],128:[2,21],129:[2,21],132:[2,21],133:[2,21],134:[2,21],135:[2,21],136:[2,21],137:[2,21]},{1:[2,22],6:[2,22],25:[2,22],26:[2,22],49:[2,22],54:[2,22],57:[2,22],73:[2,22],78:[2,22],86:[2,22],91:[2,22],93:[2,22],102:[2,22],104:[2,22],105:[2,22],106:[2,22],110:[2,22],118:[2,22],126:[2,22],128:[2,22],129:[2,22],132:[2,22],133:[2,22],134:[2,22],135:[2,22],136:[2,22],137:[2,22]},{1:[2,23],6:[2,23],25:[2,23],26:[2,23],49:[2,23],54:[2,23],57:[2,23],73:[2,23],78:[2,23],86:[2,23],91:[2,23],93:[2,23],102:[2,23],104:[2,23],105:[2,23],106:[2,23],110:[2,23],118:[2,23],126:[2,23],128:[2,23],129:[2,23],132:[2,23],133:[2,23],134:[2,23],135:[2,23],136:[2,23],137:[2,23]},{1:[2,9],6:[2,9],26:[2,9],102:[2,9],104:[2,9],106:[2,9],110:[2,9],126:[2,9]},{1:[2,10],6:[2,10],26:[2,10],102:[2,10],104:[2,10],106:[2,10],110:[2,10],126:[2,10]},{1:[2,11],6:[2,11],26:[2,11],102:[2,11],104:[2,11],106:[2,11],110:[2,11],126:[2,11]},{1:[2,75],6:[2,75],25:[2,75],26:[2,75],40:[1,104],49:[2,75],54:[2,75],57:[2,75],66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],73:[2,75],74:[2,75],78:[2,75],84:[2,75],85:[2,75],86:[2,75],91:[2,75],93:[2,75],102:[2,75],104:[2,75],105:[2,75],106:[2,75],110:[2,75],118:[2,75],126:[2,75],128:[2,75],129:[2,75],132:[2,75],133:[2,75],134:[2,75],135:[2,75],136:[2,75],137:[2,75]},{1:[2,76],6:[2,76],25:[2,76],26:[2,76],49:[2,76],54:[2,76],57:[2,76],66:[2,76],67:[2,76],68:[2,76],69:[2,76],71:[2,76],73:[2,76],74:[2,76],78:[2,76],84:[2,76],85:[2,76],86:[2,76],91:[2,76],93:[2,76],102:[2,76],104:[2,76],105:[2,76],106:[2,76],110:[2,76],118:[2,76],126:[2,76],128:[2,76],129:[2,76],132:[2,76],133:[2,76],134:[2,76],135:[2,76],136:[2,76],137:[2,76]},{1:[2,77],6:[2,77],25:[2,77],26:[2,77],49:[2,77],54:[2,77],57:[2,77],66:[2,77],67:[2,77],68:[2,77],69:[2,77],71:[2,77],73:[2,77],74:[2,77],78:[2,77],84:[2,77],85:[2,77],86:[2,77],91:[2,77],93:[2,77],102:[2,77],104:[2,77],105:[2,77],106:[2,77],110:[2,77],118:[2,77],126:[2,77],128:[2,77],129:[2,77],132:[2,77],133:[2,77],134:[2,77],135:[2,77],136:[2,77],137:[2,77]},{1:[2,78],6:[2,78],25:[2,78],26:[2,78],49:[2,78],54:[2,78],57:[2,78],66:[2,78],67:[2,78],68:[2,78],69:[2,78],71:[2,78],73:[2,78],74:[2,78],78:[2,78],84:[2,78],85:[2,78],86:[2,78],91:[2,78],93:[2,78],102:[2,78],104:[2,78],105:[2,78],106:[2,78],110:[2,78],118:[2,78],126:[2,78],128:[2,78],129:[2,78],132:[2,78],133:[2,78],134:[2,78],135:[2,78],136:[2,78],137:[2,78]},{1:[2,79],6:[2,79],25:[2,79],26:[2,79],49:[2,79],54:[2,79],57:[2,79],66:[2,79],67:[2,79],68:[2,79],69:[2,79],71:[2,79],73:[2,79],74:[2,79],78:[2,79],84:[2,79],85:[2,79],86:[2,79],91:[2,79],93:[2,79],102:[2,79],104:[2,79],105:[2,79],106:[2,79],110:[2,79],118:[2,79],126:[2,79],128:[2,79],129:[2,79],132:[2,79],133:[2,79],134:[2,79],135:[2,79],136:[2,79],137:[2,79]},{1:[2,106],6:[2,106],25:[2,106],26:[2,106],49:[2,106],54:[2,106],57:[2,106],66:[2,106],67:[2,106],68:[2,106],69:[2,106],71:[2,106],73:[2,106],74:[2,106],78:[2,106],82:105,84:[2,106],85:[1,106],86:[2,106],91:[2,106],93:[2,106],102:[2,106],104:[2,106],105:[2,106],106:[2,106],110:[2,106],118:[2,106],126:[2,106],128:[2,106],129:[2,106],132:[2,106],133:[2,106],134:[2,106],135:[2,106],136:[2,106],137:[2,106]},{6:[2,55],25:[2,55],27:110,28:[1,73],44:111,48:107,49:[2,55],54:[2,55],55:108,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{5:116,25:[1,5]},{8:117,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:119,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:120,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{13:122,14:123,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,58:47,59:48,61:121,63:25,64:26,65:27,76:[1,70],83:[1,28],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{13:122,14:123,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,58:47,59:48,61:125,63:25,64:26,65:27,76:[1,70],83:[1,28],88:[1,58],89:[1,59],90:[1,57],101:[1,56]},{1:[2,72],6:[2,72],25:[2,72],26:[2,72],40:[2,72],49:[2,72],54:[2,72],57:[2,72],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,72],74:[2,72],78:[2,72],80:[1,129],84:[2,72],85:[2,72],86:[2,72],91:[2,72],93:[2,72],102:[2,72],104:[2,72],105:[2,72],106:[2,72],110:[2,72],118:[2,72],126:[2,72],128:[2,72],129:[2,72],130:[1,126],131:[1,127],132:[2,72],133:[2,72],134:[2,72],135:[2,72],136:[2,72],137:[2,72],138:[1,128]},{1:[2,183],6:[2,183],25:[2,183],26:[2,183],49:[2,183],54:[2,183],57:[2,183],73:[2,183],78:[2,183],86:[2,183],91:[2,183],93:[2,183],102:[2,183],104:[2,183],105:[2,183],106:[2,183],110:[2,183],118:[2,183],121:[1,130],126:[2,183],128:[2,183],129:[2,183],132:[2,183],133:[2,183],134:[2,183],135:[2,183],136:[2,183],137:[2,183]},{5:131,25:[1,5]},{5:132,25:[1,5]},{1:[2,150],6:[2,150],25:[2,150],26:[2,150],49:[2,150],54:[2,150],57:[2,150],73:[2,150],78:[2,150],86:[2,150],91:[2,150],93:[2,150],102:[2,150],104:[2,150],105:[2,150],106:[2,150],110:[2,150],118:[2,150],126:[2,150],128:[2,150],129:[2,150],132:[2,150],133:[2,150],134:[2,150],135:[2,150],136:[2,150],137:[2,150]},{5:133,25:[1,5]},{8:134,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,135],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,96],5:136,6:[2,96],13:122,14:123,25:[1,5],26:[2,96],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:124,44:63,49:[2,96],54:[2,96],57:[2,96],58:47,59:48,61:138,63:25,64:26,65:27,73:[2,96],76:[1,70],78:[2,96],80:[1,137],83:[1,28],86:[2,96],88:[1,58],89:[1,59],90:[1,57],91:[2,96],93:[2,96],101:[1,56],102:[2,96],104:[2,96],105:[2,96],106:[2,96],110:[2,96],118:[2,96],126:[2,96],128:[2,96],129:[2,96],132:[2,96],133:[2,96],134:[2,96],135:[2,96],136:[2,96],137:[2,96]},{8:139,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,47],6:[2,47],8:140,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,47],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],102:[2,47],103:39,104:[2,47],106:[2,47],107:40,108:[1,67],109:41,110:[2,47],111:69,119:[1,42],124:37,125:[1,64],126:[2,47],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,48],6:[2,48],25:[2,48],26:[2,48],54:[2,48],78:[2,48],102:[2,48],104:[2,48],106:[2,48],110:[2,48],126:[2,48]},{1:[2,73],6:[2,73],25:[2,73],26:[2,73],40:[2,73],49:[2,73],54:[2,73],57:[2,73],66:[2,73],67:[2,73],68:[2,73],69:[2,73],71:[2,73],73:[2,73],74:[2,73],78:[2,73],84:[2,73],85:[2,73],86:[2,73],91:[2,73],93:[2,73],102:[2,73],104:[2,73],105:[2,73],106:[2,73],110:[2,73],118:[2,73],126:[2,73],128:[2,73],129:[2,73],132:[2,73],133:[2,73],134:[2,73],135:[2,73],136:[2,73],137:[2,73]},{1:[2,74],6:[2,74],25:[2,74],26:[2,74],40:[2,74],49:[2,74],54:[2,74],57:[2,74],66:[2,74],67:[2,74],68:[2,74],69:[2,74],71:[2,74],73:[2,74],74:[2,74],78:[2,74],84:[2,74],85:[2,74],86:[2,74],91:[2,74],93:[2,74],102:[2,74],104:[2,74],105:[2,74],106:[2,74],110:[2,74],118:[2,74],126:[2,74],128:[2,74],129:[2,74],132:[2,74],133:[2,74],134:[2,74],135:[2,74],136:[2,74],137:[2,74]},{1:[2,29],6:[2,29],25:[2,29],26:[2,29],49:[2,29],54:[2,29],57:[2,29],66:[2,29],67:[2,29],68:[2,29],69:[2,29],71:[2,29],73:[2,29],74:[2,29],78:[2,29],84:[2,29],85:[2,29],86:[2,29],91:[2,29],93:[2,29],102:[2,29],104:[2,29],105:[2,29],106:[2,29],110:[2,29],118:[2,29],126:[2,29],128:[2,29],129:[2,29],132:[2,29],133:[2,29],134:[2,29],135:[2,29],136:[2,29],137:[2,29]},{1:[2,30],6:[2,30],25:[2,30],26:[2,30],49:[2,30],54:[2,30],57:[2,30],66:[2,30],67:[2,30],68:[2,30],69:[2,30],71:[2,30],73:[2,30],74:[2,30],78:[2,30],84:[2,30],85:[2,30],86:[2,30],91:[2,30],93:[2,30],102:[2,30],104:[2,30],105:[2,30],106:[2,30],110:[2,30],118:[2,30],126:[2,30],128:[2,30],129:[2,30],132:[2,30],133:[2,30],134:[2,30],135:[2,30],136:[2,30],137:[2,30]},{1:[2,31],6:[2,31],25:[2,31],26:[2,31],49:[2,31],54:[2,31],57:[2,31],66:[2,31],67:[2,31],68:[2,31],69:[2,31],71:[2,31],73:[2,31],74:[2,31],78:[2,31],84:[2,31],85:[2,31],86:[2,31],91:[2,31],93:[2,31],102:[2,31],104:[2,31],105:[2,31],106:[2,31],110:[2,31],118:[2,31],126:[2,31],128:[2,31],129:[2,31],132:[2,31],133:[2,31],134:[2,31],135:[2,31],136:[2,31],137:[2,31]},{1:[2,32],6:[2,32],25:[2,32],26:[2,32],49:[2,32],54:[2,32],57:[2,32],66:[2,32],67:[2,32],68:[2,32],69:[2,32],71:[2,32],73:[2,32],74:[2,32],78:[2,32],84:[2,32],85:[2,32],86:[2,32],91:[2,32],93:[2,32],102:[2,32],104:[2,32],105:[2,32],106:[2,32],110:[2,32],118:[2,32],126:[2,32],128:[2,32],129:[2,32],132:[2,32],133:[2,32],134:[2,32],135:[2,32],136:[2,32],137:[2,32]},{1:[2,33],6:[2,33],25:[2,33],26:[2,33],49:[2,33],54:[2,33],57:[2,33],66:[2,33],67:[2,33],68:[2,33],69:[2,33],71:[2,33],73:[2,33],74:[2,33],78:[2,33],84:[2,33],85:[2,33],86:[2,33],91:[2,33],93:[2,33],102:[2,33],104:[2,33],105:[2,33],106:[2,33],110:[2,33],118:[2,33],126:[2,33],128:[2,33],129:[2,33],132:[2,33],133:[2,33],134:[2,33],135:[2,33],136:[2,33],137:[2,33]},{1:[2,34],6:[2,34],25:[2,34],26:[2,34],49:[2,34],54:[2,34],57:[2,34],66:[2,34],67:[2,34],68:[2,34],69:[2,34],71:[2,34],73:[2,34],74:[2,34],78:[2,34],84:[2,34],85:[2,34],86:[2,34],91:[2,34],93:[2,34],102:[2,34],104:[2,34],105:[2,34],106:[2,34],110:[2,34],118:[2,34],126:[2,34],128:[2,34],129:[2,34],132:[2,34],133:[2,34],134:[2,34],135:[2,34],136:[2,34],137:[2,34]},{1:[2,35],6:[2,35],25:[2,35],26:[2,35],49:[2,35],54:[2,35],57:[2,35],66:[2,35],67:[2,35],68:[2,35],69:[2,35],71:[2,35],73:[2,35],74:[2,35],78:[2,35],84:[2,35],85:[2,35],86:[2,35],91:[2,35],93:[2,35],102:[2,35],104:[2,35],105:[2,35],106:[2,35],110:[2,35],118:[2,35],126:[2,35],128:[2,35],129:[2,35],132:[2,35],133:[2,35],134:[2,35],135:[2,35],136:[2,35],137:[2,35]},{4:141,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,142],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:143,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:145,88:[1,58],89:[1,59],90:[1,57],91:[1,144],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,112],6:[2,112],25:[2,112],26:[2,112],49:[2,112],54:[2,112],57:[2,112],66:[2,112],67:[2,112],68:[2,112],69:[2,112],71:[2,112],73:[2,112],74:[2,112],78:[2,112],84:[2,112],85:[2,112],86:[2,112],91:[2,112],93:[2,112],102:[2,112],104:[2,112],105:[2,112],106:[2,112],110:[2,112],118:[2,112],126:[2,112],128:[2,112],129:[2,112],132:[2,112],133:[2,112],134:[2,112],135:[2,112],136:[2,112],137:[2,112]},{1:[2,113],6:[2,113],25:[2,113],26:[2,113],27:149,28:[1,73],49:[2,113],54:[2,113],57:[2,113],66:[2,113],67:[2,113],68:[2,113],69:[2,113],71:[2,113],73:[2,113],74:[2,113],78:[2,113],84:[2,113],85:[2,113],86:[2,113],91:[2,113],93:[2,113],102:[2,113],104:[2,113],105:[2,113],106:[2,113],110:[2,113],118:[2,113],126:[2,113],128:[2,113],129:[2,113],132:[2,113],133:[2,113],134:[2,113],135:[2,113],136:[2,113],137:[2,113]},{25:[2,51]},{25:[2,52]},{1:[2,68],6:[2,68],25:[2,68],26:[2,68],40:[2,68],49:[2,68],54:[2,68],57:[2,68],66:[2,68],67:[2,68],68:[2,68],69:[2,68],71:[2,68],73:[2,68],74:[2,68],78:[2,68],80:[2,68],84:[2,68],85:[2,68],86:[2,68],91:[2,68],93:[2,68],102:[2,68],104:[2,68],105:[2,68],106:[2,68],110:[2,68],118:[2,68],126:[2,68],128:[2,68],129:[2,68],130:[2,68],131:[2,68],132:[2,68],133:[2,68],134:[2,68],135:[2,68],136:[2,68],137:[2,68],138:[2,68]},{1:[2,71],6:[2,71],25:[2,71],26:[2,71],40:[2,71],49:[2,71],54:[2,71],57:[2,71],66:[2,71],67:[2,71],68:[2,71],69:[2,71],71:[2,71],73:[2,71],74:[2,71],78:[2,71],80:[2,71],84:[2,71],85:[2,71],86:[2,71],91:[2,71],93:[2,71],102:[2,71],104:[2,71],105:[2,71],106:[2,71],110:[2,71],118:[2,71],126:[2,71],128:[2,71],129:[2,71],130:[2,71],131:[2,71],132:[2,71],133:[2,71],134:[2,71],135:[2,71],136:[2,71],137:[2,71],138:[2,71]},{8:150,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:151,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:152,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{5:153,8:154,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,5],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{27:159,28:[1,73],44:160,58:161,59:162,64:155,76:[1,70],89:[1,114],90:[1,57],113:156,114:[1,157],115:158},{112:163,116:[1,164],117:[1,165]},{6:[2,91],11:169,25:[2,91],27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:167,42:168,44:172,46:[1,46],54:[2,91],77:166,78:[2,91],89:[1,114]},{1:[2,27],6:[2,27],25:[2,27],26:[2,27],43:[2,27],49:[2,27],54:[2,27],57:[2,27],66:[2,27],67:[2,27],68:[2,27],69:[2,27],71:[2,27],73:[2,27],74:[2,27],78:[2,27],84:[2,27],85:[2,27],86:[2,27],91:[2,27],93:[2,27],102:[2,27],104:[2,27],105:[2,27],106:[2,27],110:[2,27],118:[2,27],126:[2,27],128:[2,27],129:[2,27],132:[2,27],133:[2,27],134:[2,27],135:[2,27],136:[2,27],137:[2,27]},{1:[2,28],6:[2,28],25:[2,28],26:[2,28],43:[2,28],49:[2,28],54:[2,28],57:[2,28],66:[2,28],67:[2,28],68:[2,28],69:[2,28],71:[2,28],73:[2,28],74:[2,28],78:[2,28],84:[2,28],85:[2,28],86:[2,28],91:[2,28],93:[2,28],102:[2,28],104:[2,28],105:[2,28],106:[2,28],110:[2,28],118:[2,28],126:[2,28],128:[2,28],129:[2,28],132:[2,28],133:[2,28],134:[2,28],135:[2,28],136:[2,28],137:[2,28]},{1:[2,26],6:[2,26],25:[2,26],26:[2,26],40:[2,26],43:[2,26],49:[2,26],54:[2,26],57:[2,26],66:[2,26],67:[2,26],68:[2,26],69:[2,26],71:[2,26],73:[2,26],74:[2,26],78:[2,26],80:[2,26],84:[2,26],85:[2,26],86:[2,26],91:[2,26],93:[2,26],102:[2,26],104:[2,26],105:[2,26],106:[2,26],110:[2,26],116:[2,26],117:[2,26],118:[2,26],126:[2,26],128:[2,26],129:[2,26],130:[2,26],131:[2,26],132:[2,26],133:[2,26],134:[2,26],135:[2,26],136:[2,26],137:[2,26],138:[2,26]},{1:[2,6],6:[2,6],7:173,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,26:[2,6],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],102:[2,6],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,3]},{1:[2,24],6:[2,24],25:[2,24],26:[2,24],49:[2,24],54:[2,24],57:[2,24],73:[2,24],78:[2,24],86:[2,24],91:[2,24],93:[2,24],98:[2,24],99:[2,24],102:[2,24],104:[2,24],105:[2,24],106:[2,24],110:[2,24],118:[2,24],121:[2,24],123:[2,24],126:[2,24],128:[2,24],129:[2,24],132:[2,24],133:[2,24],134:[2,24],135:[2,24],136:[2,24],137:[2,24]},{6:[1,74],26:[1,174]},{1:[2,194],6:[2,194],25:[2,194],26:[2,194],49:[2,194],54:[2,194],57:[2,194],73:[2,194],78:[2,194],86:[2,194],91:[2,194],93:[2,194],102:[2,194],104:[2,194],105:[2,194],106:[2,194],110:[2,194],118:[2,194],126:[2,194],128:[2,194],129:[2,194],132:[2,194],133:[2,194],134:[2,194],135:[2,194],136:[2,194],137:[2,194]},{8:175,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:176,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:177,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:178,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:179,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:180,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:181,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:182,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,149],6:[2,149],25:[2,149],26:[2,149],49:[2,149],54:[2,149],57:[2,149],73:[2,149],78:[2,149],86:[2,149],91:[2,149],93:[2,149],102:[2,149],104:[2,149],105:[2,149],106:[2,149],110:[2,149],118:[2,149],126:[2,149],128:[2,149],129:[2,149],132:[2,149],133:[2,149],134:[2,149],135:[2,149],136:[2,149],137:[2,149]},{1:[2,154],6:[2,154],25:[2,154],26:[2,154],49:[2,154],54:[2,154],57:[2,154],73:[2,154],78:[2,154],86:[2,154],91:[2,154],93:[2,154],102:[2,154],104:[2,154],105:[2,154],106:[2,154],110:[2,154],118:[2,154],126:[2,154],128:[2,154],129:[2,154],132:[2,154],133:[2,154],134:[2,154],135:[2,154],136:[2,154],137:[2,154]},{8:183,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,148],6:[2,148],25:[2,148],26:[2,148],49:[2,148],54:[2,148],57:[2,148],73:[2,148],78:[2,148],86:[2,148],91:[2,148],93:[2,148],102:[2,148],104:[2,148],105:[2,148],106:[2,148],110:[2,148],118:[2,148],126:[2,148],128:[2,148],129:[2,148],132:[2,148],133:[2,148],134:[2,148],135:[2,148],136:[2,148],137:[2,148]},{1:[2,153],6:[2,153],25:[2,153],26:[2,153],49:[2,153],54:[2,153],57:[2,153],73:[2,153],78:[2,153],86:[2,153],91:[2,153],93:[2,153],102:[2,153],104:[2,153],105:[2,153],106:[2,153],110:[2,153],118:[2,153],126:[2,153],128:[2,153],129:[2,153],132:[2,153],133:[2,153],134:[2,153],135:[2,153],136:[2,153],137:[2,153]},{82:184,85:[1,106]},{1:[2,69],6:[2,69],25:[2,69],26:[2,69],40:[2,69],49:[2,69],54:[2,69],57:[2,69],66:[2,69],67:[2,69],68:[2,69],69:[2,69],71:[2,69],73:[2,69],74:[2,69],78:[2,69],80:[2,69],84:[2,69],85:[2,69],86:[2,69],91:[2,69],93:[2,69],102:[2,69],104:[2,69],105:[2,69],106:[2,69],110:[2,69],118:[2,69],126:[2,69],128:[2,69],129:[2,69],130:[2,69],131:[2,69],132:[2,69],133:[2,69],134:[2,69],135:[2,69],136:[2,69],137:[2,69],138:[2,69]},{85:[2,109]},{27:185,28:[1,73]},{27:186,28:[1,73]},{1:[2,84],6:[2,84],25:[2,84],26:[2,84],27:187,28:[1,73],40:[2,84],49:[2,84],54:[2,84],57:[2,84],66:[2,84],67:[2,84],68:[2,84],69:[2,84],71:[2,84],73:[2,84],74:[2,84],78:[2,84],80:[2,84],84:[2,84],85:[2,84],86:[2,84],91:[2,84],93:[2,84],102:[2,84],104:[2,84],105:[2,84],106:[2,84],110:[2,84],118:[2,84],126:[2,84],128:[2,84],129:[2,84],130:[2,84],131:[2,84],132:[2,84],133:[2,84],134:[2,84],135:[2,84],136:[2,84],137:[2,84],138:[2,84]},{27:188,28:[1,73]},{1:[2,85],6:[2,85],25:[2,85],26:[2,85],40:[2,85],49:[2,85],54:[2,85],57:[2,85],66:[2,85],67:[2,85],68:[2,85],69:[2,85],71:[2,85],73:[2,85],74:[2,85],78:[2,85],80:[2,85],84:[2,85],85:[2,85],86:[2,85],91:[2,85],93:[2,85],102:[2,85],104:[2,85],105:[2,85],106:[2,85],110:[2,85],118:[2,85],126:[2,85],128:[2,85],129:[2,85],130:[2,85],131:[2,85],132:[2,85],133:[2,85],134:[2,85],135:[2,85],136:[2,85],137:[2,85],138:[2,85]},{8:190,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],57:[1,194],58:47,59:48,61:36,63:25,64:26,65:27,72:189,75:191,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],92:192,93:[1,193],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{70:195,71:[1,100],74:[1,101]},{82:196,85:[1,106]},{1:[2,70],6:[2,70],25:[2,70],26:[2,70],40:[2,70],49:[2,70],54:[2,70],57:[2,70],66:[2,70],67:[2,70],68:[2,70],69:[2,70],71:[2,70],73:[2,70],74:[2,70],78:[2,70],80:[2,70],84:[2,70],85:[2,70],86:[2,70],91:[2,70],93:[2,70],102:[2,70],104:[2,70],105:[2,70],106:[2,70],110:[2,70],118:[2,70],126:[2,70],128:[2,70],129:[2,70],130:[2,70],131:[2,70],132:[2,70],133:[2,70],134:[2,70],135:[2,70],136:[2,70],137:[2,70],138:[2,70]},{6:[1,198],8:197,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,199],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,107],6:[2,107],25:[2,107],26:[2,107],49:[2,107],54:[2,107],57:[2,107],66:[2,107],67:[2,107],68:[2,107],69:[2,107],71:[2,107],73:[2,107],74:[2,107],78:[2,107],84:[2,107],85:[2,107],86:[2,107],91:[2,107],93:[2,107],102:[2,107],104:[2,107],105:[2,107],106:[2,107],110:[2,107],118:[2,107],126:[2,107],128:[2,107],129:[2,107],132:[2,107],133:[2,107],134:[2,107],135:[2,107],136:[2,107],137:[2,107]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],86:[1,200],87:201,88:[1,58],89:[1,59],90:[1,57],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,53],25:[2,53],49:[1,203],53:205,54:[1,204]},{6:[2,56],25:[2,56],26:[2,56],49:[2,56],54:[2,56]},{6:[2,60],25:[2,60],26:[2,60],40:[1,207],49:[2,60],54:[2,60],57:[1,206]},{6:[2,63],25:[2,63],26:[2,63],40:[2,63],49:[2,63],54:[2,63],57:[2,63]},{6:[2,64],25:[2,64],26:[2,64],40:[2,64],49:[2,64],54:[2,64],57:[2,64]},{6:[2,65],25:[2,65],26:[2,65],40:[2,65],49:[2,65],54:[2,65],57:[2,65]},{6:[2,66],25:[2,66],26:[2,66],40:[2,66],49:[2,66],54:[2,66],57:[2,66]},{27:149,28:[1,73]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:145,88:[1,58],89:[1,59],90:[1,57],91:[1,144],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,50],6:[2,50],25:[2,50],26:[2,50],49:[2,50],54:[2,50],57:[2,50],73:[2,50],78:[2,50],86:[2,50],91:[2,50],93:[2,50],102:[2,50],104:[2,50],105:[2,50],106:[2,50],110:[2,50],118:[2,50],126:[2,50],128:[2,50],129:[2,50],132:[2,50],133:[2,50],134:[2,50],135:[2,50],136:[2,50],137:[2,50]},{1:[2,187],6:[2,187],25:[2,187],26:[2,187],49:[2,187],54:[2,187],57:[2,187],73:[2,187],78:[2,187],86:[2,187],91:[2,187],93:[2,187],102:[2,187],103:87,104:[2,187],105:[2,187],106:[2,187],109:88,110:[2,187],111:69,118:[2,187],126:[2,187],128:[2,187],129:[2,187],132:[1,78],133:[2,187],134:[2,187],135:[2,187],136:[2,187],137:[2,187]},{103:90,104:[1,65],106:[1,66],109:91,110:[1,68],111:69,126:[1,89]},{1:[2,188],6:[2,188],25:[2,188],26:[2,188],49:[2,188],54:[2,188],57:[2,188],73:[2,188],78:[2,188],86:[2,188],91:[2,188],93:[2,188],102:[2,188],103:87,104:[2,188],105:[2,188],106:[2,188],109:88,110:[2,188],111:69,118:[2,188],126:[2,188],128:[2,188],129:[2,188],132:[1,78],133:[2,188],134:[2,188],135:[2,188],136:[2,188],137:[2,188]},{1:[2,189],6:[2,189],25:[2,189],26:[2,189],49:[2,189],54:[2,189],57:[2,189],73:[2,189],78:[2,189],86:[2,189],91:[2,189],93:[2,189],102:[2,189],103:87,104:[2,189],105:[2,189],106:[2,189],109:88,110:[2,189],111:69,118:[2,189],126:[2,189],128:[2,189],129:[2,189],132:[1,78],133:[2,189],134:[2,189],135:[2,189],136:[2,189],137:[2,189]},{1:[2,190],6:[2,190],25:[2,190],26:[2,190],49:[2,190],54:[2,190],57:[2,190],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,190],74:[2,72],78:[2,190],84:[2,72],85:[2,72],86:[2,190],91:[2,190],93:[2,190],102:[2,190],104:[2,190],105:[2,190],106:[2,190],110:[2,190],118:[2,190],126:[2,190],128:[2,190],129:[2,190],132:[2,190],133:[2,190],134:[2,190],135:[2,190],136:[2,190],137:[2,190]},{62:93,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],74:[1,101],81:92,84:[1,94],85:[2,108]},{62:103,66:[1,95],67:[1,96],68:[1,97],69:[1,98],70:99,71:[1,100],74:[1,101],81:102,84:[1,94],85:[2,108]},{66:[2,75],67:[2,75],68:[2,75],69:[2,75],71:[2,75],74:[2,75],84:[2,75],85:[2,75]},{1:[2,191],6:[2,191],25:[2,191],26:[2,191],49:[2,191],54:[2,191],57:[2,191],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,191],74:[2,72],78:[2,191],84:[2,72],85:[2,72],86:[2,191],91:[2,191],93:[2,191],102:[2,191],104:[2,191],105:[2,191],106:[2,191],110:[2,191],118:[2,191],126:[2,191],128:[2,191],129:[2,191],132:[2,191],133:[2,191],134:[2,191],135:[2,191],136:[2,191],137:[2,191]},{1:[2,192],6:[2,192],25:[2,192],26:[2,192],49:[2,192],54:[2,192],57:[2,192],73:[2,192],78:[2,192],86:[2,192],91:[2,192],93:[2,192],102:[2,192],104:[2,192],105:[2,192],106:[2,192],110:[2,192],118:[2,192],126:[2,192],128:[2,192],129:[2,192],132:[2,192],133:[2,192],134:[2,192],135:[2,192],136:[2,192],137:[2,192]},{1:[2,193],6:[2,193],25:[2,193],26:[2,193],49:[2,193],54:[2,193],57:[2,193],73:[2,193],78:[2,193],86:[2,193],91:[2,193],93:[2,193],102:[2,193],104:[2,193],105:[2,193],106:[2,193],110:[2,193],118:[2,193],126:[2,193],128:[2,193],129:[2,193],132:[2,193],133:[2,193],134:[2,193],135:[2,193],136:[2,193],137:[2,193]},{6:[1,210],8:208,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,209],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:211,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{5:212,25:[1,5],125:[1,213]},{1:[2,133],6:[2,133],25:[2,133],26:[2,133],49:[2,133],54:[2,133],57:[2,133],73:[2,133],78:[2,133],86:[2,133],91:[2,133],93:[2,133],97:214,98:[1,215],99:[1,216],102:[2,133],104:[2,133],105:[2,133],106:[2,133],110:[2,133],118:[2,133],126:[2,133],128:[2,133],129:[2,133],132:[2,133],133:[2,133],134:[2,133],135:[2,133],136:[2,133],137:[2,133]},{1:[2,147],6:[2,147],25:[2,147],26:[2,147],49:[2,147],54:[2,147],57:[2,147],73:[2,147],78:[2,147],86:[2,147],91:[2,147],93:[2,147],102:[2,147],104:[2,147],105:[2,147],106:[2,147],110:[2,147],118:[2,147],126:[2,147],128:[2,147],129:[2,147],132:[2,147],133:[2,147],134:[2,147],135:[2,147],136:[2,147],137:[2,147]},{1:[2,155],6:[2,155],25:[2,155],26:[2,155],49:[2,155],54:[2,155],57:[2,155],73:[2,155],78:[2,155],86:[2,155],91:[2,155],93:[2,155],102:[2,155],104:[2,155],105:[2,155],106:[2,155],110:[2,155],118:[2,155],126:[2,155],128:[2,155],129:[2,155],132:[2,155],133:[2,155],134:[2,155],135:[2,155],136:[2,155],137:[2,155]},{25:[1,217],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{120:218,122:219,123:[1,220]},{1:[2,97],6:[2,97],25:[2,97],26:[2,97],49:[2,97],54:[2,97],57:[2,97],73:[2,97],78:[2,97],86:[2,97],91:[2,97],93:[2,97],102:[2,97],104:[2,97],105:[2,97],106:[2,97],110:[2,97],118:[2,97],126:[2,97],128:[2,97],129:[2,97],132:[2,97],133:[2,97],134:[2,97],135:[2,97],136:[2,97],137:[2,97]},{8:221,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,100],5:222,6:[2,100],25:[1,5],26:[2,100],49:[2,100],54:[2,100],57:[2,100],66:[2,72],67:[2,72],68:[2,72],69:[2,72],71:[2,72],73:[2,100],74:[2,72],78:[2,100],80:[1,223],84:[2,72],85:[2,72],86:[2,100],91:[2,100],93:[2,100],102:[2,100],104:[2,100],105:[2,100],106:[2,100],110:[2,100],118:[2,100],126:[2,100],128:[2,100],129:[2,100],132:[2,100],133:[2,100],134:[2,100],135:[2,100],136:[2,100],137:[2,100]},{1:[2,140],6:[2,140],25:[2,140],26:[2,140],49:[2,140],54:[2,140],57:[2,140],73:[2,140],78:[2,140],86:[2,140],91:[2,140],93:[2,140],102:[2,140],103:87,104:[2,140],105:[2,140],106:[2,140],109:88,110:[2,140],111:69,118:[2,140],126:[2,140],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,46],6:[2,46],26:[2,46],102:[2,46],103:87,104:[2,46],106:[2,46],109:88,110:[2,46],111:69,126:[2,46],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,74],102:[1,224]},{4:225,7:4,8:6,9:7,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,129],25:[2,129],54:[2,129],57:[1,227],91:[2,129],92:226,93:[1,193],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,115],6:[2,115],25:[2,115],26:[2,115],40:[2,115],49:[2,115],54:[2,115],57:[2,115],66:[2,115],67:[2,115],68:[2,115],69:[2,115],71:[2,115],73:[2,115],74:[2,115],78:[2,115],84:[2,115],85:[2,115],86:[2,115],91:[2,115],93:[2,115],102:[2,115],104:[2,115],105:[2,115],106:[2,115],110:[2,115],116:[2,115],117:[2,115],118:[2,115],126:[2,115],128:[2,115],129:[2,115],132:[2,115],133:[2,115],134:[2,115],135:[2,115],136:[2,115],137:[2,115]},{6:[2,53],25:[2,53],53:228,54:[1,229],91:[2,53]},{6:[2,124],25:[2,124],26:[2,124],54:[2,124],86:[2,124],91:[2,124]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:230,88:[1,58],89:[1,59],90:[1,57],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,130],25:[2,130],26:[2,130],54:[2,130],86:[2,130],91:[2,130]},{1:[2,114],6:[2,114],25:[2,114],26:[2,114],40:[2,114],43:[2,114],49:[2,114],54:[2,114],57:[2,114],66:[2,114],67:[2,114],68:[2,114],69:[2,114],71:[2,114],73:[2,114],74:[2,114],78:[2,114],80:[2,114],84:[2,114],85:[2,114],86:[2,114],91:[2,114],93:[2,114],102:[2,114],104:[2,114],105:[2,114],106:[2,114],110:[2,114],116:[2,114],117:[2,114],118:[2,114],126:[2,114],128:[2,114],129:[2,114],130:[2,114],131:[2,114],132:[2,114],133:[2,114],134:[2,114],135:[2,114],136:[2,114],137:[2,114],138:[2,114]},{5:231,25:[1,5],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,143],6:[2,143],25:[2,143],26:[2,143],49:[2,143],54:[2,143],57:[2,143],73:[2,143],78:[2,143],86:[2,143],91:[2,143],93:[2,143],102:[2,143],103:87,104:[1,65],105:[1,232],106:[1,66],109:88,110:[1,68],111:69,118:[2,143],126:[2,143],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,145],6:[2,145],25:[2,145],26:[2,145],49:[2,145],54:[2,145],57:[2,145],73:[2,145],78:[2,145],86:[2,145],91:[2,145],93:[2,145],102:[2,145],103:87,104:[1,65],105:[1,233],106:[1,66],109:88,110:[1,68],111:69,118:[2,145],126:[2,145],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,151],6:[2,151],25:[2,151],26:[2,151],49:[2,151],54:[2,151],57:[2,151],73:[2,151],78:[2,151],86:[2,151],91:[2,151],93:[2,151],102:[2,151],104:[2,151],105:[2,151],106:[2,151],110:[2,151],118:[2,151],126:[2,151],128:[2,151],129:[2,151],132:[2,151],133:[2,151],134:[2,151],135:[2,151],136:[2,151],137:[2,151]},{1:[2,152],6:[2,152],25:[2,152],26:[2,152],49:[2,152],54:[2,152],57:[2,152],73:[2,152],78:[2,152],86:[2,152],91:[2,152],93:[2,152],102:[2,152],103:87,104:[1,65],105:[2,152],106:[1,66],109:88,110:[1,68],111:69,118:[2,152],126:[2,152],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,156],6:[2,156],25:[2,156],26:[2,156],49:[2,156],54:[2,156],57:[2,156],73:[2,156],78:[2,156],86:[2,156],91:[2,156],93:[2,156],102:[2,156],104:[2,156],105:[2,156],106:[2,156],110:[2,156],118:[2,156],126:[2,156],128:[2,156],129:[2,156],132:[2,156],133:[2,156],134:[2,156],135:[2,156],136:[2,156],137:[2,156]},{116:[2,158],117:[2,158]},{27:159,28:[1,73],44:160,58:161,59:162,76:[1,70],89:[1,114],90:[1,115],113:234,115:158},{54:[1,235],116:[2,164],117:[2,164]},{54:[2,160],116:[2,160],117:[2,160]},{54:[2,161],116:[2,161],117:[2,161]},{54:[2,162],116:[2,162],117:[2,162]},{54:[2,163],116:[2,163],117:[2,163]},{1:[2,157],6:[2,157],25:[2,157],26:[2,157],49:[2,157],54:[2,157],57:[2,157],73:[2,157],78:[2,157],86:[2,157],91:[2,157],93:[2,157],102:[2,157],104:[2,157],105:[2,157],106:[2,157],110:[2,157],118:[2,157],126:[2,157],128:[2,157],129:[2,157],132:[2,157],133:[2,157],134:[2,157],135:[2,157],136:[2,157],137:[2,157]},{8:236,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:237,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,53],25:[2,53],53:238,54:[1,239],78:[2,53]},{6:[2,92],25:[2,92],26:[2,92],54:[2,92],78:[2,92]},{6:[2,39],25:[2,39],26:[2,39],43:[1,240],54:[2,39],78:[2,39]},{6:[2,42],25:[2,42],26:[2,42],54:[2,42],78:[2,42]},{6:[2,43],25:[2,43],26:[2,43],43:[2,43],54:[2,43],78:[2,43]},{6:[2,44],25:[2,44],26:[2,44],43:[2,44],54:[2,44],78:[2,44]},{6:[2,45],25:[2,45],26:[2,45],43:[2,45],54:[2,45],78:[2,45]},{1:[2,5],6:[2,5],26:[2,5],102:[2,5]},{1:[2,25],6:[2,25],25:[2,25],26:[2,25],49:[2,25],54:[2,25],57:[2,25],73:[2,25],78:[2,25],86:[2,25],91:[2,25],93:[2,25],98:[2,25],99:[2,25],102:[2,25],104:[2,25],105:[2,25],106:[2,25],110:[2,25],118:[2,25],121:[2,25],123:[2,25],126:[2,25],128:[2,25],129:[2,25],132:[2,25],133:[2,25],134:[2,25],135:[2,25],136:[2,25],137:[2,25]},{1:[2,195],6:[2,195],25:[2,195],26:[2,195],49:[2,195],54:[2,195],57:[2,195],73:[2,195],78:[2,195],86:[2,195],91:[2,195],93:[2,195],102:[2,195],103:87,104:[2,195],105:[2,195],106:[2,195],109:88,110:[2,195],111:69,118:[2,195],126:[2,195],128:[2,195],129:[2,195],132:[1,78],133:[1,81],134:[2,195],135:[2,195],136:[2,195],137:[2,195]},{1:[2,196],6:[2,196],25:[2,196],26:[2,196],49:[2,196],54:[2,196],57:[2,196],73:[2,196],78:[2,196],86:[2,196],91:[2,196],93:[2,196],102:[2,196],103:87,104:[2,196],105:[2,196],106:[2,196],109:88,110:[2,196],111:69,118:[2,196],126:[2,196],128:[2,196],129:[2,196],132:[1,78],133:[1,81],134:[2,196],135:[2,196],136:[2,196],137:[2,196]},{1:[2,197],6:[2,197],25:[2,197],26:[2,197],49:[2,197],54:[2,197],57:[2,197],73:[2,197],78:[2,197],86:[2,197],91:[2,197],93:[2,197],102:[2,197],103:87,104:[2,197],105:[2,197],106:[2,197],109:88,110:[2,197],111:69,118:[2,197],126:[2,197],128:[2,197],129:[2,197],132:[1,78],133:[2,197],134:[2,197],135:[2,197],136:[2,197],137:[2,197]},{1:[2,198],6:[2,198],25:[2,198],26:[2,198],49:[2,198],54:[2,198],57:[2,198],73:[2,198],78:[2,198],86:[2,198],91:[2,198],93:[2,198],102:[2,198],103:87,104:[2,198],105:[2,198],106:[2,198],109:88,110:[2,198],111:69,118:[2,198],126:[2,198],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[2,198],135:[2,198],136:[2,198],137:[2,198]},{1:[2,199],6:[2,199],25:[2,199],26:[2,199],49:[2,199],54:[2,199],57:[2,199],73:[2,199],78:[2,199],86:[2,199],91:[2,199],93:[2,199],102:[2,199],103:87,104:[2,199],105:[2,199],106:[2,199],109:88,110:[2,199],111:69,118:[2,199],126:[2,199],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[2,199],136:[2,199],137:[1,85]},{1:[2,200],6:[2,200],25:[2,200],26:[2,200],49:[2,200],54:[2,200],57:[2,200],73:[2,200],78:[2,200],86:[2,200],91:[2,200],93:[2,200],102:[2,200],103:87,104:[2,200],105:[2,200],106:[2,200],109:88,110:[2,200],111:69,118:[2,200],126:[2,200],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[2,200],137:[1,85]},{1:[2,201],6:[2,201],25:[2,201],26:[2,201],49:[2,201],54:[2,201],57:[2,201],73:[2,201],78:[2,201],86:[2,201],91:[2,201],93:[2,201],102:[2,201],103:87,104:[2,201],105:[2,201],106:[2,201],109:88,110:[2,201],111:69,118:[2,201],126:[2,201],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[2,201],136:[2,201],137:[2,201]},{1:[2,186],6:[2,186],25:[2,186],26:[2,186],49:[2,186],54:[2,186],57:[2,186],73:[2,186],78:[2,186],86:[2,186],91:[2,186],93:[2,186],102:[2,186],103:87,104:[1,65],105:[2,186],106:[1,66],109:88,110:[1,68],111:69,118:[2,186],126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,185],6:[2,185],25:[2,185],26:[2,185],49:[2,185],54:[2,185],57:[2,185],73:[2,185],78:[2,185],86:[2,185],91:[2,185],93:[2,185],102:[2,185],103:87,104:[1,65],105:[2,185],106:[1,66],109:88,110:[1,68],111:69,118:[2,185],126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,104],6:[2,104],25:[2,104],26:[2,104],49:[2,104],54:[2,104],57:[2,104],66:[2,104],67:[2,104],68:[2,104],69:[2,104],71:[2,104],73:[2,104],74:[2,104],78:[2,104],84:[2,104],85:[2,104],86:[2,104],91:[2,104],93:[2,104],102:[2,104],104:[2,104],105:[2,104],106:[2,104],110:[2,104],118:[2,104],126:[2,104],128:[2,104],129:[2,104],132:[2,104],133:[2,104],134:[2,104],135:[2,104],136:[2,104],137:[2,104]},{1:[2,80],6:[2,80],25:[2,80],26:[2,80],40:[2,80],49:[2,80],54:[2,80],57:[2,80],66:[2,80],67:[2,80],68:[2,80],69:[2,80],71:[2,80],73:[2,80],74:[2,80],78:[2,80],80:[2,80],84:[2,80],85:[2,80],86:[2,80],91:[2,80],93:[2,80],102:[2,80],104:[2,80],105:[2,80],106:[2,80],110:[2,80],118:[2,80],126:[2,80],128:[2,80],129:[2,80],130:[2,80],131:[2,80],132:[2,80],133:[2,80],134:[2,80],135:[2,80],136:[2,80],137:[2,80],138:[2,80]},{1:[2,81],6:[2,81],25:[2,81],26:[2,81],40:[2,81],49:[2,81],54:[2,81],57:[2,81],66:[2,81],67:[2,81],68:[2,81],69:[2,81],71:[2,81],73:[2,81],74:[2,81],78:[2,81],80:[2,81],84:[2,81],85:[2,81],86:[2,81],91:[2,81],93:[2,81],102:[2,81],104:[2,81],105:[2,81],106:[2,81],110:[2,81],118:[2,81],126:[2,81],128:[2,81],129:[2,81],130:[2,81],131:[2,81],132:[2,81],133:[2,81],134:[2,81],135:[2,81],136:[2,81],137:[2,81],138:[2,81]},{1:[2,82],6:[2,82],25:[2,82],26:[2,82],40:[2,82],49:[2,82],54:[2,82],57:[2,82],66:[2,82],67:[2,82],68:[2,82],69:[2,82],71:[2,82],73:[2,82],74:[2,82],78:[2,82],80:[2,82],84:[2,82],85:[2,82],86:[2,82],91:[2,82],93:[2,82],102:[2,82],104:[2,82],105:[2,82],106:[2,82],110:[2,82],118:[2,82],126:[2,82],128:[2,82],129:[2,82],130:[2,82],131:[2,82],132:[2,82],133:[2,82],134:[2,82],135:[2,82],136:[2,82],137:[2,82],138:[2,82]},{1:[2,83],6:[2,83],25:[2,83],26:[2,83],40:[2,83],49:[2,83],54:[2,83],57:[2,83],66:[2,83],67:[2,83],68:[2,83],69:[2,83],71:[2,83],73:[2,83],74:[2,83],78:[2,83],80:[2,83],84:[2,83],85:[2,83],86:[2,83],91:[2,83],93:[2,83],102:[2,83],104:[2,83],105:[2,83],106:[2,83],110:[2,83],118:[2,83],126:[2,83],128:[2,83],129:[2,83],130:[2,83],131:[2,83],132:[2,83],133:[2,83],134:[2,83],135:[2,83],136:[2,83],137:[2,83],138:[2,83]},{73:[1,241]},{57:[1,194],73:[2,88],92:242,93:[1,193],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{73:[2,89]},{8:243,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,73:[2,123],76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{12:[2,117],28:[2,117],30:[2,117],31:[2,117],33:[2,117],34:[2,117],35:[2,117],36:[2,117],37:[2,117],38:[2,117],45:[2,117],46:[2,117],47:[2,117],51:[2,117],52:[2,117],73:[2,117],76:[2,117],79:[2,117],83:[2,117],88:[2,117],89:[2,117],90:[2,117],96:[2,117],100:[2,117],101:[2,117],104:[2,117],106:[2,117],108:[2,117],110:[2,117],119:[2,117],125:[2,117],127:[2,117],128:[2,117],129:[2,117],130:[2,117],131:[2,117]},{12:[2,118],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],73:[2,118],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118]},{1:[2,87],6:[2,87],25:[2,87],26:[2,87],40:[2,87],49:[2,87],54:[2,87],57:[2,87],66:[2,87],67:[2,87],68:[2,87],69:[2,87],71:[2,87],73:[2,87],74:[2,87],78:[2,87],80:[2,87],84:[2,87],85:[2,87],86:[2,87],91:[2,87],93:[2,87],102:[2,87],104:[2,87],105:[2,87],106:[2,87],110:[2,87],118:[2,87],126:[2,87],128:[2,87],129:[2,87],130:[2,87],131:[2,87],132:[2,87],133:[2,87],134:[2,87],135:[2,87],136:[2,87],137:[2,87],138:[2,87]},{1:[2,105],6:[2,105],25:[2,105],26:[2,105],49:[2,105],54:[2,105],57:[2,105],66:[2,105],67:[2,105],68:[2,105],69:[2,105],71:[2,105],73:[2,105],74:[2,105],78:[2,105],84:[2,105],85:[2,105],86:[2,105],91:[2,105],93:[2,105],102:[2,105],104:[2,105],105:[2,105],106:[2,105],110:[2,105],118:[2,105],126:[2,105],128:[2,105],129:[2,105],132:[2,105],133:[2,105],134:[2,105],135:[2,105],136:[2,105],137:[2,105]},{1:[2,36],6:[2,36],25:[2,36],26:[2,36],49:[2,36],54:[2,36],57:[2,36],73:[2,36],78:[2,36],86:[2,36],91:[2,36],93:[2,36],102:[2,36],103:87,104:[2,36],105:[2,36],106:[2,36],109:88,110:[2,36],111:69,118:[2,36],126:[2,36],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{8:244,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:245,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,110],6:[2,110],25:[2,110],26:[2,110],49:[2,110],54:[2,110],57:[2,110],66:[2,110],67:[2,110],68:[2,110],69:[2,110],71:[2,110],73:[2,110],74:[2,110],78:[2,110],84:[2,110],85:[2,110],86:[2,110],91:[2,110],93:[2,110],102:[2,110],104:[2,110],105:[2,110],106:[2,110],110:[2,110],118:[2,110],126:[2,110],128:[2,110],129:[2,110],132:[2,110],133:[2,110],134:[2,110],135:[2,110],136:[2,110],137:[2,110]},{6:[2,53],25:[2,53],53:246,54:[1,229],86:[2,53]},{6:[2,129],25:[2,129],26:[2,129],54:[2,129],57:[1,247],86:[2,129],91:[2,129],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{50:248,51:[1,60],52:[1,61]},{6:[2,54],25:[2,54],26:[2,54],27:110,28:[1,73],44:111,55:249,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{6:[1,250],25:[1,251]},{6:[2,61],25:[2,61],26:[2,61],49:[2,61],54:[2,61]},{8:252,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,202],6:[2,202],25:[2,202],26:[2,202],49:[2,202],54:[2,202],57:[2,202],73:[2,202],78:[2,202],86:[2,202],91:[2,202],93:[2,202],102:[2,202],103:87,104:[2,202],105:[2,202],106:[2,202],109:88,110:[2,202],111:69,118:[2,202],126:[2,202],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{8:253,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:254,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,205],6:[2,205],25:[2,205],26:[2,205],49:[2,205],54:[2,205],57:[2,205],73:[2,205],78:[2,205],86:[2,205],91:[2,205],93:[2,205],102:[2,205],103:87,104:[2,205],105:[2,205],106:[2,205],109:88,110:[2,205],111:69,118:[2,205],126:[2,205],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,184],6:[2,184],25:[2,184],26:[2,184],49:[2,184],54:[2,184],57:[2,184],73:[2,184],78:[2,184],86:[2,184],91:[2,184],93:[2,184],102:[2,184],104:[2,184],105:[2,184],106:[2,184],110:[2,184],118:[2,184],126:[2,184],128:[2,184],129:[2,184],132:[2,184],133:[2,184],134:[2,184],135:[2,184],136:[2,184],137:[2,184]},{8:255,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,134],6:[2,134],25:[2,134],26:[2,134],49:[2,134],54:[2,134],57:[2,134],73:[2,134],78:[2,134],86:[2,134],91:[2,134],93:[2,134],98:[1,256],102:[2,134],104:[2,134],105:[2,134],106:[2,134],110:[2,134],118:[2,134],126:[2,134],128:[2,134],129:[2,134],132:[2,134],133:[2,134],134:[2,134],135:[2,134],136:[2,134],137:[2,134]},{5:257,25:[1,5]},{5:260,25:[1,5],27:258,28:[1,73],59:259,76:[1,70]},{120:261,122:219,123:[1,220]},{26:[1,262],121:[1,263],122:264,123:[1,220]},{26:[2,177],121:[2,177],123:[2,177]},{8:266,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],95:265,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,98],5:267,6:[2,98],25:[1,5],26:[2,98],49:[2,98],54:[2,98],57:[2,98],73:[2,98],78:[2,98],86:[2,98],91:[2,98],93:[2,98],102:[2,98],103:87,104:[1,65],105:[2,98],106:[1,66],109:88,110:[1,68],111:69,118:[2,98],126:[2,98],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,101],6:[2,101],25:[2,101],26:[2,101],49:[2,101],54:[2,101],57:[2,101],73:[2,101],78:[2,101],86:[2,101],91:[2,101],93:[2,101],102:[2,101],104:[2,101],105:[2,101],106:[2,101],110:[2,101],118:[2,101],126:[2,101],128:[2,101],129:[2,101],132:[2,101],133:[2,101],134:[2,101],135:[2,101],136:[2,101],137:[2,101]},{8:268,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,141],6:[2,141],25:[2,141],26:[2,141],49:[2,141],54:[2,141],57:[2,141],66:[2,141],67:[2,141],68:[2,141],69:[2,141],71:[2,141],73:[2,141],74:[2,141],78:[2,141],84:[2,141],85:[2,141],86:[2,141],91:[2,141],93:[2,141],102:[2,141],104:[2,141],105:[2,141],106:[2,141],110:[2,141],118:[2,141],126:[2,141],128:[2,141],129:[2,141],132:[2,141],133:[2,141],134:[2,141],135:[2,141],136:[2,141],137:[2,141]},{6:[1,74],26:[1,269]},{8:270,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,67],12:[2,118],25:[2,67],28:[2,118],30:[2,118],31:[2,118],33:[2,118],34:[2,118],35:[2,118],36:[2,118],37:[2,118],38:[2,118],45:[2,118],46:[2,118],47:[2,118],51:[2,118],52:[2,118],54:[2,67],76:[2,118],79:[2,118],83:[2,118],88:[2,118],89:[2,118],90:[2,118],91:[2,67],96:[2,118],100:[2,118],101:[2,118],104:[2,118],106:[2,118],108:[2,118],110:[2,118],119:[2,118],125:[2,118],127:[2,118],128:[2,118],129:[2,118],130:[2,118],131:[2,118]},{6:[1,272],25:[1,273],91:[1,271]},{6:[2,54],8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[2,54],26:[2,54],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],86:[2,54],88:[1,58],89:[1,59],90:[1,57],91:[2,54],94:274,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,53],25:[2,53],26:[2,53],53:275,54:[1,229]},{1:[2,181],6:[2,181],25:[2,181],26:[2,181],49:[2,181],54:[2,181],57:[2,181],73:[2,181],78:[2,181],86:[2,181],91:[2,181],93:[2,181],102:[2,181],104:[2,181],105:[2,181],106:[2,181],110:[2,181],118:[2,181],121:[2,181],126:[2,181],128:[2,181],129:[2,181],132:[2,181],133:[2,181],134:[2,181],135:[2,181],136:[2,181],137:[2,181]},{8:276,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:277,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{116:[2,159],117:[2,159]},{27:159,28:[1,73],44:160,58:161,59:162,76:[1,70],89:[1,114],90:[1,115],115:278},{1:[2,166],6:[2,166],25:[2,166],26:[2,166],49:[2,166],54:[2,166],57:[2,166],73:[2,166],78:[2,166],86:[2,166],91:[2,166],93:[2,166],102:[2,166],103:87,104:[2,166],105:[1,279],106:[2,166],109:88,110:[2,166],111:69,118:[1,280],126:[2,166],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,167],6:[2,167],25:[2,167],26:[2,167],49:[2,167],54:[2,167],57:[2,167],73:[2,167],78:[2,167],86:[2,167],91:[2,167],93:[2,167],102:[2,167],103:87,104:[2,167],105:[1,281],106:[2,167],109:88,110:[2,167],111:69,118:[2,167],126:[2,167],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,283],25:[1,284],78:[1,282]},{6:[2,54],11:169,25:[2,54],26:[2,54],27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:285,42:168,44:172,46:[1,46],78:[2,54],89:[1,114]},{8:286,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,287],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,86],6:[2,86],25:[2,86],26:[2,86],40:[2,86],49:[2,86],54:[2,86],57:[2,86],66:[2,86],67:[2,86],68:[2,86],69:[2,86],71:[2,86],73:[2,86],74:[2,86],78:[2,86],80:[2,86],84:[2,86],85:[2,86],86:[2,86],91:[2,86],93:[2,86],102:[2,86],104:[2,86],105:[2,86],106:[2,86],110:[2,86],118:[2,86],126:[2,86],128:[2,86],129:[2,86],130:[2,86],131:[2,86],132:[2,86],133:[2,86],134:[2,86],135:[2,86],136:[2,86],137:[2,86],138:[2,86]},{8:288,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,73:[2,121],76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{73:[2,122],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,37],6:[2,37],25:[2,37],26:[2,37],49:[2,37],54:[2,37],57:[2,37],73:[2,37],78:[2,37],86:[2,37],91:[2,37],93:[2,37],102:[2,37],103:87,104:[2,37],105:[2,37],106:[2,37],109:88,110:[2,37],111:69,118:[2,37],126:[2,37],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{26:[1,289],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,272],25:[1,273],86:[1,290]},{6:[2,67],25:[2,67],26:[2,67],54:[2,67],86:[2,67],91:[2,67]},{5:291,25:[1,5]},{6:[2,57],25:[2,57],26:[2,57],49:[2,57],54:[2,57]},{27:110,28:[1,73],44:111,55:292,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{6:[2,55],25:[2,55],26:[2,55],27:110,28:[1,73],44:111,48:293,54:[2,55],55:108,56:109,58:112,59:113,76:[1,70],89:[1,114],90:[1,115]},{6:[2,62],25:[2,62],26:[2,62],49:[2,62],54:[2,62],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{26:[1,294],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,204],6:[2,204],25:[2,204],26:[2,204],49:[2,204],54:[2,204],57:[2,204],73:[2,204],78:[2,204],86:[2,204],91:[2,204],93:[2,204],102:[2,204],103:87,104:[2,204],105:[2,204],106:[2,204],109:88,110:[2,204],111:69,118:[2,204],126:[2,204],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{5:295,25:[1,5],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{5:296,25:[1,5]},{1:[2,135],6:[2,135],25:[2,135],26:[2,135],49:[2,135],54:[2,135],57:[2,135],73:[2,135],78:[2,135],86:[2,135],91:[2,135],93:[2,135],102:[2,135],104:[2,135],105:[2,135],106:[2,135],110:[2,135],118:[2,135],126:[2,135],128:[2,135],129:[2,135],132:[2,135],133:[2,135],134:[2,135],135:[2,135],136:[2,135],137:[2,135]},{5:297,25:[1,5]},{5:298,25:[1,5]},{1:[2,139],6:[2,139],25:[2,139],26:[2,139],49:[2,139],54:[2,139],57:[2,139],73:[2,139],78:[2,139],86:[2,139],91:[2,139],93:[2,139],98:[2,139],102:[2,139],104:[2,139],105:[2,139],106:[2,139],110:[2,139],118:[2,139],126:[2,139],128:[2,139],129:[2,139],132:[2,139],133:[2,139],134:[2,139],135:[2,139],136:[2,139],137:[2,139]},{26:[1,299],121:[1,300],122:264,123:[1,220]},{1:[2,175],6:[2,175],25:[2,175],26:[2,175],49:[2,175],54:[2,175],57:[2,175],73:[2,175],78:[2,175],86:[2,175],91:[2,175],93:[2,175],102:[2,175],104:[2,175],105:[2,175],106:[2,175],110:[2,175],118:[2,175],126:[2,175],128:[2,175],129:[2,175],132:[2,175],133:[2,175],134:[2,175],135:[2,175],136:[2,175],137:[2,175]},{5:301,25:[1,5]},{26:[2,178],121:[2,178],123:[2,178]},{5:302,25:[1,5],54:[1,303]},{25:[2,131],54:[2,131],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,99],6:[2,99],25:[2,99],26:[2,99],49:[2,99],54:[2,99],57:[2,99],73:[2,99],78:[2,99],86:[2,99],91:[2,99],93:[2,99],102:[2,99],104:[2,99],105:[2,99],106:[2,99],110:[2,99],118:[2,99],126:[2,99],128:[2,99],129:[2,99],132:[2,99],133:[2,99],134:[2,99],135:[2,99],136:[2,99],137:[2,99]},{1:[2,102],5:304,6:[2,102],25:[1,5],26:[2,102],49:[2,102],54:[2,102],57:[2,102],73:[2,102],78:[2,102],86:[2,102],91:[2,102],93:[2,102],102:[2,102],103:87,104:[1,65],105:[2,102],106:[1,66],109:88,110:[1,68],111:69,118:[2,102],126:[2,102],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{102:[1,305]},{91:[1,306],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,116],6:[2,116],25:[2,116],26:[2,116],40:[2,116],49:[2,116],54:[2,116],57:[2,116],66:[2,116],67:[2,116],68:[2,116],69:[2,116],71:[2,116],73:[2,116],74:[2,116],78:[2,116],84:[2,116],85:[2,116],86:[2,116],91:[2,116],93:[2,116],102:[2,116],104:[2,116],105:[2,116],106:[2,116],110:[2,116],116:[2,116],117:[2,116],118:[2,116],126:[2,116],128:[2,116],129:[2,116],132:[2,116],133:[2,116],134:[2,116],135:[2,116],136:[2,116],137:[2,116]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],94:307,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:202,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,25:[1,147],27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,60:148,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],87:308,88:[1,58],89:[1,59],90:[1,57],94:146,96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[2,125],25:[2,125],26:[2,125],54:[2,125],86:[2,125],91:[2,125]},{6:[1,272],25:[1,273],26:[1,309]},{1:[2,144],6:[2,144],25:[2,144],26:[2,144],49:[2,144],54:[2,144],57:[2,144],73:[2,144],78:[2,144],86:[2,144],91:[2,144],93:[2,144],102:[2,144],103:87,104:[1,65],105:[2,144],106:[1,66],109:88,110:[1,68],111:69,118:[2,144],126:[2,144],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,146],6:[2,146],25:[2,146],26:[2,146],49:[2,146],54:[2,146],57:[2,146],73:[2,146],78:[2,146],86:[2,146],91:[2,146],93:[2,146],102:[2,146],103:87,104:[1,65],105:[2,146],106:[1,66],109:88,110:[1,68],111:69,118:[2,146],126:[2,146],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{116:[2,165],117:[2,165]},{8:310,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:311,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:312,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,90],6:[2,90],25:[2,90],26:[2,90],40:[2,90],49:[2,90],54:[2,90],57:[2,90],66:[2,90],67:[2,90],68:[2,90],69:[2,90],71:[2,90],73:[2,90],74:[2,90],78:[2,90],84:[2,90],85:[2,90],86:[2,90],91:[2,90],93:[2,90],102:[2,90],104:[2,90],105:[2,90],106:[2,90],110:[2,90],116:[2,90],117:[2,90],118:[2,90],126:[2,90],128:[2,90],129:[2,90],132:[2,90],133:[2,90],134:[2,90],135:[2,90],136:[2,90],137:[2,90]},{11:169,27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:313,42:168,44:172,46:[1,46],89:[1,114]},{6:[2,91],11:169,25:[2,91],26:[2,91],27:170,28:[1,73],29:171,30:[1,71],31:[1,72],41:167,42:168,44:172,46:[1,46],54:[2,91],77:314,89:[1,114]},{6:[2,93],25:[2,93],26:[2,93],54:[2,93],78:[2,93]},{6:[2,40],25:[2,40],26:[2,40],54:[2,40],78:[2,40],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{8:315,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{73:[2,120],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,38],6:[2,38],25:[2,38],26:[2,38],49:[2,38],54:[2,38],57:[2,38],73:[2,38],78:[2,38],86:[2,38],91:[2,38],93:[2,38],102:[2,38],104:[2,38],105:[2,38],106:[2,38],110:[2,38],118:[2,38],126:[2,38],128:[2,38],129:[2,38],132:[2,38],133:[2,38],134:[2,38],135:[2,38],136:[2,38],137:[2,38]},{1:[2,111],6:[2,111],25:[2,111],26:[2,111],49:[2,111],54:[2,111],57:[2,111],66:[2,111],67:[2,111],68:[2,111],69:[2,111],71:[2,111],73:[2,111],74:[2,111],78:[2,111],84:[2,111],85:[2,111],86:[2,111],91:[2,111],93:[2,111],102:[2,111],104:[2,111],105:[2,111],106:[2,111],110:[2,111],118:[2,111],126:[2,111],128:[2,111],129:[2,111],132:[2,111],133:[2,111],134:[2,111],135:[2,111],136:[2,111],137:[2,111]},{1:[2,49],6:[2,49],25:[2,49],26:[2,49],49:[2,49],54:[2,49],57:[2,49],73:[2,49],78:[2,49],86:[2,49],91:[2,49],93:[2,49],102:[2,49],104:[2,49],105:[2,49],106:[2,49],110:[2,49],118:[2,49],126:[2,49],128:[2,49],129:[2,49],132:[2,49],133:[2,49],134:[2,49],135:[2,49],136:[2,49],137:[2,49]},{6:[2,58],25:[2,58],26:[2,58],49:[2,58],54:[2,58]},{6:[2,53],25:[2,53],26:[2,53],53:316,54:[1,204]},{1:[2,203],6:[2,203],25:[2,203],26:[2,203],49:[2,203],54:[2,203],57:[2,203],73:[2,203],78:[2,203],86:[2,203],91:[2,203],93:[2,203],102:[2,203],104:[2,203],105:[2,203],106:[2,203],110:[2,203],118:[2,203],126:[2,203],128:[2,203],129:[2,203],132:[2,203],133:[2,203],134:[2,203],135:[2,203],136:[2,203],137:[2,203]},{1:[2,182],6:[2,182],25:[2,182],26:[2,182],49:[2,182],54:[2,182],57:[2,182],73:[2,182],78:[2,182],86:[2,182],91:[2,182],93:[2,182],102:[2,182],104:[2,182],105:[2,182],106:[2,182],110:[2,182],118:[2,182],121:[2,182],126:[2,182],128:[2,182],129:[2,182],132:[2,182],133:[2,182],134:[2,182],135:[2,182],136:[2,182],137:[2,182]},{1:[2,136],6:[2,136],25:[2,136],26:[2,136],49:[2,136],54:[2,136],57:[2,136],73:[2,136],78:[2,136],86:[2,136],91:[2,136],93:[2,136],102:[2,136],104:[2,136],105:[2,136],106:[2,136],110:[2,136],118:[2,136],126:[2,136],128:[2,136],129:[2,136],132:[2,136],133:[2,136],134:[2,136],135:[2,136],136:[2,136],137:[2,136]},{1:[2,137],6:[2,137],25:[2,137],26:[2,137],49:[2,137],54:[2,137],57:[2,137],73:[2,137],78:[2,137],86:[2,137],91:[2,137],93:[2,137],98:[2,137],102:[2,137],104:[2,137],105:[2,137],106:[2,137],110:[2,137],118:[2,137],126:[2,137],128:[2,137],129:[2,137],132:[2,137],133:[2,137],134:[2,137],135:[2,137],136:[2,137],137:[2,137]},{1:[2,138],6:[2,138],25:[2,138],26:[2,138],49:[2,138],54:[2,138],57:[2,138],73:[2,138],78:[2,138],86:[2,138],91:[2,138],93:[2,138],98:[2,138],102:[2,138],104:[2,138],105:[2,138],106:[2,138],110:[2,138],118:[2,138],126:[2,138],128:[2,138],129:[2,138],132:[2,138],133:[2,138],134:[2,138],135:[2,138],136:[2,138],137:[2,138]},{1:[2,173],6:[2,173],25:[2,173],26:[2,173],49:[2,173],54:[2,173],57:[2,173],73:[2,173],78:[2,173],86:[2,173],91:[2,173],93:[2,173],102:[2,173],104:[2,173],105:[2,173],106:[2,173],110:[2,173],118:[2,173],126:[2,173],128:[2,173],129:[2,173],132:[2,173],133:[2,173],134:[2,173],135:[2,173],136:[2,173],137:[2,173]},{5:317,25:[1,5]},{26:[1,318]},{6:[1,319],26:[2,179],121:[2,179],123:[2,179]},{8:320,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{1:[2,103],6:[2,103],25:[2,103],26:[2,103],49:[2,103],54:[2,103],57:[2,103],73:[2,103],78:[2,103],86:[2,103],91:[2,103],93:[2,103],102:[2,103],104:[2,103],105:[2,103],106:[2,103],110:[2,103],118:[2,103],126:[2,103],128:[2,103],129:[2,103],132:[2,103],133:[2,103],134:[2,103],135:[2,103],136:[2,103],137:[2,103]},{1:[2,142],6:[2,142],25:[2,142],26:[2,142],49:[2,142],54:[2,142],57:[2,142],66:[2,142],67:[2,142],68:[2,142],69:[2,142],71:[2,142],73:[2,142],74:[2,142],78:[2,142],84:[2,142],85:[2,142],86:[2,142],91:[2,142],93:[2,142],102:[2,142],104:[2,142],105:[2,142],106:[2,142],110:[2,142],118:[2,142],126:[2,142],128:[2,142],129:[2,142],132:[2,142],133:[2,142],134:[2,142],135:[2,142],136:[2,142],137:[2,142]},{1:[2,119],6:[2,119],25:[2,119],26:[2,119],49:[2,119],54:[2,119],57:[2,119],66:[2,119],67:[2,119],68:[2,119],69:[2,119],71:[2,119],73:[2,119],74:[2,119],78:[2,119],84:[2,119],85:[2,119],86:[2,119],91:[2,119],93:[2,119],102:[2,119],104:[2,119],105:[2,119],106:[2,119],110:[2,119],118:[2,119],126:[2,119],128:[2,119],129:[2,119],132:[2,119],133:[2,119],134:[2,119],135:[2,119],136:[2,119],137:[2,119]},{6:[2,126],25:[2,126],26:[2,126],54:[2,126],86:[2,126],91:[2,126]},{6:[2,53],25:[2,53],26:[2,53],53:321,54:[1,229]},{6:[2,127],25:[2,127],26:[2,127],54:[2,127],86:[2,127],91:[2,127]},{1:[2,168],6:[2,168],25:[2,168],26:[2,168],49:[2,168],54:[2,168],57:[2,168],73:[2,168],78:[2,168],86:[2,168],91:[2,168],93:[2,168],102:[2,168],103:87,104:[2,168],105:[2,168],106:[2,168],109:88,110:[2,168],111:69,118:[1,322],126:[2,168],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,170],6:[2,170],25:[2,170],26:[2,170],49:[2,170],54:[2,170],57:[2,170],73:[2,170],78:[2,170],86:[2,170],91:[2,170],93:[2,170],102:[2,170],103:87,104:[2,170],105:[1,323],106:[2,170],109:88,110:[2,170],111:69,118:[2,170],126:[2,170],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,169],6:[2,169],25:[2,169],26:[2,169],49:[2,169],54:[2,169],57:[2,169],73:[2,169],78:[2,169],86:[2,169],91:[2,169],93:[2,169],102:[2,169],103:87,104:[2,169],105:[2,169],106:[2,169],109:88,110:[2,169],111:69,118:[2,169],126:[2,169],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[2,94],25:[2,94],26:[2,94],54:[2,94],78:[2,94]},{6:[2,53],25:[2,53],26:[2,53],53:324,54:[1,239]},{26:[1,325],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,250],25:[1,251],26:[1,326]},{26:[1,327]},{1:[2,176],6:[2,176],25:[2,176],26:[2,176],49:[2,176],54:[2,176],57:[2,176],73:[2,176],78:[2,176],86:[2,176],91:[2,176],93:[2,176],102:[2,176],104:[2,176],105:[2,176],106:[2,176],110:[2,176],118:[2,176],126:[2,176],128:[2,176],129:[2,176],132:[2,176],133:[2,176],134:[2,176],135:[2,176],136:[2,176],137:[2,176]},{26:[2,180],121:[2,180],123:[2,180]},{25:[2,132],54:[2,132],103:87,104:[1,65],106:[1,66],109:88,110:[1,68],111:69,126:[1,86],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[1,272],25:[1,273],26:[1,328]},{8:329,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{8:330,9:118,10:20,11:21,12:[1,22],13:8,14:9,15:10,16:11,17:12,18:13,19:14,20:15,21:16,22:17,23:18,24:19,27:62,28:[1,73],29:49,30:[1,71],31:[1,72],32:24,33:[1,50],34:[1,51],35:[1,52],36:[1,53],37:[1,54],38:[1,55],39:23,44:63,45:[1,45],46:[1,46],47:[1,29],50:30,51:[1,60],52:[1,61],58:47,59:48,61:36,63:25,64:26,65:27,76:[1,70],79:[1,43],83:[1,28],88:[1,58],89:[1,59],90:[1,57],96:[1,38],100:[1,44],101:[1,56],103:39,104:[1,65],106:[1,66],107:40,108:[1,67],109:41,110:[1,68],111:69,119:[1,42],124:37,125:[1,64],127:[1,31],128:[1,32],129:[1,33],130:[1,34],131:[1,35]},{6:[1,283],25:[1,284],26:[1,331]},{6:[2,41],25:[2,41],26:[2,41],54:[2,41],78:[2,41]},{6:[2,59],25:[2,59],26:[2,59],49:[2,59],54:[2,59]},{1:[2,174],6:[2,174],25:[2,174],26:[2,174],49:[2,174],54:[2,174],57:[2,174],73:[2,174],78:[2,174],86:[2,174],91:[2,174],93:[2,174],102:[2,174],104:[2,174],105:[2,174],106:[2,174],110:[2,174],118:[2,174],126:[2,174],128:[2,174],129:[2,174],132:[2,174],133:[2,174],134:[2,174],135:[2,174],136:[2,174],137:[2,174]},{6:[2,128],25:[2,128],26:[2,128],54:[2,128],86:[2,128],91:[2,128]},{1:[2,171],6:[2,171],25:[2,171],26:[2,171],49:[2,171],54:[2,171],57:[2,171],73:[2,171],78:[2,171],86:[2,171],91:[2,171],93:[2,171],102:[2,171],103:87,104:[2,171],105:[2,171],106:[2,171],109:88,110:[2,171],111:69,118:[2,171],126:[2,171],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{1:[2,172],6:[2,172],25:[2,172],26:[2,172],49:[2,172],54:[2,172],57:[2,172],73:[2,172],78:[2,172],86:[2,172],91:[2,172],93:[2,172],102:[2,172],103:87,104:[2,172],105:[2,172],106:[2,172],109:88,110:[2,172],111:69,118:[2,172],126:[2,172],128:[1,80],129:[1,79],132:[1,78],133:[1,81],134:[1,82],135:[1,83],136:[1,84],137:[1,85]},{6:[2,95],25:[2,95],26:[2,95],54:[2,95],78:[2,95]}],
-defaultActions: {60:[2,51],61:[2,52],75:[2,3],94:[2,109],191:[2,89]},
-parseError: function parseError(str, hash) {
- var e = new Error(str)
- e.location = hash.loc
- throw e;
-},
-parse: function parse(input) {
- var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
- this.lexer.setInput(input);
- this.lexer.yy = this.yy;
- this.yy.lexer = this.lexer;
- this.yy.parser = this;
- if (typeof this.lexer.yylloc == "undefined")
- this.lexer.yylloc = {};
- var yyloc = this.lexer.yylloc;
- lstack.push(yyloc);
- var ranges = this.lexer.options && this.lexer.options.ranges;
- if (typeof this.yy.parseError === "function")
- this.parseError = this.yy.parseError;
- function popStack(n) {
- stack.length = stack.length - 2 * n;
- vstack.length = vstack.length - n;
- lstack.length = lstack.length - n;
- }
- function lex() {
- var token;
- token = self.lexer.lex() || 1;
- if (typeof token !== "number") {
- token = self.symbols_[token] || token;
- }
- return token;
- }
- var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state = stack[stack.length - 1];
- if (this.defaultActions[state]) {
- action = this.defaultActions[state];
- } else {
- if (symbol === null || typeof symbol == "undefined") {
- symbol = lex();
- }
- action = table[state] && table[state][symbol];
- }
- if (typeof action === "undefined" || !action.length || !action[0]) {
- var errStr = "";
- if (!recovering) {
- expected = [];
- for (p in table[state])
- if (this.terminals_[p] && p > 2) {
- expected.push("'" + this.terminals_[p] + "'");
- }
- if (this.lexer.showPosition) {
- errStr = this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
- } else {
- errStr = "Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'");
- }
- this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected});
- }
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(this.lexer.yytext);
- lstack.push(this.lexer.yylloc);
- stack.push(action[1]);
- symbol = null;
- if (!preErrorSymbol) {
- yyleng = this.lexer.yyleng;
- yytext = this.lexer.yytext;
- yylineno = this.lexer.yylineno;
- yyloc = this.lexer.yylloc;
- if (recovering > 0)
- recovering--;
- } else {
- symbol = preErrorSymbol;
- preErrorSymbol = null;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column};
- if (ranges) {
- yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];
- }
- r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack);
- if (typeof r !== "undefined") {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
-}
-};
-undefined
-function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
-
-module.exports = new Parser;
-
-
-});
-
-ace.define('ace/mode/coffee/nodes', ['require', 'exports', 'module' , 'ace/mode/coffee/scope', 'ace/mode/coffee/lexer', 'ace/mode/coffee/helpers'], function(require, exports, module) {
-
- var Access, Arr, Assign, Base, Block, Call, Class, Closure, Code, CodeFragment, Comment, Existence, Extends, For, IDENTIFIER, IDENTIFIER_STR, IS_STRING, If, In, Index, LEVEL_ACCESS, LEVEL_COND, LEVEL_LIST, LEVEL_OP, LEVEL_PAREN, LEVEL_TOP, Literal, METHOD_DEF, NEGATE, NO, Obj, Op, Param, Parens, RESERVED, Range, Return, SIMPLENUM, STRICT_PROSCRIBED, Scope, Slice, Splat, Switch, TAB, THIS, Throw, Try, UTILITIES, Value, While, YES, addLocationDataFn, compact, del, ends, extend, flatten, fragmentsToText, last, locationDataToString, merge, multident, some, starts, throwSyntaxError, unfoldSoak, utility, _ref, _ref1, _ref2, _ref3,
- __hasProp = {}.hasOwnProperty,
- __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
- __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; },
- __slice = [].slice;
-
- Error.stackTraceLimit = Infinity;
-
- Scope = require('./scope').Scope;
-
- _ref = require('./lexer'), RESERVED = _ref.RESERVED, STRICT_PROSCRIBED = _ref.STRICT_PROSCRIBED;
-
- _ref1 = require('./helpers'), compact = _ref1.compact, flatten = _ref1.flatten, extend = _ref1.extend, merge = _ref1.merge, del = _ref1.del, starts = _ref1.starts, ends = _ref1.ends, last = _ref1.last, some = _ref1.some, addLocationDataFn = _ref1.addLocationDataFn, locationDataToString = _ref1.locationDataToString, throwSyntaxError = _ref1.throwSyntaxError;
-
- exports.extend = extend;
-
- exports.addLocationDataFn = addLocationDataFn;
-
- YES = function() {
- return true;
- };
-
- NO = function() {
- return false;
- };
-
- THIS = function() {
- return this;
- };
-
- NEGATE = function() {
- this.negated = !this.negated;
- return this;
- };
-
- exports.CodeFragment = CodeFragment = (function() {
- function CodeFragment(parent, code) {
- var _ref2;
- this.code = "" + code;
- this.locationData = parent != null ? parent.locationData : void 0;
- this.type = (parent != null ? (_ref2 = parent.constructor) != null ? _ref2.name : void 0 : void 0) || 'unknown';
- }
-
- CodeFragment.prototype.toString = function() {
- return "" + this.code + (this.locationData ? ": " + locationDataToString(this.locationData) : '');
- };
-
- return CodeFragment;
-
- })();
-
- fragmentsToText = function(fragments) {
- var fragment;
- return ((function() {
- var _i, _len, _results;
- _results = [];
- for (_i = 0, _len = fragments.length; _i < _len; _i++) {
- fragment = fragments[_i];
- _results.push(fragment.code);
- }
- return _results;
- })()).join('');
- };
-
- exports.Base = Base = (function() {
- function Base() {}
-
- Base.prototype.compile = function(o, lvl) {
- return fragmentsToText(this.compileToFragments(o, lvl));
- };
-
- Base.prototype.compileToFragments = function(o, lvl) {
- var node;
- o = extend({}, o);
- if (lvl) {
- o.level = lvl;
- }
- node = this.unfoldSoak(o) || this;
- node.tab = o.indent;
- if (o.level === LEVEL_TOP || !node.isStatement(o)) {
- return node.compileNode(o);
- } else {
- return node.compileClosure(o);
- }
- };
-
- Base.prototype.compileClosure = function(o) {
- var jumpNode;
- if (jumpNode = this.jumps()) {
- jumpNode.error('cannot use a pure statement in an expression');
- }
- o.sharedScope = true;
- return Closure.wrap(this).compileNode(o);
- };
-
- Base.prototype.cache = function(o, level, reused) {
- var ref, sub;
- if (!this.isComplex()) {
- ref = level ? this.compileToFragments(o, level) : this;
- return [ref, ref];
- } else {
- ref = new Literal(reused || o.scope.freeVariable('ref'));
- sub = new Assign(ref, this);
- if (level) {
- return [sub.compileToFragments(o, level), [this.makeCode(ref.value)]];
- } else {
- return [sub, ref];
- }
- }
- };
-
- Base.prototype.cacheToCodeFragments = function(cacheValues) {
- return [fragmentsToText(cacheValues[0]), fragmentsToText(cacheValues[1])];
- };
-
- Base.prototype.makeReturn = function(res) {
- var me;
- me = this.unwrapAll();
- if (res) {
- return new Call(new Literal("" + res + ".push"), [me]);
- } else {
- return new Return(me);
- }
- };
-
- Base.prototype.contains = function(pred) {
- var node;
- node = void 0;
- this.traverseChildren(false, function(n) {
- if (pred(n)) {
- node = n;
- return false;
- }
- });
- return node;
- };
-
- Base.prototype.lastNonComment = function(list) {
- var i;
- i = list.length;
- while (i--) {
- if (!(list[i] instanceof Comment)) {
- return list[i];
- }
- }
- return null;
- };
-
- Base.prototype.toString = function(idt, name) {
- var tree;
- if (idt == null) {
- idt = '';
- }
- if (name == null) {
- name = this.constructor.name;
- }
- tree = '\n' + idt + name;
- if (this.soak) {
- tree += '?';
- }
- this.eachChild(function(node) {
- return tree += node.toString(idt + TAB);
- });
- return tree;
- };
-
- Base.prototype.eachChild = function(func) {
- var attr, child, _i, _j, _len, _len1, _ref2, _ref3;
- if (!this.children) {
- return this;
- }
- _ref2 = this.children;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- attr = _ref2[_i];
- if (this[attr]) {
- _ref3 = flatten([this[attr]]);
- for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) {
- child = _ref3[_j];
- if (func(child) === false) {
- return this;
- }
- }
- }
- }
- return this;
- };
-
- Base.prototype.traverseChildren = function(crossScope, func) {
- return this.eachChild(function(child) {
- var recur;
- recur = func(child);
- if (recur !== false) {
- return child.traverseChildren(crossScope, func);
- }
- });
- };
-
- Base.prototype.invert = function() {
- return new Op('!', this);
- };
-
- Base.prototype.unwrapAll = function() {
- var node;
- node = this;
- while (node !== (node = node.unwrap())) {
- continue;
- }
- return node;
- };
-
- Base.prototype.children = [];
-
- Base.prototype.isStatement = NO;
-
- Base.prototype.jumps = NO;
-
- Base.prototype.isComplex = YES;
-
- Base.prototype.isChainable = NO;
-
- Base.prototype.isAssignable = NO;
-
- Base.prototype.unwrap = THIS;
-
- Base.prototype.unfoldSoak = NO;
-
- Base.prototype.assigns = NO;
-
- Base.prototype.updateLocationDataIfMissing = function(locationData) {
- this.locationData || (this.locationData = locationData);
- return this.eachChild(function(child) {
- return child.updateLocationDataIfMissing(locationData);
- });
- };
-
- Base.prototype.error = function(message) {
- return throwSyntaxError(message, this.locationData);
- };
-
- Base.prototype.makeCode = function(code) {
- return new CodeFragment(this, code);
- };
-
- Base.prototype.wrapInBraces = function(fragments) {
- return [].concat(this.makeCode('('), fragments, this.makeCode(')'));
- };
-
- Base.prototype.joinFragmentArrays = function(fragmentsList, joinStr) {
- var answer, fragments, i, _i, _len;
- answer = [];
- for (i = _i = 0, _len = fragmentsList.length; _i < _len; i = ++_i) {
- fragments = fragmentsList[i];
- if (i) {
- answer.push(this.makeCode(joinStr));
- }
- answer = answer.concat(fragments);
- }
- return answer;
- };
-
- return Base;
-
- })();
-
- exports.Block = Block = (function(_super) {
- __extends(Block, _super);
-
- function Block(nodes) {
- this.expressions = compact(flatten(nodes || []));
- }
-
- Block.prototype.children = ['expressions'];
-
- Block.prototype.push = function(node) {
- this.expressions.push(node);
- return this;
- };
-
- Block.prototype.pop = function() {
- return this.expressions.pop();
- };
-
- Block.prototype.unshift = function(node) {
- this.expressions.unshift(node);
- return this;
- };
-
- Block.prototype.unwrap = function() {
- if (this.expressions.length === 1) {
- return this.expressions[0];
- } else {
- return this;
- }
- };
-
- Block.prototype.isEmpty = function() {
- return !this.expressions.length;
- };
-
- Block.prototype.isStatement = function(o) {
- var exp, _i, _len, _ref2;
- _ref2 = this.expressions;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- exp = _ref2[_i];
- if (exp.isStatement(o)) {
- return true;
- }
- }
- return false;
- };
-
- Block.prototype.jumps = function(o) {
- var exp, _i, _len, _ref2;
- _ref2 = this.expressions;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- exp = _ref2[_i];
- if (exp.jumps(o)) {
- return exp;
- }
- }
- };
-
- Block.prototype.makeReturn = function(res) {
- var expr, len;
- len = this.expressions.length;
- while (len--) {
- expr = this.expressions[len];
- if (!(expr instanceof Comment)) {
- this.expressions[len] = expr.makeReturn(res);
- if (expr instanceof Return && !expr.expression) {
- this.expressions.splice(len, 1);
- }
- break;
- }
- }
- return this;
- };
-
- Block.prototype.compileToFragments = function(o, level) {
- if (o == null) {
- o = {};
- }
- if (o.scope) {
- return Block.__super__.compileToFragments.call(this, o, level);
- } else {
- return this.compileRoot(o);
- }
- };
-
- Block.prototype.compileNode = function(o) {
- var answer, compiledNodes, fragments, index, node, top, _i, _len, _ref2;
- this.tab = o.indent;
- top = o.level === LEVEL_TOP;
- compiledNodes = [];
- _ref2 = this.expressions;
- for (index = _i = 0, _len = _ref2.length; _i < _len; index = ++_i) {
- node = _ref2[index];
- node = node.unwrapAll();
- node = node.unfoldSoak(o) || node;
- if (node instanceof Block) {
- compiledNodes.push(node.compileNode(o));
- } else if (top) {
- node.front = true;
- fragments = node.compileToFragments(o);
- if (!node.isStatement(o)) {
- fragments.unshift(this.makeCode("" + this.tab));
- fragments.push(this.makeCode(";"));
- }
- compiledNodes.push(fragments);
- } else {
- compiledNodes.push(node.compileToFragments(o, LEVEL_LIST));
- }
- }
- if (top) {
- if (this.spaced) {
- return [].concat(this.joinFragmentArrays(compiledNodes, '\n\n'), this.makeCode("\n"));
- } else {
- return this.joinFragmentArrays(compiledNodes, '\n');
- }
- }
- if (compiledNodes.length) {
- answer = this.joinFragmentArrays(compiledNodes, ', ');
- } else {
- answer = [this.makeCode("void 0")];
- }
- if (compiledNodes.length > 1 && o.level >= LEVEL_LIST) {
- return this.wrapInBraces(answer);
- } else {
- return answer;
- }
- };
-
- Block.prototype.compileRoot = function(o) {
- var exp, fragments, i, name, prelude, preludeExps, rest, _i, _len, _ref2;
- o.indent = o.bare ? '' : TAB;
- o.level = LEVEL_TOP;
- this.spaced = true;
- o.scope = new Scope(null, this, null);
- _ref2 = o.locals || [];
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- name = _ref2[_i];
- o.scope.parameter(name);
- }
- prelude = [];
- if (!o.bare) {
- preludeExps = (function() {
- var _j, _len1, _ref3, _results;
- _ref3 = this.expressions;
- _results = [];
- for (i = _j = 0, _len1 = _ref3.length; _j < _len1; i = ++_j) {
- exp = _ref3[i];
- if (!(exp.unwrap() instanceof Comment)) {
- break;
- }
- _results.push(exp);
- }
- return _results;
- }).call(this);
- rest = this.expressions.slice(preludeExps.length);
- this.expressions = preludeExps;
- if (preludeExps.length) {
- prelude = this.compileNode(merge(o, {
- indent: ''
- }));
- prelude.push(this.makeCode("\n"));
- }
- this.expressions = rest;
- }
- fragments = this.compileWithDeclarations(o);
- if (o.bare) {
- return fragments;
- }
- return [].concat(prelude, this.makeCode("(function() {\n"), fragments, this.makeCode("\n}).call(this);\n"));
- };
-
- Block.prototype.compileWithDeclarations = function(o) {
- var assigns, declars, exp, fragments, i, post, rest, scope, spaced, _i, _len, _ref2, _ref3, _ref4;
- fragments = [];
- post = [];
- _ref2 = this.expressions;
- for (i = _i = 0, _len = _ref2.length; _i < _len; i = ++_i) {
- exp = _ref2[i];
- exp = exp.unwrap();
- if (!(exp instanceof Comment || exp instanceof Literal)) {
- break;
- }
- }
- o = merge(o, {
- level: LEVEL_TOP
- });
- if (i) {
- rest = this.expressions.splice(i, 9e9);
- _ref3 = [this.spaced, false], spaced = _ref3[0], this.spaced = _ref3[1];
- _ref4 = [this.compileNode(o), spaced], fragments = _ref4[0], this.spaced = _ref4[1];
- this.expressions = rest;
- }
- post = this.compileNode(o);
- scope = o.scope;
- if (scope.expressions === this) {
- declars = o.scope.hasDeclarations();
- assigns = scope.hasAssignments;
- if (declars || assigns) {
- if (i) {
- fragments.push(this.makeCode('\n'));
- }
- fragments.push(this.makeCode("" + this.tab + "var "));
- if (declars) {
- fragments.push(this.makeCode(scope.declaredVariables().join(', ')));
- }
- if (assigns) {
- if (declars) {
- fragments.push(this.makeCode(",\n" + (this.tab + TAB)));
- }
- fragments.push(this.makeCode(scope.assignedVariables().join(",\n" + (this.tab + TAB))));
- }
- fragments.push(this.makeCode(";\n" + (this.spaced ? '\n' : '')));
- } else if (fragments.length && post.length) {
- fragments.push(this.makeCode("\n"));
- }
- }
- return fragments.concat(post);
- };
-
- Block.wrap = function(nodes) {
- if (nodes.length === 1 && nodes[0] instanceof Block) {
- return nodes[0];
- }
- return new Block(nodes);
- };
-
- return Block;
-
- })(Base);
-
- exports.Literal = Literal = (function(_super) {
- __extends(Literal, _super);
-
- function Literal(value) {
- this.value = value;
- }
-
- Literal.prototype.makeReturn = function() {
- if (this.isStatement()) {
- return this;
- } else {
- return Literal.__super__.makeReturn.apply(this, arguments);
- }
- };
-
- Literal.prototype.isAssignable = function() {
- return IDENTIFIER.test(this.value);
- };
-
- Literal.prototype.isStatement = function() {
- var _ref2;
- return (_ref2 = this.value) === 'break' || _ref2 === 'continue' || _ref2 === 'debugger';
- };
-
- Literal.prototype.isComplex = NO;
-
- Literal.prototype.assigns = function(name) {
- return name === this.value;
- };
-
- Literal.prototype.jumps = function(o) {
- if (this.value === 'break' && !((o != null ? o.loop : void 0) || (o != null ? o.block : void 0))) {
- return this;
- }
- if (this.value === 'continue' && !(o != null ? o.loop : void 0)) {
- return this;
- }
- };
-
- Literal.prototype.compileNode = function(o) {
- var answer, code, _ref2;
- code = this.value === 'this' ? ((_ref2 = o.scope.method) != null ? _ref2.bound : void 0) ? o.scope.method.context : this.value : this.value.reserved ? "\"" + this.value + "\"" : this.value;
- answer = this.isStatement() ? "" + this.tab + code + ";" : code;
- return [this.makeCode(answer)];
- };
-
- Literal.prototype.toString = function() {
- return ' "' + this.value + '"';
- };
-
- return Literal;
-
- })(Base);
-
- exports.Undefined = (function(_super) {
- __extends(Undefined, _super);
-
- function Undefined() {
- _ref2 = Undefined.__super__.constructor.apply(this, arguments);
- return _ref2;
- }
-
- Undefined.prototype.isAssignable = NO;
-
- Undefined.prototype.isComplex = NO;
-
- Undefined.prototype.compileNode = function(o) {
- return [this.makeCode(o.level >= LEVEL_ACCESS ? '(void 0)' : 'void 0')];
- };
-
- return Undefined;
-
- })(Base);
-
- exports.Null = (function(_super) {
- __extends(Null, _super);
-
- function Null() {
- _ref3 = Null.__super__.constructor.apply(this, arguments);
- return _ref3;
- }
-
- Null.prototype.isAssignable = NO;
-
- Null.prototype.isComplex = NO;
-
- Null.prototype.compileNode = function() {
- return [this.makeCode("null")];
- };
-
- return Null;
-
- })(Base);
-
- exports.Bool = (function(_super) {
- __extends(Bool, _super);
-
- Bool.prototype.isAssignable = NO;
-
- Bool.prototype.isComplex = NO;
-
- Bool.prototype.compileNode = function() {
- return [this.makeCode(this.val)];
- };
-
- function Bool(val) {
- this.val = val;
- }
-
- return Bool;
-
- })(Base);
-
- exports.Return = Return = (function(_super) {
- __extends(Return, _super);
-
- function Return(expr) {
- if (expr && !expr.unwrap().isUndefined) {
- this.expression = expr;
- }
- }
-
- Return.prototype.children = ['expression'];
-
- Return.prototype.isStatement = YES;
-
- Return.prototype.makeReturn = THIS;
-
- Return.prototype.jumps = THIS;
-
- Return.prototype.compileToFragments = function(o, level) {
- var expr, _ref4;
- expr = (_ref4 = this.expression) != null ? _ref4.makeReturn() : void 0;
- if (expr && !(expr instanceof Return)) {
- return expr.compileToFragments(o, level);
- } else {
- return Return.__super__.compileToFragments.call(this, o, level);
- }
- };
-
- Return.prototype.compileNode = function(o) {
- var answer;
- answer = [];
- answer.push(this.makeCode(this.tab + ("return" + (this.expression ? " " : ""))));
- if (this.expression) {
- answer = answer.concat(this.expression.compileToFragments(o, LEVEL_PAREN));
- }
- answer.push(this.makeCode(";"));
- return answer;
- };
-
- return Return;
-
- })(Base);
-
- exports.Value = Value = (function(_super) {
- __extends(Value, _super);
-
- function Value(base, props, tag) {
- if (!props && base instanceof Value) {
- return base;
- }
- this.base = base;
- this.properties = props || [];
- if (tag) {
- this[tag] = true;
- }
- return this;
- }
-
- Value.prototype.children = ['base', 'properties'];
-
- Value.prototype.add = function(props) {
- this.properties = this.properties.concat(props);
- return this;
- };
-
- Value.prototype.hasProperties = function() {
- return !!this.properties.length;
- };
-
- Value.prototype.isArray = function() {
- return !this.properties.length && this.base instanceof Arr;
- };
-
- Value.prototype.isComplex = function() {
- return this.hasProperties() || this.base.isComplex();
- };
-
- Value.prototype.isAssignable = function() {
- return this.hasProperties() || this.base.isAssignable();
- };
-
- Value.prototype.isSimpleNumber = function() {
- return this.base instanceof Literal && SIMPLENUM.test(this.base.value);
- };
-
- Value.prototype.isString = function() {
- return this.base instanceof Literal && IS_STRING.test(this.base.value);
- };
-
- Value.prototype.isAtomic = function() {
- var node, _i, _len, _ref4;
- _ref4 = this.properties.concat(this.base);
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- node = _ref4[_i];
- if (node.soak || node instanceof Call) {
- return false;
- }
- }
- return true;
- };
-
- Value.prototype.isStatement = function(o) {
- return !this.properties.length && this.base.isStatement(o);
- };
-
- Value.prototype.assigns = function(name) {
- return !this.properties.length && this.base.assigns(name);
- };
-
- Value.prototype.jumps = function(o) {
- return !this.properties.length && this.base.jumps(o);
- };
-
- Value.prototype.isObject = function(onlyGenerated) {
- if (this.properties.length) {
- return false;
- }
- return (this.base instanceof Obj) && (!onlyGenerated || this.base.generated);
- };
-
- Value.prototype.isSplice = function() {
- return last(this.properties) instanceof Slice;
- };
-
- Value.prototype.unwrap = function() {
- if (this.properties.length) {
- return this;
- } else {
- return this.base;
- }
- };
-
- Value.prototype.cacheReference = function(o) {
- var base, bref, name, nref;
- name = last(this.properties);
- if (this.properties.length < 2 && !this.base.isComplex() && !(name != null ? name.isComplex() : void 0)) {
- return [this, this];
- }
- base = new Value(this.base, this.properties.slice(0, -1));
- if (base.isComplex()) {
- bref = new Literal(o.scope.freeVariable('base'));
- base = new Value(new Parens(new Assign(bref, base)));
- }
- if (!name) {
- return [base, bref];
- }
- if (name.isComplex()) {
- nref = new Literal(o.scope.freeVariable('name'));
- name = new Index(new Assign(nref, name.index));
- nref = new Index(nref);
- }
- return [base.add(name), new Value(bref || base.base, [nref || name])];
- };
-
- Value.prototype.compileNode = function(o) {
- var fragments, prop, props, _i, _len;
- this.base.front = this.front;
- props = this.properties;
- fragments = this.base.compileToFragments(o, (props.length ? LEVEL_ACCESS : null));
- if ((this.base instanceof Parens || props.length) && SIMPLENUM.test(fragmentsToText(fragments))) {
- fragments.push(this.makeCode('.'));
- }
- for (_i = 0, _len = props.length; _i < _len; _i++) {
- prop = props[_i];
- fragments.push.apply(fragments, prop.compileToFragments(o));
- }
- return fragments;
- };
-
- Value.prototype.unfoldSoak = function(o) {
- var _this = this;
- return this.unfoldedSoak != null ? this.unfoldedSoak : this.unfoldedSoak = (function() {
- var fst, i, ifn, prop, ref, snd, _i, _len, _ref4, _ref5;
- if (ifn = _this.base.unfoldSoak(o)) {
- (_ref4 = ifn.body.properties).push.apply(_ref4, _this.properties);
- return ifn;
- }
- _ref5 = _this.properties;
- for (i = _i = 0, _len = _ref5.length; _i < _len; i = ++_i) {
- prop = _ref5[i];
- if (!prop.soak) {
- continue;
- }
- prop.soak = false;
- fst = new Value(_this.base, _this.properties.slice(0, i));
- snd = new Value(_this.base, _this.properties.slice(i));
- if (fst.isComplex()) {
- ref = new Literal(o.scope.freeVariable('ref'));
- fst = new Parens(new Assign(ref, fst));
- snd.base = ref;
- }
- return new If(new Existence(fst), snd, {
- soak: true
- });
- }
- return false;
- })();
- };
-
- return Value;
-
- })(Base);
-
- exports.Comment = Comment = (function(_super) {
- __extends(Comment, _super);
-
- function Comment(comment) {
- this.comment = comment;
- }
-
- Comment.prototype.isStatement = YES;
-
- Comment.prototype.makeReturn = THIS;
-
- Comment.prototype.compileNode = function(o, level) {
- var code;
- code = "/*" + (multident(this.comment, this.tab)) + (__indexOf.call(this.comment, '\n') >= 0 ? "\n" + this.tab : '') + "*/\n";
- if ((level || o.level) === LEVEL_TOP) {
- code = o.indent + code;
- }
- return [this.makeCode(code)];
- };
-
- return Comment;
-
- })(Base);
-
- exports.Call = Call = (function(_super) {
- __extends(Call, _super);
-
- function Call(variable, args, soak) {
- this.args = args != null ? args : [];
- this.soak = soak;
- this.isNew = false;
- this.isSuper = variable === 'super';
- this.variable = this.isSuper ? null : variable;
- }
-
- Call.prototype.children = ['variable', 'args'];
-
- Call.prototype.newInstance = function() {
- var base, _ref4;
- base = ((_ref4 = this.variable) != null ? _ref4.base : void 0) || this.variable;
- if (base instanceof Call && !base.isNew) {
- base.newInstance();
- } else {
- this.isNew = true;
- }
- return this;
- };
-
- Call.prototype.superReference = function(o) {
- var accesses, method;
- method = o.scope.namedMethod();
- if (method != null ? method.klass : void 0) {
- accesses = [new Access(new Literal('__super__'))];
- if (method["static"]) {
- accesses.push(new Access(new Literal('constructor')));
- }
- accesses.push(new Access(new Literal(method.name)));
- return (new Value(new Literal(method.klass), accesses)).compile(o);
- } else if (method != null ? method.ctor : void 0) {
- return "" + method.name + ".__super__.constructor";
- } else {
- return this.error('cannot call super outside of an instance method.');
- }
- };
-
- Call.prototype.superThis = function(o) {
- var method;
- method = o.scope.method;
- return (method && !method.klass && method.context) || "this";
- };
-
- Call.prototype.unfoldSoak = function(o) {
- var call, ifn, left, list, rite, _i, _len, _ref4, _ref5;
- if (this.soak) {
- if (this.variable) {
- if (ifn = unfoldSoak(o, this, 'variable')) {
- return ifn;
- }
- _ref4 = new Value(this.variable).cacheReference(o), left = _ref4[0], rite = _ref4[1];
- } else {
- left = new Literal(this.superReference(o));
- rite = new Value(left);
- }
- rite = new Call(rite, this.args);
- rite.isNew = this.isNew;
- left = new Literal("typeof " + (left.compile(o)) + " === \"function\"");
- return new If(left, new Value(rite), {
- soak: true
- });
- }
- call = this;
- list = [];
- while (true) {
- if (call.variable instanceof Call) {
- list.push(call);
- call = call.variable;
- continue;
- }
- if (!(call.variable instanceof Value)) {
- break;
- }
- list.push(call);
- if (!((call = call.variable.base) instanceof Call)) {
- break;
- }
- }
- _ref5 = list.reverse();
- for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
- call = _ref5[_i];
- if (ifn) {
- if (call.variable instanceof Call) {
- call.variable = ifn;
- } else {
- call.variable.base = ifn;
- }
- }
- ifn = unfoldSoak(o, call, 'variable');
- }
- return ifn;
- };
-
- Call.prototype.compileNode = function(o) {
- var arg, argIndex, compiledArgs, compiledArray, fragments, preface, _i, _len, _ref4, _ref5;
- if ((_ref4 = this.variable) != null) {
- _ref4.front = this.front;
- }
- compiledArray = Splat.compileSplattedArray(o, this.args, true);
- if (compiledArray.length) {
- return this.compileSplat(o, compiledArray);
- }
- compiledArgs = [];
- _ref5 = this.args;
- for (argIndex = _i = 0, _len = _ref5.length; _i < _len; argIndex = ++_i) {
- arg = _ref5[argIndex];
- if (argIndex) {
- compiledArgs.push(this.makeCode(", "));
- }
- compiledArgs.push.apply(compiledArgs, arg.compileToFragments(o, LEVEL_LIST));
- }
- fragments = [];
- if (this.isSuper) {
- preface = this.superReference(o) + (".call(" + (this.superThis(o)));
- if (compiledArgs.length) {
- preface += ", ";
- }
- fragments.push(this.makeCode(preface));
- } else {
- if (this.isNew) {
- fragments.push(this.makeCode('new '));
- }
- fragments.push.apply(fragments, this.variable.compileToFragments(o, LEVEL_ACCESS));
- fragments.push(this.makeCode("("));
- }
- fragments.push.apply(fragments, compiledArgs);
- fragments.push(this.makeCode(")"));
- return fragments;
- };
-
- Call.prototype.compileSplat = function(o, splatArgs) {
- var answer, base, fun, idt, name, ref;
- if (this.isSuper) {
- return [].concat(this.makeCode("" + (this.superReference(o)) + ".apply(" + (this.superThis(o)) + ", "), splatArgs, this.makeCode(")"));
- }
- if (this.isNew) {
- idt = this.tab + TAB;
- return [].concat(this.makeCode("(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args);\n" + idt + "return Object(result) === result ? result : child;\n" + this.tab + "})("), this.variable.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), splatArgs, this.makeCode(", function(){})"));
- }
- answer = [];
- base = new Value(this.variable);
- if ((name = base.properties.pop()) && base.isComplex()) {
- ref = o.scope.freeVariable('ref');
- answer = answer.concat(this.makeCode("(" + ref + " = "), base.compileToFragments(o, LEVEL_LIST), this.makeCode(")"), name.compileToFragments(o));
- } else {
- fun = base.compileToFragments(o, LEVEL_ACCESS);
- if (SIMPLENUM.test(fragmentsToText(fun))) {
- fun = this.wrapInBraces(fun);
- }
- if (name) {
- ref = fragmentsToText(fun);
- fun.push.apply(fun, name.compileToFragments(o));
- } else {
- ref = 'null';
- }
- answer = answer.concat(fun);
- }
- return answer = answer.concat(this.makeCode(".apply(" + ref + ", "), splatArgs, this.makeCode(")"));
- };
-
- return Call;
-
- })(Base);
-
- exports.Extends = Extends = (function(_super) {
- __extends(Extends, _super);
-
- function Extends(child, parent) {
- this.child = child;
- this.parent = parent;
- }
-
- Extends.prototype.children = ['child', 'parent'];
-
- Extends.prototype.compileToFragments = function(o) {
- return new Call(new Value(new Literal(utility('extends'))), [this.child, this.parent]).compileToFragments(o);
- };
-
- return Extends;
-
- })(Base);
-
- exports.Access = Access = (function(_super) {
- __extends(Access, _super);
-
- function Access(name, tag) {
- this.name = name;
- this.name.asKey = true;
- this.soak = tag === 'soak';
- }
-
- Access.prototype.children = ['name'];
-
- Access.prototype.compileToFragments = function(o) {
- var name;
- name = this.name.compileToFragments(o);
- if (IDENTIFIER.test(fragmentsToText(name))) {
- name.unshift(this.makeCode("."));
- } else {
- name.unshift(this.makeCode("["));
- name.push(this.makeCode("]"));
- }
- return name;
- };
-
- Access.prototype.isComplex = NO;
-
- return Access;
-
- })(Base);
-
- exports.Index = Index = (function(_super) {
- __extends(Index, _super);
-
- function Index(index) {
- this.index = index;
- }
-
- Index.prototype.children = ['index'];
-
- Index.prototype.compileToFragments = function(o) {
- return [].concat(this.makeCode("["), this.index.compileToFragments(o, LEVEL_PAREN), this.makeCode("]"));
- };
-
- Index.prototype.isComplex = function() {
- return this.index.isComplex();
- };
-
- return Index;
-
- })(Base);
-
- exports.Range = Range = (function(_super) {
- __extends(Range, _super);
-
- Range.prototype.children = ['from', 'to'];
-
- function Range(from, to, tag) {
- this.from = from;
- this.to = to;
- this.exclusive = tag === 'exclusive';
- this.equals = this.exclusive ? '' : '=';
- }
-
- Range.prototype.compileVariables = function(o) {
- var step, _ref4, _ref5, _ref6, _ref7;
- o = merge(o, {
- top: true
- });
- _ref4 = this.cacheToCodeFragments(this.from.cache(o, LEVEL_LIST)), this.fromC = _ref4[0], this.fromVar = _ref4[1];
- _ref5 = this.cacheToCodeFragments(this.to.cache(o, LEVEL_LIST)), this.toC = _ref5[0], this.toVar = _ref5[1];
- if (step = del(o, 'step')) {
- _ref6 = this.cacheToCodeFragments(step.cache(o, LEVEL_LIST)), this.step = _ref6[0], this.stepVar = _ref6[1];
- }
- _ref7 = [this.fromVar.match(SIMPLENUM), this.toVar.match(SIMPLENUM)], this.fromNum = _ref7[0], this.toNum = _ref7[1];
- if (this.stepVar) {
- return this.stepNum = this.stepVar.match(SIMPLENUM);
- }
- };
-
- Range.prototype.compileNode = function(o) {
- var cond, condPart, from, gt, idx, idxName, known, lt, namedIndex, stepPart, to, varPart, _ref4, _ref5;
- if (!this.fromVar) {
- this.compileVariables(o);
- }
- if (!o.index) {
- return this.compileArray(o);
- }
- known = this.fromNum && this.toNum;
- idx = del(o, 'index');
- idxName = del(o, 'name');
- namedIndex = idxName && idxName !== idx;
- varPart = "" + idx + " = " + this.fromC;
- if (this.toC !== this.toVar) {
- varPart += ", " + this.toC;
- }
- if (this.step !== this.stepVar) {
- varPart += ", " + this.step;
- }
- _ref4 = ["" + idx + " <" + this.equals, "" + idx + " >" + this.equals], lt = _ref4[0], gt = _ref4[1];
- condPart = this.stepNum ? +this.stepNum > 0 ? "" + lt + " " + this.toVar : "" + gt + " " + this.toVar : known ? ((_ref5 = [+this.fromNum, +this.toNum], from = _ref5[0], to = _ref5[1], _ref5), from <= to ? "" + lt + " " + to : "" + gt + " " + to) : (cond = this.stepVar ? "" + this.stepVar + " > 0" : "" + this.fromVar + " <= " + this.toVar, "" + cond + " ? " + lt + " " + this.toVar + " : " + gt + " " + this.toVar);
- stepPart = this.stepVar ? "" + idx + " += " + this.stepVar : known ? namedIndex ? from <= to ? "++" + idx : "--" + idx : from <= to ? "" + idx + "++" : "" + idx + "--" : namedIndex ? "" + cond + " ? ++" + idx + " : --" + idx : "" + cond + " ? " + idx + "++ : " + idx + "--";
- if (namedIndex) {
- varPart = "" + idxName + " = " + varPart;
- }
- if (namedIndex) {
- stepPart = "" + idxName + " = " + stepPart;
- }
- return [this.makeCode("" + varPart + "; " + condPart + "; " + stepPart)];
- };
-
- Range.prototype.compileArray = function(o) {
- var args, body, cond, hasArgs, i, idt, post, pre, range, result, vars, _i, _ref4, _ref5, _results;
- if (this.fromNum && this.toNum && Math.abs(this.fromNum - this.toNum) <= 20) {
- range = (function() {
- _results = [];
- for (var _i = _ref4 = +this.fromNum, _ref5 = +this.toNum; _ref4 <= _ref5 ? _i <= _ref5 : _i >= _ref5; _ref4 <= _ref5 ? _i++ : _i--){ _results.push(_i); }
- return _results;
- }).apply(this);
- if (this.exclusive) {
- range.pop();
- }
- return [this.makeCode("[" + (range.join(', ')) + "]")];
- }
- idt = this.tab + TAB;
- i = o.scope.freeVariable('i');
- result = o.scope.freeVariable('results');
- pre = "\n" + idt + result + " = [];";
- if (this.fromNum && this.toNum) {
- o.index = i;
- body = fragmentsToText(this.compileNode(o));
- } else {
- vars = ("" + i + " = " + this.fromC) + (this.toC !== this.toVar ? ", " + this.toC : '');
- cond = "" + this.fromVar + " <= " + this.toVar;
- body = "var " + vars + "; " + cond + " ? " + i + " <" + this.equals + " " + this.toVar + " : " + i + " >" + this.equals + " " + this.toVar + "; " + cond + " ? " + i + "++ : " + i + "--";
- }
- post = "{ " + result + ".push(" + i + "); }\n" + idt + "return " + result + ";\n" + o.indent;
- hasArgs = function(node) {
- return node != null ? node.contains(function(n) {
- return n instanceof Literal && n.value === 'arguments' && !n.asKey;
- }) : void 0;
- };
- if (hasArgs(this.from) || hasArgs(this.to)) {
- args = ', arguments';
- }
- return [this.makeCode("(function() {" + pre + "\n" + idt + "for (" + body + ")" + post + "}).apply(this" + (args != null ? args : '') + ")")];
- };
-
- return Range;
-
- })(Base);
-
- exports.Slice = Slice = (function(_super) {
- __extends(Slice, _super);
-
- Slice.prototype.children = ['range'];
-
- function Slice(range) {
- this.range = range;
- Slice.__super__.constructor.call(this);
- }
-
- Slice.prototype.compileNode = function(o) {
- var compiled, compiledText, from, fromCompiled, to, toStr, _ref4;
- _ref4 = this.range, to = _ref4.to, from = _ref4.from;
- fromCompiled = from && from.compileToFragments(o, LEVEL_PAREN) || [this.makeCode('0')];
- if (to) {
- compiled = to.compileToFragments(o, LEVEL_PAREN);
- compiledText = fragmentsToText(compiled);
- if (!(!this.range.exclusive && +compiledText === -1)) {
- toStr = ', ' + (this.range.exclusive ? compiledText : SIMPLENUM.test(compiledText) ? "" + (+compiledText + 1) : (compiled = to.compileToFragments(o, LEVEL_ACCESS), "+" + (fragmentsToText(compiled)) + " + 1 || 9e9"));
- }
- }
- return [this.makeCode(".slice(" + (fragmentsToText(fromCompiled)) + (toStr || '') + ")")];
- };
-
- return Slice;
-
- })(Base);
-
- exports.Obj = Obj = (function(_super) {
- __extends(Obj, _super);
-
- function Obj(props, generated) {
- this.generated = generated != null ? generated : false;
- this.objects = this.properties = props || [];
- }
-
- Obj.prototype.children = ['properties'];
-
- Obj.prototype.compileNode = function(o) {
- var answer, i, idt, indent, join, lastNoncom, node, prop, props, _i, _j, _len, _len1;
- props = this.properties;
- if (!props.length) {
- return [this.makeCode(this.front ? '({})' : '{}')];
- }
- if (this.generated) {
- for (_i = 0, _len = props.length; _i < _len; _i++) {
- node = props[_i];
- if (node instanceof Value) {
- node.error('cannot have an implicit value in an implicit object');
- }
- }
- }
- idt = o.indent += TAB;
- lastNoncom = this.lastNonComment(this.properties);
- answer = [];
- for (i = _j = 0, _len1 = props.length; _j < _len1; i = ++_j) {
- prop = props[i];
- join = i === props.length - 1 ? '' : prop === lastNoncom || prop instanceof Comment ? '\n' : ',\n';
- indent = prop instanceof Comment ? '' : idt;
- if (prop instanceof Assign && prop.variable instanceof Value && prop.variable.hasProperties()) {
- prop.variable.error('Invalid object key');
- }
- if (prop instanceof Value && prop["this"]) {
- prop = new Assign(prop.properties[0].name, prop, 'object');
- }
- if (!(prop instanceof Comment)) {
- if (!(prop instanceof Assign)) {
- prop = new Assign(prop, prop, 'object');
- }
- (prop.variable.base || prop.variable).asKey = true;
- }
- if (indent) {
- answer.push(this.makeCode(indent));
- }
- answer.push.apply(answer, prop.compileToFragments(o, LEVEL_TOP));
- if (join) {
- answer.push(this.makeCode(join));
- }
- }
- answer.unshift(this.makeCode("{" + (props.length && '\n')));
- answer.push(this.makeCode("" + (props.length && '\n' + this.tab) + "}"));
- if (this.front) {
- return this.wrapInBraces(answer);
- } else {
- return answer;
- }
- };
-
- Obj.prototype.assigns = function(name) {
- var prop, _i, _len, _ref4;
- _ref4 = this.properties;
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- prop = _ref4[_i];
- if (prop.assigns(name)) {
- return true;
- }
- }
- return false;
- };
-
- return Obj;
-
- })(Base);
-
- exports.Arr = Arr = (function(_super) {
- __extends(Arr, _super);
-
- function Arr(objs) {
- this.objects = objs || [];
- }
-
- Arr.prototype.children = ['objects'];
-
- Arr.prototype.compileNode = function(o) {
- var answer, compiledObjs, fragments, index, obj, _i, _len;
- if (!this.objects.length) {
- return [this.makeCode('[]')];
- }
- o.indent += TAB;
- answer = Splat.compileSplattedArray(o, this.objects);
- if (answer.length) {
- return answer;
- }
- answer = [];
- compiledObjs = (function() {
- var _i, _len, _ref4, _results;
- _ref4 = this.objects;
- _results = [];
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- obj = _ref4[_i];
- _results.push(obj.compileToFragments(o, LEVEL_LIST));
- }
- return _results;
- }).call(this);
- for (index = _i = 0, _len = compiledObjs.length; _i < _len; index = ++_i) {
- fragments = compiledObjs[index];
- if (index) {
- answer.push(this.makeCode(", "));
- }
- answer.push.apply(answer, fragments);
- }
- if (fragmentsToText(answer).indexOf('\n') >= 0) {
- answer.unshift(this.makeCode("[\n" + o.indent));
- answer.push(this.makeCode("\n" + this.tab + "]"));
- } else {
- answer.unshift(this.makeCode("["));
- answer.push(this.makeCode("]"));
- }
- return answer;
- };
-
- Arr.prototype.assigns = function(name) {
- var obj, _i, _len, _ref4;
- _ref4 = this.objects;
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- obj = _ref4[_i];
- if (obj.assigns(name)) {
- return true;
- }
- }
- return false;
- };
-
- return Arr;
-
- })(Base);
-
- exports.Class = Class = (function(_super) {
- __extends(Class, _super);
-
- function Class(variable, parent, body) {
- this.variable = variable;
- this.parent = parent;
- this.body = body != null ? body : new Block;
- this.boundFuncs = [];
- this.body.classBody = true;
- }
-
- Class.prototype.children = ['variable', 'parent', 'body'];
-
- Class.prototype.determineName = function() {
- var decl, tail;
- if (!this.variable) {
- return null;
- }
- decl = (tail = last(this.variable.properties)) ? tail instanceof Access && tail.name.value : this.variable.base.value;
- if (__indexOf.call(STRICT_PROSCRIBED, decl) >= 0) {
- this.variable.error("class variable name may not be " + decl);
- }
- return decl && (decl = IDENTIFIER.test(decl) && decl);
- };
-
- Class.prototype.setContext = function(name) {
- return this.body.traverseChildren(false, function(node) {
- if (node.classBody) {
- return false;
- }
- if (node instanceof Literal && node.value === 'this') {
- return node.value = name;
- } else if (node instanceof Code) {
- node.klass = name;
- if (node.bound) {
- return node.context = name;
- }
- }
- });
- };
-
- Class.prototype.addBoundFunctions = function(o) {
- var bvar, lhs, _i, _len, _ref4;
- _ref4 = this.boundFuncs;
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- bvar = _ref4[_i];
- lhs = (new Value(new Literal("this"), [new Access(bvar)])).compile(o);
- this.ctor.body.unshift(new Literal("" + lhs + " = " + (utility('bind')) + "(" + lhs + ", this)"));
- }
- };
-
- Class.prototype.addProperties = function(node, name, o) {
- var assign, base, exprs, func, props;
- props = node.base.properties.slice(0);
- exprs = (function() {
- var _results;
- _results = [];
- while (assign = props.shift()) {
- if (assign instanceof Assign) {
- base = assign.variable.base;
- delete assign.context;
- func = assign.value;
- if (base.value === 'constructor') {
- if (this.ctor) {
- assign.error('cannot define more than one constructor in a class');
- }
- if (func.bound) {
- assign.error('cannot define a constructor as a bound function');
- }
- if (func instanceof Code) {
- assign = this.ctor = func;
- } else {
- this.externalCtor = o.scope.freeVariable('class');
- assign = new Assign(new Literal(this.externalCtor), func);
- }
- } else {
- if (assign.variable["this"]) {
- func["static"] = true;
- if (func.bound) {
- func.context = name;
- }
- } else {
- assign.variable = new Value(new Literal(name), [new Access(new Literal('prototype')), new Access(base)]);
- if (func instanceof Code && func.bound) {
- this.boundFuncs.push(base);
- func.bound = false;
- }
- }
- }
- }
- _results.push(assign);
- }
- return _results;
- }).call(this);
- return compact(exprs);
- };
-
- Class.prototype.walkBody = function(name, o) {
- var _this = this;
- return this.traverseChildren(false, function(child) {
- var cont, exps, i, node, _i, _len, _ref4;
- cont = true;
- if (child instanceof Class) {
- return false;
- }
- if (child instanceof Block) {
- _ref4 = exps = child.expressions;
- for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) {
- node = _ref4[i];
- if (node instanceof Value && node.isObject(true)) {
- cont = false;
- exps[i] = _this.addProperties(node, name, o);
- }
- }
- child.expressions = exps = flatten(exps);
- }
- return cont && !(child instanceof Class);
- });
- };
-
- Class.prototype.hoistDirectivePrologue = function() {
- var expressions, index, node;
- index = 0;
- expressions = this.body.expressions;
- while ((node = expressions[index]) && node instanceof Comment || node instanceof Value && node.isString()) {
- ++index;
- }
- return this.directives = expressions.splice(0, index);
- };
-
- Class.prototype.ensureConstructor = function(name, o) {
- var missing, ref, superCall;
- missing = !this.ctor;
- this.ctor || (this.ctor = new Code);
- this.ctor.ctor = this.ctor.name = name;
- this.ctor.klass = null;
- this.ctor.noReturn = true;
- if (missing) {
- if (this.parent) {
- superCall = new Literal("" + name + ".__super__.constructor.apply(this, arguments)");
- }
- if (this.externalCtor) {
- superCall = new Literal("" + this.externalCtor + ".apply(this, arguments)");
- }
- if (superCall) {
- ref = new Literal(o.scope.freeVariable('ref'));
- this.ctor.body.unshift(new Assign(ref, superCall));
- }
- this.addBoundFunctions(o);
- if (superCall) {
- this.ctor.body.push(ref);
- this.ctor.body.makeReturn();
- }
- return this.body.expressions.unshift(this.ctor);
- } else {
- return this.addBoundFunctions(o);
- }
- };
-
- Class.prototype.compileNode = function(o) {
- var call, decl, klass, lname, name, params, _ref4;
- decl = this.determineName();
- name = decl || '_Class';
- if (name.reserved) {
- name = "_" + name;
- }
- lname = new Literal(name);
- this.hoistDirectivePrologue();
- this.setContext(name);
- this.walkBody(name, o);
- this.ensureConstructor(name, o);
- this.body.spaced = true;
- if (!(this.ctor instanceof Code)) {
- this.body.expressions.unshift(this.ctor);
- }
- this.body.expressions.push(lname);
- (_ref4 = this.body.expressions).unshift.apply(_ref4, this.directives);
- call = Closure.wrap(this.body);
- if (this.parent) {
- this.superClass = new Literal(o.scope.freeVariable('super', false));
- this.body.expressions.unshift(new Extends(lname, this.superClass));
- call.args.push(this.parent);
- params = call.variable.params || call.variable.base.params;
- params.push(new Param(this.superClass));
- }
- klass = new Parens(call, true);
- if (this.variable) {
- klass = new Assign(this.variable, klass);
- }
- return klass.compileToFragments(o);
- };
-
- return Class;
-
- })(Base);
-
- exports.Assign = Assign = (function(_super) {
- __extends(Assign, _super);
-
- function Assign(variable, value, context, options) {
- var forbidden, name, _ref4;
- this.variable = variable;
- this.value = value;
- this.context = context;
- this.param = options && options.param;
- this.subpattern = options && options.subpattern;
- forbidden = (_ref4 = (name = this.variable.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref4) >= 0);
- if (forbidden && this.context !== 'object') {
- this.variable.error("variable name may not be \"" + name + "\"");
- }
- }
-
- Assign.prototype.children = ['variable', 'value'];
-
- Assign.prototype.isStatement = function(o) {
- return (o != null ? o.level : void 0) === LEVEL_TOP && (this.context != null) && __indexOf.call(this.context, "?") >= 0;
- };
-
- Assign.prototype.assigns = function(name) {
- return this[this.context === 'object' ? 'value' : 'variable'].assigns(name);
- };
-
- Assign.prototype.unfoldSoak = function(o) {
- return unfoldSoak(o, this, 'variable');
- };
-
- Assign.prototype.compileNode = function(o) {
- var answer, compiledName, isValue, match, name, val, varBase, _ref4, _ref5, _ref6, _ref7;
- if (isValue = this.variable instanceof Value) {
- if (this.variable.isArray() || this.variable.isObject()) {
- return this.compilePatternMatch(o);
- }
- if (this.variable.isSplice()) {
- return this.compileSplice(o);
- }
- if ((_ref4 = this.context) === '||=' || _ref4 === '&&=' || _ref4 === '?=') {
- return this.compileConditional(o);
- }
- }
- compiledName = this.variable.compileToFragments(o, LEVEL_LIST);
- name = fragmentsToText(compiledName);
- if (!this.context) {
- varBase = this.variable.unwrapAll();
- if (!varBase.isAssignable()) {
- this.variable.error("\"" + (this.variable.compile(o)) + "\" cannot be assigned");
- }
- if (!(typeof varBase.hasProperties === "function" ? varBase.hasProperties() : void 0)) {
- if (this.param) {
- o.scope.add(name, 'var');
- } else {
- o.scope.find(name);
- }
- }
- }
- if (this.value instanceof Code && (match = METHOD_DEF.exec(name))) {
- if (match[1]) {
- this.value.klass = match[1];
- }
- this.value.name = (_ref5 = (_ref6 = (_ref7 = match[2]) != null ? _ref7 : match[3]) != null ? _ref6 : match[4]) != null ? _ref5 : match[5];
- }
- val = this.value.compileToFragments(o, LEVEL_LIST);
- if (this.context === 'object') {
- return compiledName.concat(this.makeCode(": "), val);
- }
- answer = compiledName.concat(this.makeCode(" " + (this.context || '=') + " "), val);
- if (o.level <= LEVEL_LIST) {
- return answer;
- } else {
- return this.wrapInBraces(answer);
- }
- };
-
- Assign.prototype.compilePatternMatch = function(o) {
- var acc, assigns, code, fragments, i, idx, isObject, ivar, name, obj, objects, olen, ref, rest, splat, top, val, value, vvar, vvarText, _i, _len, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
- top = o.level === LEVEL_TOP;
- value = this.value;
- objects = this.variable.base.objects;
- if (!(olen = objects.length)) {
- code = value.compileToFragments(o);
- if (o.level >= LEVEL_OP) {
- return this.wrapInBraces(code);
- } else {
- return code;
- }
- }
- isObject = this.variable.isObject();
- if (top && olen === 1 && !((obj = objects[0]) instanceof Splat)) {
- if (obj instanceof Assign) {
- _ref4 = obj, (_ref5 = _ref4.variable, idx = _ref5.base), obj = _ref4.value;
- } else {
- idx = isObject ? obj["this"] ? obj.properties[0].name : obj : new Literal(0);
- }
- acc = IDENTIFIER.test(idx.unwrap().value || 0);
- value = new Value(value);
- value.properties.push(new (acc ? Access : Index)(idx));
- if (_ref6 = obj.unwrap().value, __indexOf.call(RESERVED, _ref6) >= 0) {
- obj.error("assignment to a reserved word: " + (obj.compile(o)));
- }
- return new Assign(obj, value, null, {
- param: this.param
- }).compileToFragments(o, LEVEL_TOP);
- }
- vvar = value.compileToFragments(o, LEVEL_LIST);
- vvarText = fragmentsToText(vvar);
- assigns = [];
- splat = false;
- if (!IDENTIFIER.test(vvarText) || this.variable.assigns(vvarText)) {
- assigns.push([this.makeCode("" + (ref = o.scope.freeVariable('ref')) + " = ")].concat(__slice.call(vvar)));
- vvar = [this.makeCode(ref)];
- vvarText = ref;
- }
- for (i = _i = 0, _len = objects.length; _i < _len; i = ++_i) {
- obj = objects[i];
- idx = i;
- if (isObject) {
- if (obj instanceof Assign) {
- _ref7 = obj, (_ref8 = _ref7.variable, idx = _ref8.base), obj = _ref7.value;
- } else {
- if (obj.base instanceof Parens) {
- _ref9 = new Value(obj.unwrapAll()).cacheReference(o), obj = _ref9[0], idx = _ref9[1];
- } else {
- idx = obj["this"] ? obj.properties[0].name : obj;
- }
- }
- }
- if (!splat && obj instanceof Splat) {
- name = obj.name.unwrap().value;
- obj = obj.unwrap();
- val = "" + olen + " <= " + vvarText + ".length ? " + (utility('slice')) + ".call(" + vvarText + ", " + i;
- if (rest = olen - i - 1) {
- ivar = o.scope.freeVariable('i');
- val += ", " + ivar + " = " + vvarText + ".length - " + rest + ") : (" + ivar + " = " + i + ", [])";
- } else {
- val += ") : []";
- }
- val = new Literal(val);
- splat = "" + ivar + "++";
- } else {
- name = obj.unwrap().value;
- if (obj instanceof Splat) {
- obj.error("multiple splats are disallowed in an assignment");
- }
- if (typeof idx === 'number') {
- idx = new Literal(splat || idx);
- acc = false;
- } else {
- acc = isObject && IDENTIFIER.test(idx.unwrap().value || 0);
- }
- val = new Value(new Literal(vvarText), [new (acc ? Access : Index)(idx)]);
- }
- if ((name != null) && __indexOf.call(RESERVED, name) >= 0) {
- obj.error("assignment to a reserved word: " + (obj.compile(o)));
- }
- assigns.push(new Assign(obj, val, null, {
- param: this.param,
- subpattern: true
- }).compileToFragments(o, LEVEL_LIST));
- }
- if (!(top || this.subpattern)) {
- assigns.push(vvar);
- }
- fragments = this.joinFragmentArrays(assigns, ', ');
- if (o.level < LEVEL_LIST) {
- return fragments;
- } else {
- return this.wrapInBraces(fragments);
- }
- };
-
- Assign.prototype.compileConditional = function(o) {
- var left, right, _ref4;
- _ref4 = this.variable.cacheReference(o), left = _ref4[0], right = _ref4[1];
- if (!left.properties.length && left.base instanceof Literal && left.base.value !== "this" && !o.scope.check(left.base.value)) {
- this.variable.error("the variable \"" + left.base.value + "\" can't be assigned with " + this.context + " because it has not been declared before");
- }
- if (__indexOf.call(this.context, "?") >= 0) {
- o.isExistentialEquals = true;
- }
- return new Op(this.context.slice(0, -1), left, new Assign(right, this.value, '=')).compileToFragments(o);
- };
-
- Assign.prototype.compileSplice = function(o) {
- var answer, exclusive, from, fromDecl, fromRef, name, to, valDef, valRef, _ref4, _ref5, _ref6;
- _ref4 = this.variable.properties.pop().range, from = _ref4.from, to = _ref4.to, exclusive = _ref4.exclusive;
- name = this.variable.compile(o);
- if (from) {
- _ref5 = this.cacheToCodeFragments(from.cache(o, LEVEL_OP)), fromDecl = _ref5[0], fromRef = _ref5[1];
- } else {
- fromDecl = fromRef = '0';
- }
- if (to) {
- if ((from != null ? from.isSimpleNumber() : void 0) && to.isSimpleNumber()) {
- to = +to.compile(o) - +fromRef;
- if (!exclusive) {
- to += 1;
- }
- } else {
- to = to.compile(o, LEVEL_ACCESS) + ' - ' + fromRef;
- if (!exclusive) {
- to += ' + 1';
- }
- }
- } else {
- to = "9e9";
- }
- _ref6 = this.value.cache(o, LEVEL_LIST), valDef = _ref6[0], valRef = _ref6[1];
- answer = [].concat(this.makeCode("[].splice.apply(" + name + ", [" + fromDecl + ", " + to + "].concat("), valDef, this.makeCode(")), "), valRef);
- if (o.level > LEVEL_TOP) {
- return this.wrapInBraces(answer);
- } else {
- return answer;
- }
- };
-
- return Assign;
-
- })(Base);
-
- exports.Code = Code = (function(_super) {
- __extends(Code, _super);
-
- function Code(params, body, tag) {
- this.params = params || [];
- this.body = body || new Block;
- this.bound = tag === 'boundfunc';
- if (this.bound) {
- this.context = '_this';
- }
- }
-
- Code.prototype.children = ['params', 'body'];
-
- Code.prototype.isStatement = function() {
- return !!this.ctor;
- };
-
- Code.prototype.jumps = NO;
-
- Code.prototype.compileNode = function(o) {
- var answer, code, exprs, i, idt, lit, p, param, params, ref, splats, uniqs, val, wasEmpty, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m, _ref4, _ref5, _ref6, _ref7, _ref8;
- o.scope = new Scope(o.scope, this.body, this);
- o.scope.shared = del(o, 'sharedScope');
- o.indent += TAB;
- delete o.bare;
- delete o.isExistentialEquals;
- params = [];
- exprs = [];
- this.eachParamName(function(name) {
- if (!o.scope.check(name)) {
- return o.scope.parameter(name);
- }
- });
- _ref4 = this.params;
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- param = _ref4[_i];
- if (!param.splat) {
- continue;
- }
- _ref5 = this.params;
- for (_j = 0, _len1 = _ref5.length; _j < _len1; _j++) {
- p = _ref5[_j].name;
- if (p["this"]) {
- p = p.properties[0].name;
- }
- if (p.value) {
- o.scope.add(p.value, 'var', true);
- }
- }
- splats = new Assign(new Value(new Arr((function() {
- var _k, _len2, _ref6, _results;
- _ref6 = this.params;
- _results = [];
- for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) {
- p = _ref6[_k];
- _results.push(p.asReference(o));
- }
- return _results;
- }).call(this))), new Value(new Literal('arguments')));
- break;
- }
- _ref6 = this.params;
- for (_k = 0, _len2 = _ref6.length; _k < _len2; _k++) {
- param = _ref6[_k];
- if (param.isComplex()) {
- val = ref = param.asReference(o);
- if (param.value) {
- val = new Op('?', ref, param.value);
- }
- exprs.push(new Assign(new Value(param.name), val, '=', {
- param: true
- }));
- } else {
- ref = param;
- if (param.value) {
- lit = new Literal(ref.name.value + ' == null');
- val = new Assign(new Value(param.name), param.value, '=');
- exprs.push(new If(lit, val));
- }
- }
- if (!splats) {
- params.push(ref);
- }
- }
- wasEmpty = this.body.isEmpty();
- if (splats) {
- exprs.unshift(splats);
- }
- if (exprs.length) {
- (_ref7 = this.body.expressions).unshift.apply(_ref7, exprs);
- }
- for (i = _l = 0, _len3 = params.length; _l < _len3; i = ++_l) {
- p = params[i];
- params[i] = p.compileToFragments(o);
- o.scope.parameter(fragmentsToText(params[i]));
- }
- uniqs = [];
- this.eachParamName(function(name, node) {
- if (__indexOf.call(uniqs, name) >= 0) {
- node.error("multiple parameters named '" + name + "'");
- }
- return uniqs.push(name);
- });
- if (!(wasEmpty || this.noReturn)) {
- this.body.makeReturn();
- }
- if (this.bound) {
- if ((_ref8 = o.scope.parent.method) != null ? _ref8.bound : void 0) {
- this.bound = this.context = o.scope.parent.method.context;
- } else if (!this["static"]) {
- o.scope.parent.assign('_this', 'this');
- }
- }
- idt = o.indent;
- code = 'function';
- if (this.ctor) {
- code += ' ' + this.name;
- }
- code += '(';
- answer = [this.makeCode(code)];
- for (i = _m = 0, _len4 = params.length; _m < _len4; i = ++_m) {
- p = params[i];
- if (i) {
- answer.push(this.makeCode(", "));
- }
- answer.push.apply(answer, p);
- }
- answer.push(this.makeCode(') {'));
- if (!this.body.isEmpty()) {
- answer = answer.concat(this.makeCode("\n"), this.body.compileWithDeclarations(o), this.makeCode("\n" + this.tab));
- }
- answer.push(this.makeCode('}'));
- if (this.ctor) {
- return [this.makeCode(this.tab)].concat(__slice.call(answer));
- }
- if (this.front || (o.level >= LEVEL_ACCESS)) {
- return this.wrapInBraces(answer);
- } else {
- return answer;
- }
- };
-
- Code.prototype.eachParamName = function(iterator) {
- var param, _i, _len, _ref4, _results;
- _ref4 = this.params;
- _results = [];
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- param = _ref4[_i];
- _results.push(param.eachName(iterator));
- }
- return _results;
- };
-
- Code.prototype.traverseChildren = function(crossScope, func) {
- if (crossScope) {
- return Code.__super__.traverseChildren.call(this, crossScope, func);
- }
- };
-
- return Code;
-
- })(Base);
-
- exports.Param = Param = (function(_super) {
- __extends(Param, _super);
-
- function Param(name, value, splat) {
- var _ref4;
- this.name = name;
- this.value = value;
- this.splat = splat;
- if (_ref4 = (name = this.name.unwrapAll().value), __indexOf.call(STRICT_PROSCRIBED, _ref4) >= 0) {
- this.name.error("parameter name \"" + name + "\" is not allowed");
- }
- }
-
- Param.prototype.children = ['name', 'value'];
-
- Param.prototype.compileToFragments = function(o) {
- return this.name.compileToFragments(o, LEVEL_LIST);
- };
-
- Param.prototype.asReference = function(o) {
- var node;
- if (this.reference) {
- return this.reference;
- }
- node = this.name;
- if (node["this"]) {
- node = node.properties[0].name;
- if (node.value.reserved) {
- node = new Literal(o.scope.freeVariable(node.value));
- }
- } else if (node.isComplex()) {
- node = new Literal(o.scope.freeVariable('arg'));
- }
- node = new Value(node);
- if (this.splat) {
- node = new Splat(node);
- }
- return this.reference = node;
- };
-
- Param.prototype.isComplex = function() {
- return this.name.isComplex();
- };
-
- Param.prototype.eachName = function(iterator, name) {
- var atParam, node, obj, _i, _len, _ref4;
- if (name == null) {
- name = this.name;
- }
- atParam = function(obj) {
- var node;
- node = obj.properties[0].name;
- if (!node.value.reserved) {
- return iterator(node.value, node);
- }
- };
- if (name instanceof Literal) {
- return iterator(name.value, name);
- }
- if (name instanceof Value) {
- return atParam(name);
- }
- _ref4 = name.objects;
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- obj = _ref4[_i];
- if (obj instanceof Assign) {
- this.eachName(iterator, obj.value.unwrap());
- } else if (obj instanceof Splat) {
- node = obj.name.unwrap();
- iterator(node.value, node);
- } else if (obj instanceof Value) {
- if (obj.isArray() || obj.isObject()) {
- this.eachName(iterator, obj.base);
- } else if (obj["this"]) {
- atParam(obj);
- } else {
- iterator(obj.base.value, obj.base);
- }
- } else {
- obj.error("illegal parameter " + (obj.compile()));
- }
- }
- };
-
- return Param;
-
- })(Base);
-
- exports.Splat = Splat = (function(_super) {
- __extends(Splat, _super);
-
- Splat.prototype.children = ['name'];
-
- Splat.prototype.isAssignable = YES;
-
- function Splat(name) {
- this.name = name.compile ? name : new Literal(name);
- }
-
- Splat.prototype.assigns = function(name) {
- return this.name.assigns(name);
- };
-
- Splat.prototype.compileToFragments = function(o) {
- return this.name.compileToFragments(o);
- };
-
- Splat.prototype.unwrap = function() {
- return this.name;
- };
-
- Splat.compileSplattedArray = function(o, list, apply) {
- var args, base, compiledNode, concatPart, fragments, i, index, node, _i, _len;
- index = -1;
- while ((node = list[++index]) && !(node instanceof Splat)) {
- continue;
- }
- if (index >= list.length) {
- return [];
- }
- if (list.length === 1) {
- node = list[0];
- fragments = node.compileToFragments(o, LEVEL_LIST);
- if (apply) {
- return fragments;
- }
- return [].concat(node.makeCode("" + (utility('slice')) + ".call("), fragments, node.makeCode(")"));
- }
- args = list.slice(index);
- for (i = _i = 0, _len = args.length; _i < _len; i = ++_i) {
- node = args[i];
- compiledNode = node.compileToFragments(o, LEVEL_LIST);
- args[i] = node instanceof Splat ? [].concat(node.makeCode("" + (utility('slice')) + ".call("), compiledNode, node.makeCode(")")) : [].concat(node.makeCode("["), compiledNode, node.makeCode("]"));
- }
- if (index === 0) {
- node = list[0];
- concatPart = node.joinFragmentArrays(args.slice(1), ', ');
- return args[0].concat(node.makeCode(".concat("), concatPart, node.makeCode(")"));
- }
- base = (function() {
- var _j, _len1, _ref4, _results;
- _ref4 = list.slice(0, index);
- _results = [];
- for (_j = 0, _len1 = _ref4.length; _j < _len1; _j++) {
- node = _ref4[_j];
- _results.push(node.compileToFragments(o, LEVEL_LIST));
- }
- return _results;
- })();
- base = list[0].joinFragmentArrays(base, ', ');
- concatPart = list[index].joinFragmentArrays(args, ', ');
- return [].concat(list[0].makeCode("["), base, list[index].makeCode("].concat("), concatPart, (last(list)).makeCode(")"));
- };
-
- return Splat;
-
- })(Base);
-
- exports.While = While = (function(_super) {
- __extends(While, _super);
-
- function While(condition, options) {
- this.condition = (options != null ? options.invert : void 0) ? condition.invert() : condition;
- this.guard = options != null ? options.guard : void 0;
- }
-
- While.prototype.children = ['condition', 'guard', 'body'];
-
- While.prototype.isStatement = YES;
-
- While.prototype.makeReturn = function(res) {
- if (res) {
- return While.__super__.makeReturn.apply(this, arguments);
- } else {
- this.returns = !this.jumps({
- loop: true
- });
- return this;
- }
- };
-
- While.prototype.addBody = function(body) {
- this.body = body;
- return this;
- };
-
- While.prototype.jumps = function() {
- var expressions, node, _i, _len;
- expressions = this.body.expressions;
- if (!expressions.length) {
- return false;
- }
- for (_i = 0, _len = expressions.length; _i < _len; _i++) {
- node = expressions[_i];
- if (node.jumps({
- loop: true
- })) {
- return node;
- }
- }
- return false;
- };
-
- While.prototype.compileNode = function(o) {
- var answer, body, rvar, set;
- o.indent += TAB;
- set = '';
- body = this.body;
- if (body.isEmpty()) {
- body = this.makeCode('');
- } else {
- if (this.returns) {
- body.makeReturn(rvar = o.scope.freeVariable('results'));
- set = "" + this.tab + rvar + " = [];\n";
- }
- if (this.guard) {
- if (body.expressions.length > 1) {
- body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
- } else {
- if (this.guard) {
- body = Block.wrap([new If(this.guard, body)]);
- }
- }
- }
- body = [].concat(this.makeCode("\n"), body.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab));
- }
- answer = [].concat(this.makeCode(set + this.tab + "while ("), this.condition.compileToFragments(o, LEVEL_PAREN), this.makeCode(") {"), body, this.makeCode("}"));
- if (this.returns) {
- answer.push(this.makeCode("\n" + this.tab + "return " + rvar + ";"));
- }
- return answer;
- };
-
- return While;
-
- })(Base);
-
- exports.Op = Op = (function(_super) {
- var CONVERSIONS, INVERSIONS;
-
- __extends(Op, _super);
-
- function Op(op, first, second, flip) {
- if (op === 'in') {
- return new In(first, second);
- }
- if (op === 'do') {
- return this.generateDo(first);
- }
- if (op === 'new') {
- if (first instanceof Call && !first["do"] && !first.isNew) {
- return first.newInstance();
- }
- if (first instanceof Code && first.bound || first["do"]) {
- first = new Parens(first);
- }
- }
- this.operator = CONVERSIONS[op] || op;
- this.first = first;
- this.second = second;
- this.flip = !!flip;
- return this;
- }
-
- CONVERSIONS = {
- '==': '===',
- '!=': '!==',
- 'of': 'in'
- };
-
- INVERSIONS = {
- '!==': '===',
- '===': '!=='
- };
-
- Op.prototype.children = ['first', 'second'];
-
- Op.prototype.isSimpleNumber = NO;
-
- Op.prototype.isUnary = function() {
- return !this.second;
- };
-
- Op.prototype.isComplex = function() {
- var _ref4;
- return !(this.isUnary() && ((_ref4 = this.operator) === '+' || _ref4 === '-')) || this.first.isComplex();
- };
-
- Op.prototype.isChainable = function() {
- var _ref4;
- return (_ref4 = this.operator) === '<' || _ref4 === '>' || _ref4 === '>=' || _ref4 === '<=' || _ref4 === '===' || _ref4 === '!==';
- };
-
- Op.prototype.invert = function() {
- var allInvertable, curr, fst, op, _ref4;
- if (this.isChainable() && this.first.isChainable()) {
- allInvertable = true;
- curr = this;
- while (curr && curr.operator) {
- allInvertable && (allInvertable = curr.operator in INVERSIONS);
- curr = curr.first;
- }
- if (!allInvertable) {
- return new Parens(this).invert();
- }
- curr = this;
- while (curr && curr.operator) {
- curr.invert = !curr.invert;
- curr.operator = INVERSIONS[curr.operator];
- curr = curr.first;
- }
- return this;
- } else if (op = INVERSIONS[this.operator]) {
- this.operator = op;
- if (this.first.unwrap() instanceof Op) {
- this.first.invert();
- }
- return this;
- } else if (this.second) {
- return new Parens(this).invert();
- } else if (this.operator === '!' && (fst = this.first.unwrap()) instanceof Op && ((_ref4 = fst.operator) === '!' || _ref4 === 'in' || _ref4 === 'instanceof')) {
- return fst;
- } else {
- return new Op('!', this);
- }
- };
-
- Op.prototype.unfoldSoak = function(o) {
- var _ref4;
- return ((_ref4 = this.operator) === '++' || _ref4 === '--' || _ref4 === 'delete') && unfoldSoak(o, this, 'first');
- };
-
- Op.prototype.generateDo = function(exp) {
- var call, func, param, passedParams, ref, _i, _len, _ref4;
- passedParams = [];
- func = exp instanceof Assign && (ref = exp.value.unwrap()) instanceof Code ? ref : exp;
- _ref4 = func.params || [];
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- param = _ref4[_i];
- if (param.value) {
- passedParams.push(param.value);
- delete param.value;
- } else {
- passedParams.push(param);
- }
- }
- call = new Call(exp, passedParams);
- call["do"] = true;
- return call;
- };
-
- Op.prototype.compileNode = function(o) {
- var answer, isChain, _ref4, _ref5;
- isChain = this.isChainable() && this.first.isChainable();
- if (!isChain) {
- this.first.front = this.front;
- }
- if (this.operator === 'delete' && o.scope.check(this.first.unwrapAll().value)) {
- this.error('delete operand may not be argument or var');
- }
- if (((_ref4 = this.operator) === '--' || _ref4 === '++') && (_ref5 = this.first.unwrapAll().value, __indexOf.call(STRICT_PROSCRIBED, _ref5) >= 0)) {
- this.error("cannot increment/decrement \"" + (this.first.unwrapAll().value) + "\"");
- }
- if (this.isUnary()) {
- return this.compileUnary(o);
- }
- if (isChain) {
- return this.compileChain(o);
- }
- if (this.operator === '?') {
- return this.compileExistence(o);
- }
- answer = [].concat(this.first.compileToFragments(o, LEVEL_OP), this.makeCode(' ' + this.operator + ' '), this.second.compileToFragments(o, LEVEL_OP));
- if (o.level <= LEVEL_OP) {
- return answer;
- } else {
- return this.wrapInBraces(answer);
- }
- };
-
- Op.prototype.compileChain = function(o) {
- var fragments, fst, shared, _ref4;
- _ref4 = this.first.second.cache(o), this.first.second = _ref4[0], shared = _ref4[1];
- fst = this.first.compileToFragments(o, LEVEL_OP);
- fragments = fst.concat(this.makeCode(" " + (this.invert ? '&&' : '||') + " "), shared.compileToFragments(o), this.makeCode(" " + this.operator + " "), this.second.compileToFragments(o, LEVEL_OP));
- return this.wrapInBraces(fragments);
- };
-
- Op.prototype.compileExistence = function(o) {
- var fst, ref;
- if (!o.isExistentialEquals && this.first.isComplex()) {
- ref = new Literal(o.scope.freeVariable('ref'));
- fst = new Parens(new Assign(ref, this.first));
- } else {
- fst = this.first;
- ref = fst;
- }
- return new If(new Existence(fst), ref, {
- type: 'if'
- }).addElse(this.second).compileToFragments(o);
- };
-
- Op.prototype.compileUnary = function(o) {
- var op, parts, plusMinus;
- parts = [];
- op = this.operator;
- parts.push([this.makeCode(op)]);
- if (op === '!' && this.first instanceof Existence) {
- this.first.negated = !this.first.negated;
- return this.first.compileToFragments(o);
- }
- if (o.level >= LEVEL_ACCESS) {
- return (new Parens(this)).compileToFragments(o);
- }
- plusMinus = op === '+' || op === '-';
- if ((op === 'new' || op === 'typeof' || op === 'delete') || plusMinus && this.first instanceof Op && this.first.operator === op) {
- parts.push([this.makeCode(' ')]);
- }
- if ((plusMinus && this.first instanceof Op) || (op === 'new' && this.first.isStatement(o))) {
- this.first = new Parens(this.first);
- }
- parts.push(this.first.compileToFragments(o, LEVEL_OP));
- if (this.flip) {
- parts.reverse();
- }
- return this.joinFragmentArrays(parts, '');
- };
-
- Op.prototype.toString = function(idt) {
- return Op.__super__.toString.call(this, idt, this.constructor.name + ' ' + this.operator);
- };
-
- return Op;
-
- })(Base);
-
- exports.In = In = (function(_super) {
- __extends(In, _super);
-
- function In(object, array) {
- this.object = object;
- this.array = array;
- }
-
- In.prototype.children = ['object', 'array'];
-
- In.prototype.invert = NEGATE;
-
- In.prototype.compileNode = function(o) {
- var hasSplat, obj, _i, _len, _ref4;
- if (this.array instanceof Value && this.array.isArray()) {
- _ref4 = this.array.base.objects;
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- obj = _ref4[_i];
- if (!(obj instanceof Splat)) {
- continue;
- }
- hasSplat = true;
- break;
- }
- if (!hasSplat) {
- return this.compileOrTest(o);
- }
- }
- return this.compileLoopTest(o);
- };
-
- In.prototype.compileOrTest = function(o) {
- var cmp, cnj, i, item, ref, sub, tests, _i, _len, _ref4, _ref5, _ref6;
- if (this.array.base.objects.length === 0) {
- return [this.makeCode("" + (!!this.negated))];
- }
- _ref4 = this.object.cache(o, LEVEL_OP), sub = _ref4[0], ref = _ref4[1];
- _ref5 = this.negated ? [' !== ', ' && '] : [' === ', ' || '], cmp = _ref5[0], cnj = _ref5[1];
- tests = [];
- _ref6 = this.array.base.objects;
- for (i = _i = 0, _len = _ref6.length; _i < _len; i = ++_i) {
- item = _ref6[i];
- if (i) {
- tests.push(this.makeCode(cnj));
- }
- tests = tests.concat((i ? ref : sub), this.makeCode(cmp), item.compileToFragments(o, LEVEL_ACCESS));
- }
- if (o.level < LEVEL_OP) {
- return tests;
- } else {
- return this.wrapInBraces(tests);
- }
- };
-
- In.prototype.compileLoopTest = function(o) {
- var fragments, ref, sub, _ref4;
- _ref4 = this.object.cache(o, LEVEL_LIST), sub = _ref4[0], ref = _ref4[1];
- fragments = [].concat(this.makeCode(utility('indexOf') + ".call("), this.array.compileToFragments(o, LEVEL_LIST), this.makeCode(", "), ref, this.makeCode(") " + (this.negated ? '< 0' : '>= 0')));
- if (fragmentsToText(sub) === fragmentsToText(ref)) {
- return fragments;
- }
- fragments = sub.concat(this.makeCode(', '), fragments);
- if (o.level < LEVEL_LIST) {
- return fragments;
- } else {
- return this.wrapInBraces(fragments);
- }
- };
-
- In.prototype.toString = function(idt) {
- return In.__super__.toString.call(this, idt, this.constructor.name + (this.negated ? '!' : ''));
- };
-
- return In;
-
- })(Base);
-
- exports.Try = Try = (function(_super) {
- __extends(Try, _super);
-
- function Try(attempt, errorVariable, recovery, ensure) {
- this.attempt = attempt;
- this.errorVariable = errorVariable;
- this.recovery = recovery;
- this.ensure = ensure;
- }
-
- Try.prototype.children = ['attempt', 'recovery', 'ensure'];
-
- Try.prototype.isStatement = YES;
-
- Try.prototype.jumps = function(o) {
- var _ref4;
- return this.attempt.jumps(o) || ((_ref4 = this.recovery) != null ? _ref4.jumps(o) : void 0);
- };
-
- Try.prototype.makeReturn = function(res) {
- if (this.attempt) {
- this.attempt = this.attempt.makeReturn(res);
- }
- if (this.recovery) {
- this.recovery = this.recovery.makeReturn(res);
- }
- return this;
- };
-
- Try.prototype.compileNode = function(o) {
- var catchPart, ensurePart, placeholder, tryPart;
- o.indent += TAB;
- tryPart = this.attempt.compileToFragments(o, LEVEL_TOP);
- catchPart = this.recovery ? (placeholder = new Literal('_error'), this.errorVariable ? this.recovery.unshift(new Assign(this.errorVariable, placeholder)) : void 0, [].concat(this.makeCode(" catch ("), placeholder.compileToFragments(o), this.makeCode(") {\n"), this.recovery.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}"))) : !(this.ensure || this.recovery) ? [this.makeCode(' catch (_error) {}')] : [];
- ensurePart = this.ensure ? [].concat(this.makeCode(" finally {\n"), this.ensure.compileToFragments(o, LEVEL_TOP), this.makeCode("\n" + this.tab + "}")) : [];
- return [].concat(this.makeCode("" + this.tab + "try {\n"), tryPart, this.makeCode("\n" + this.tab + "}"), catchPart, ensurePart);
- };
-
- return Try;
-
- })(Base);
-
- exports.Throw = Throw = (function(_super) {
- __extends(Throw, _super);
-
- function Throw(expression) {
- this.expression = expression;
- }
-
- Throw.prototype.children = ['expression'];
-
- Throw.prototype.isStatement = YES;
-
- Throw.prototype.jumps = NO;
-
- Throw.prototype.makeReturn = THIS;
-
- Throw.prototype.compileNode = function(o) {
- return [].concat(this.makeCode(this.tab + "throw "), this.expression.compileToFragments(o), this.makeCode(";"));
- };
-
- return Throw;
-
- })(Base);
-
- exports.Existence = Existence = (function(_super) {
- __extends(Existence, _super);
-
- function Existence(expression) {
- this.expression = expression;
- }
-
- Existence.prototype.children = ['expression'];
-
- Existence.prototype.invert = NEGATE;
-
- Existence.prototype.compileNode = function(o) {
- var cmp, cnj, code, _ref4;
- this.expression.front = this.front;
- code = this.expression.compile(o, LEVEL_OP);
- if (IDENTIFIER.test(code) && !o.scope.check(code)) {
- _ref4 = this.negated ? ['===', '||'] : ['!==', '&&'], cmp = _ref4[0], cnj = _ref4[1];
- code = "typeof " + code + " " + cmp + " \"undefined\" " + cnj + " " + code + " " + cmp + " null";
- } else {
- code = "" + code + " " + (this.negated ? '==' : '!=') + " null";
- }
- return [this.makeCode(o.level <= LEVEL_COND ? code : "(" + code + ")")];
- };
-
- return Existence;
-
- })(Base);
-
- exports.Parens = Parens = (function(_super) {
- __extends(Parens, _super);
-
- function Parens(body) {
- this.body = body;
- }
-
- Parens.prototype.children = ['body'];
-
- Parens.prototype.unwrap = function() {
- return this.body;
- };
-
- Parens.prototype.isComplex = function() {
- return this.body.isComplex();
- };
-
- Parens.prototype.compileNode = function(o) {
- var bare, expr, fragments;
- expr = this.body.unwrap();
- if (expr instanceof Value && expr.isAtomic()) {
- expr.front = this.front;
- return expr.compileToFragments(o);
- }
- fragments = expr.compileToFragments(o, LEVEL_PAREN);
- bare = o.level < LEVEL_OP && (expr instanceof Op || expr instanceof Call || (expr instanceof For && expr.returns));
- if (bare) {
- return fragments;
- } else {
- return this.wrapInBraces(fragments);
- }
- };
-
- return Parens;
-
- })(Base);
-
- exports.For = For = (function(_super) {
- __extends(For, _super);
-
- function For(body, source) {
- var _ref4;
- this.source = source.source, this.guard = source.guard, this.step = source.step, this.name = source.name, this.index = source.index;
- this.body = Block.wrap([body]);
- this.own = !!source.own;
- this.object = !!source.object;
- if (this.object) {
- _ref4 = [this.index, this.name], this.name = _ref4[0], this.index = _ref4[1];
- }
- if (this.index instanceof Value) {
- this.index.error('index cannot be a pattern matching expression');
- }
- this.range = this.source instanceof Value && this.source.base instanceof Range && !this.source.properties.length;
- this.pattern = this.name instanceof Value;
- if (this.range && this.index) {
- this.index.error('indexes do not apply to range loops');
- }
- if (this.range && this.pattern) {
- this.name.error('cannot pattern match over range loops');
- }
- if (this.own && !this.object) {
- this.index.error('cannot use own with for-in');
- }
- this.returns = false;
- }
-
- For.prototype.children = ['body', 'source', 'guard', 'step'];
-
- For.prototype.compileNode = function(o) {
- var body, bodyFragments, compare, compareDown, declare, declareDown, defPart, defPartFragments, down, forPartFragments, guardPart, idt1, increment, index, ivar, kvar, kvarAssign, lastJumps, lvar, name, namePart, ref, resultPart, returnResult, rvar, scope, source, step, stepNum, stepVar, svar, varPart, _ref4, _ref5;
- body = Block.wrap([this.body]);
- lastJumps = (_ref4 = last(body.expressions)) != null ? _ref4.jumps() : void 0;
- if (lastJumps && lastJumps instanceof Return) {
- this.returns = false;
- }
- source = this.range ? this.source.base : this.source;
- scope = o.scope;
- name = this.name && (this.name.compile(o, LEVEL_LIST));
- index = this.index && (this.index.compile(o, LEVEL_LIST));
- if (name && !this.pattern) {
- scope.find(name);
- }
- if (index) {
- scope.find(index);
- }
- if (this.returns) {
- rvar = scope.freeVariable('results');
- }
- ivar = (this.object && index) || scope.freeVariable('i');
- kvar = (this.range && name) || index || ivar;
- kvarAssign = kvar !== ivar ? "" + kvar + " = " : "";
- if (this.step && !this.range) {
- _ref5 = this.cacheToCodeFragments(this.step.cache(o, LEVEL_LIST)), step = _ref5[0], stepVar = _ref5[1];
- stepNum = stepVar.match(SIMPLENUM);
- }
- if (this.pattern) {
- name = ivar;
- }
- varPart = '';
- guardPart = '';
- defPart = '';
- idt1 = this.tab + TAB;
- if (this.range) {
- forPartFragments = source.compileToFragments(merge(o, {
- index: ivar,
- name: name,
- step: this.step
- }));
- } else {
- svar = this.source.compile(o, LEVEL_LIST);
- if ((name || this.own) && !IDENTIFIER.test(svar)) {
- defPart += "" + this.tab + (ref = scope.freeVariable('ref')) + " = " + svar + ";\n";
- svar = ref;
- }
- if (name && !this.pattern) {
- namePart = "" + name + " = " + svar + "[" + kvar + "]";
- }
- if (!this.object) {
- if (step !== stepVar) {
- defPart += "" + this.tab + step + ";\n";
- }
- if (!(this.step && stepNum && (down = +stepNum < 0))) {
- lvar = scope.freeVariable('len');
- }
- declare = "" + kvarAssign + ivar + " = 0, " + lvar + " = " + svar + ".length";
- declareDown = "" + kvarAssign + ivar + " = " + svar + ".length - 1";
- compare = "" + ivar + " < " + lvar;
- compareDown = "" + ivar + " >= 0";
- if (this.step) {
- if (stepNum) {
- if (down) {
- compare = compareDown;
- declare = declareDown;
- }
- } else {
- compare = "" + stepVar + " > 0 ? " + compare + " : " + compareDown;
- declare = "(" + stepVar + " > 0 ? (" + declare + ") : " + declareDown + ")";
- }
- increment = "" + ivar + " += " + stepVar;
- } else {
- increment = "" + (kvar !== ivar ? "++" + ivar : "" + ivar + "++");
- }
- forPartFragments = [this.makeCode("" + declare + "; " + compare + "; " + kvarAssign + increment)];
- }
- }
- if (this.returns) {
- resultPart = "" + this.tab + rvar + " = [];\n";
- returnResult = "\n" + this.tab + "return " + rvar + ";";
- body.makeReturn(rvar);
- }
- if (this.guard) {
- if (body.expressions.length > 1) {
- body.expressions.unshift(new If((new Parens(this.guard)).invert(), new Literal("continue")));
- } else {
- if (this.guard) {
- body = Block.wrap([new If(this.guard, body)]);
- }
- }
- }
- if (this.pattern) {
- body.expressions.unshift(new Assign(this.name, new Literal("" + svar + "[" + kvar + "]")));
- }
- defPartFragments = [].concat(this.makeCode(defPart), this.pluckDirectCall(o, body));
- if (namePart) {
- varPart = "\n" + idt1 + namePart + ";";
- }
- if (this.object) {
- forPartFragments = [this.makeCode("" + kvar + " in " + svar)];
- if (this.own) {
- guardPart = "\n" + idt1 + "if (!" + (utility('hasProp')) + ".call(" + svar + ", " + kvar + ")) continue;";
- }
- }
- bodyFragments = body.compileToFragments(merge(o, {
- indent: idt1
- }), LEVEL_TOP);
- if (bodyFragments && (bodyFragments.length > 0)) {
- bodyFragments = [].concat(this.makeCode("\n"), bodyFragments, this.makeCode("\n"));
- }
- return [].concat(defPartFragments, this.makeCode("" + (resultPart || '') + this.tab + "for ("), forPartFragments, this.makeCode(") {" + guardPart + varPart), bodyFragments, this.makeCode("" + this.tab + "}" + (returnResult || '')));
- };
-
- For.prototype.pluckDirectCall = function(o, body) {
- var base, defs, expr, fn, idx, ref, val, _i, _len, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
- defs = [];
- _ref4 = body.expressions;
- for (idx = _i = 0, _len = _ref4.length; _i < _len; idx = ++_i) {
- expr = _ref4[idx];
- expr = expr.unwrapAll();
- if (!(expr instanceof Call)) {
- continue;
- }
- val = expr.variable.unwrapAll();
- if (!((val instanceof Code) || (val instanceof Value && ((_ref5 = val.base) != null ? _ref5.unwrapAll() : void 0) instanceof Code && val.properties.length === 1 && ((_ref6 = (_ref7 = val.properties[0].name) != null ? _ref7.value : void 0) === 'call' || _ref6 === 'apply')))) {
- continue;
- }
- fn = ((_ref8 = val.base) != null ? _ref8.unwrapAll() : void 0) || val;
- ref = new Literal(o.scope.freeVariable('fn'));
- base = new Value(ref);
- if (val.base) {
- _ref9 = [base, val], val.base = _ref9[0], base = _ref9[1];
- }
- body.expressions[idx] = new Call(base, expr.args);
- defs = defs.concat(this.makeCode(this.tab), new Assign(ref, fn).compileToFragments(o, LEVEL_TOP), this.makeCode(';\n'));
- }
- return defs;
- };
-
- return For;
-
- })(While);
-
- exports.Switch = Switch = (function(_super) {
- __extends(Switch, _super);
-
- function Switch(subject, cases, otherwise) {
- this.subject = subject;
- this.cases = cases;
- this.otherwise = otherwise;
- }
-
- Switch.prototype.children = ['subject', 'cases', 'otherwise'];
-
- Switch.prototype.isStatement = YES;
-
- Switch.prototype.jumps = function(o) {
- var block, conds, _i, _len, _ref4, _ref5, _ref6;
- if (o == null) {
- o = {
- block: true
- };
- }
- _ref4 = this.cases;
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- _ref5 = _ref4[_i], conds = _ref5[0], block = _ref5[1];
- if (block.jumps(o)) {
- return block;
- }
- }
- return (_ref6 = this.otherwise) != null ? _ref6.jumps(o) : void 0;
- };
-
- Switch.prototype.makeReturn = function(res) {
- var pair, _i, _len, _ref4, _ref5;
- _ref4 = this.cases;
- for (_i = 0, _len = _ref4.length; _i < _len; _i++) {
- pair = _ref4[_i];
- pair[1].makeReturn(res);
- }
- if (res) {
- this.otherwise || (this.otherwise = new Block([new Literal('void 0')]));
- }
- if ((_ref5 = this.otherwise) != null) {
- _ref5.makeReturn(res);
- }
- return this;
- };
-
- Switch.prototype.compileNode = function(o) {
- var block, body, cond, conditions, expr, fragments, i, idt1, idt2, _i, _j, _len, _len1, _ref4, _ref5, _ref6;
- idt1 = o.indent + TAB;
- idt2 = o.indent = idt1 + TAB;
- fragments = [].concat(this.makeCode(this.tab + "switch ("), (this.subject ? this.subject.compileToFragments(o, LEVEL_PAREN) : this.makeCode("false")), this.makeCode(") {\n"));
- _ref4 = this.cases;
- for (i = _i = 0, _len = _ref4.length; _i < _len; i = ++_i) {
- _ref5 = _ref4[i], conditions = _ref5[0], block = _ref5[1];
- _ref6 = flatten([conditions]);
- for (_j = 0, _len1 = _ref6.length; _j < _len1; _j++) {
- cond = _ref6[_j];
- if (!this.subject) {
- cond = cond.invert();
- }
- fragments = fragments.concat(this.makeCode(idt1 + "case "), cond.compileToFragments(o, LEVEL_PAREN), this.makeCode(":\n"));
- }
- if ((body = block.compileToFragments(o, LEVEL_TOP)).length > 0) {
- fragments = fragments.concat(body, this.makeCode('\n'));
- }
- if (i === this.cases.length - 1 && !this.otherwise) {
- break;
- }
- expr = this.lastNonComment(block.expressions);
- if (expr instanceof Return || (expr instanceof Literal && expr.jumps() && expr.value !== 'debugger')) {
- continue;
- }
- fragments.push(cond.makeCode(idt2 + 'break;\n'));
- }
- if (this.otherwise && this.otherwise.expressions.length) {
- fragments.push.apply(fragments, [this.makeCode(idt1 + "default:\n")].concat(__slice.call(this.otherwise.compileToFragments(o, LEVEL_TOP)), [this.makeCode("\n")]));
- }
- fragments.push(this.makeCode(this.tab + '}'));
- return fragments;
- };
-
- return Switch;
-
- })(Base);
-
- exports.If = If = (function(_super) {
- __extends(If, _super);
-
- function If(condition, body, options) {
- this.body = body;
- if (options == null) {
- options = {};
- }
- this.condition = options.type === 'unless' ? condition.invert() : condition;
- this.elseBody = null;
- this.isChain = false;
- this.soak = options.soak;
- }
-
- If.prototype.children = ['condition', 'body', 'elseBody'];
-
- If.prototype.bodyNode = function() {
- var _ref4;
- return (_ref4 = this.body) != null ? _ref4.unwrap() : void 0;
- };
-
- If.prototype.elseBodyNode = function() {
- var _ref4;
- return (_ref4 = this.elseBody) != null ? _ref4.unwrap() : void 0;
- };
-
- If.prototype.addElse = function(elseBody) {
- if (this.isChain) {
- this.elseBodyNode().addElse(elseBody);
- } else {
- this.isChain = elseBody instanceof If;
- this.elseBody = this.ensureBlock(elseBody);
- }
- return this;
- };
-
- If.prototype.isStatement = function(o) {
- var _ref4;
- return (o != null ? o.level : void 0) === LEVEL_TOP || this.bodyNode().isStatement(o) || ((_ref4 = this.elseBodyNode()) != null ? _ref4.isStatement(o) : void 0);
- };
-
- If.prototype.jumps = function(o) {
- var _ref4;
- return this.body.jumps(o) || ((_ref4 = this.elseBody) != null ? _ref4.jumps(o) : void 0);
- };
-
- If.prototype.compileNode = function(o) {
- if (this.isStatement(o)) {
- return this.compileStatement(o);
- } else {
- return this.compileExpression(o);
- }
- };
-
- If.prototype.makeReturn = function(res) {
- if (res) {
- this.elseBody || (this.elseBody = new Block([new Literal('void 0')]));
- }
- this.body && (this.body = new Block([this.body.makeReturn(res)]));
- this.elseBody && (this.elseBody = new Block([this.elseBody.makeReturn(res)]));
- return this;
- };
-
- If.prototype.ensureBlock = function(node) {
- if (node instanceof Block) {
- return node;
- } else {
- return new Block([node]);
- }
- };
-
- If.prototype.compileStatement = function(o) {
- var answer, body, child, cond, exeq, ifPart, indent;
- child = del(o, 'chainChild');
- exeq = del(o, 'isExistentialEquals');
- if (exeq) {
- return new If(this.condition.invert(), this.elseBodyNode(), {
- type: 'if'
- }).compileToFragments(o);
- }
- indent = o.indent + TAB;
- cond = this.condition.compileToFragments(o, LEVEL_PAREN);
- body = this.ensureBlock(this.body).compileToFragments(merge(o, {
- indent: indent
- }));
- ifPart = [].concat(this.makeCode("if ("), cond, this.makeCode(") {\n"), body, this.makeCode("\n" + this.tab + "}"));
- if (!child) {
- ifPart.unshift(this.makeCode(this.tab));
- }
- if (!this.elseBody) {
- return ifPart;
- }
- answer = ifPart.concat(this.makeCode(' else '));
- if (this.isChain) {
- o.chainChild = true;
- answer = answer.concat(this.elseBody.unwrap().compileToFragments(o, LEVEL_TOP));
- } else {
- answer = answer.concat(this.makeCode("{\n"), this.elseBody.compileToFragments(merge(o, {
- indent: indent
- }), LEVEL_TOP), this.makeCode("\n" + this.tab + "}"));
- }
- return answer;
- };
-
- If.prototype.compileExpression = function(o) {
- var alt, body, cond, fragments;
- cond = this.condition.compileToFragments(o, LEVEL_COND);
- body = this.bodyNode().compileToFragments(o, LEVEL_LIST);
- alt = this.elseBodyNode() ? this.elseBodyNode().compileToFragments(o, LEVEL_LIST) : [this.makeCode('void 0')];
- fragments = cond.concat(this.makeCode(" ? "), body, this.makeCode(" : "), alt);
- if (o.level >= LEVEL_COND) {
- return this.wrapInBraces(fragments);
- } else {
- return fragments;
- }
- };
-
- If.prototype.unfoldSoak = function() {
- return this.soak && this;
- };
-
- return If;
-
- })(Base);
-
- Closure = {
- wrap: function(expressions, statement, noReturn) {
- var args, argumentsNode, call, func, meth;
- if (expressions.jumps()) {
- return expressions;
- }
- func = new Code([], Block.wrap([expressions]));
- args = [];
- argumentsNode = expressions.contains(this.isLiteralArguments);
- if (argumentsNode && expressions.classBody) {
- argumentsNode.error("Class bodies shouldn't reference arguments");
- }
- if (argumentsNode || expressions.contains(this.isLiteralThis)) {
- meth = new Literal(argumentsNode ? 'apply' : 'call');
- args = [new Literal('this')];
- if (argumentsNode) {
- args.push(new Literal('arguments'));
- }
- func = new Value(func, [new Access(meth)]);
- }
- func.noReturn = noReturn;
- call = new Call(func, args);
- if (statement) {
- return Block.wrap([call]);
- } else {
- return call;
- }
- },
- isLiteralArguments: function(node) {
- return node instanceof Literal && node.value === 'arguments' && !node.asKey;
- },
- isLiteralThis: function(node) {
- return (node instanceof Literal && node.value === 'this' && !node.asKey) || (node instanceof Code && node.bound) || (node instanceof Call && node.isSuper);
- }
- };
-
- unfoldSoak = function(o, parent, name) {
- var ifn;
- if (!(ifn = parent[name].unfoldSoak(o))) {
- return;
- }
- parent[name] = ifn.body;
- ifn.body = new Value(parent);
- return ifn;
- };
-
- UTILITIES = {
- "extends": function() {
- return "function(child, parent) { for (var key in parent) { if (" + (utility('hasProp')) + ".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }";
- },
- bind: function() {
- return 'function(fn, me){ return function(){ return fn.apply(me, arguments); }; }';
- },
- indexOf: function() {
- return "[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }";
- },
- hasProp: function() {
- return '{}.hasOwnProperty';
- },
- slice: function() {
- return '[].slice';
- }
- };
-
- LEVEL_TOP = 1;
-
- LEVEL_PAREN = 2;
-
- LEVEL_LIST = 3;
-
- LEVEL_COND = 4;
-
- LEVEL_OP = 5;
-
- LEVEL_ACCESS = 6;
-
- TAB = ' ';
-
- IDENTIFIER_STR = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*";
-
- IDENTIFIER = RegExp("^" + IDENTIFIER_STR + "$");
-
- SIMPLENUM = /^[+-]?\d+$/;
-
- METHOD_DEF = RegExp("^(?:(" + IDENTIFIER_STR + ")\\.prototype(?:\\.(" + IDENTIFIER_STR + ")|\\[(\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*')\\]|\\[(0x[\\da-fA-F]+|\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\]))|(" + IDENTIFIER_STR + ")$");
-
- IS_STRING = /^['"]/;
-
- utility = function(name) {
- var ref;
- ref = "__" + name;
- Scope.root.assign(ref, UTILITIES[name]());
- return ref;
- };
-
- multident = function(code, tab) {
- code = code.replace(/\n/g, '$&' + tab);
- return code.replace(/\s+$/, '');
- };
-
-
-});
-
-ace.define('ace/mode/coffee/scope', ['require', 'exports', 'module' , 'ace/mode/coffee/helpers'], function(require, exports, module) {
-
- var Scope, extend, last, _ref;
-
- _ref = require('./helpers'), extend = _ref.extend, last = _ref.last;
-
- exports.Scope = Scope = (function() {
- Scope.root = null;
-
- function Scope(parent, expressions, method) {
- this.parent = parent;
- this.expressions = expressions;
- this.method = method;
- this.variables = [
- {
- name: 'arguments',
- type: 'arguments'
- }
- ];
- this.positions = {};
- if (!this.parent) {
- Scope.root = this;
- }
- }
-
- Scope.prototype.add = function(name, type, immediate) {
- if (this.shared && !immediate) {
- return this.parent.add(name, type, immediate);
- }
- if (Object.prototype.hasOwnProperty.call(this.positions, name)) {
- return this.variables[this.positions[name]].type = type;
- } else {
- return this.positions[name] = this.variables.push({
- name: name,
- type: type
- }) - 1;
- }
- };
-
- Scope.prototype.namedMethod = function() {
- var _ref1;
- if (((_ref1 = this.method) != null ? _ref1.name : void 0) || !this.parent) {
- return this.method;
- }
- return this.parent.namedMethod();
- };
-
- Scope.prototype.find = function(name) {
- if (this.check(name)) {
- return true;
- }
- this.add(name, 'var');
- return false;
- };
-
- Scope.prototype.parameter = function(name) {
- if (this.shared && this.parent.check(name, true)) {
- return;
- }
- return this.add(name, 'param');
- };
-
- Scope.prototype.check = function(name) {
- var _ref1;
- return !!(this.type(name) || ((_ref1 = this.parent) != null ? _ref1.check(name) : void 0));
- };
-
- Scope.prototype.temporary = function(name, index) {
- if (name.length > 1) {
- return '_' + name + (index > 1 ? index - 1 : '');
- } else {
- return '_' + (index + parseInt(name, 36)).toString(36).replace(/\d/g, 'a');
- }
- };
-
- Scope.prototype.type = function(name) {
- var v, _i, _len, _ref1;
- _ref1 = this.variables;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- v = _ref1[_i];
- if (v.name === name) {
- return v.type;
- }
- }
- return null;
- };
-
- Scope.prototype.freeVariable = function(name, reserve) {
- var index, temp;
- if (reserve == null) {
- reserve = true;
- }
- index = 0;
- while (this.check((temp = this.temporary(name, index)))) {
- index++;
- }
- if (reserve) {
- this.add(temp, 'var', true);
- }
- return temp;
- };
-
- Scope.prototype.assign = function(name, value) {
- this.add(name, {
- value: value,
- assigned: true
- }, true);
- return this.hasAssignments = true;
- };
-
- Scope.prototype.hasDeclarations = function() {
- return !!this.declaredVariables().length;
- };
-
- Scope.prototype.declaredVariables = function() {
- var realVars, tempVars, v, _i, _len, _ref1;
- realVars = [];
- tempVars = [];
- _ref1 = this.variables;
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- v = _ref1[_i];
- if (v.type === 'var') {
- (v.name.charAt(0) === '_' ? tempVars : realVars).push(v.name);
- }
- }
- return realVars.sort().concat(tempVars.sort());
- };
-
- Scope.prototype.assignedVariables = function() {
- var v, _i, _len, _ref1, _results;
- _ref1 = this.variables;
- _results = [];
- for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
- v = _ref1[_i];
- if (v.type.assigned) {
- _results.push("" + v.name + " = " + v.type.value);
- }
- }
- return _results;
- };
-
- return Scope;
-
- })();
-
-
-}); \ No newline at end of file
diff --git a/js/vendor/ace/src-noconflict/worker-css.js b/js/vendor/ace/src-noconflict/worker-css.js
deleted file mode 100644
index 53374d1..0000000
--- a/js/vendor/ace/src-noconflict/worker-css.js
+++ /dev/null
@@ -1,8235 +0,0 @@
-"no use strict";
-;(function(window) {
-if (typeof window.window != "undefined" && window.document) {
- return;
-}
-
-window.console = function() {
- var msgs = Array.prototype.slice.call(arguments, 0);
- postMessage({type: "log", data: msgs});
-};
-window.console.error =
-window.console.warn =
-window.console.log =
-window.console.trace = window.console;
-
-window.window = window;
-window.ace = window;
-
-window.normalizeModule = function(parentId, moduleName) {
- if (moduleName.indexOf("!") !== -1) {
- var chunks = moduleName.split("!");
- return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
- }
- if (moduleName.charAt(0) == ".") {
- var base = parentId.split("/").slice(0, -1).join("/");
- moduleName = base + "/" + moduleName;
-
- while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
- var previous = moduleName;
- moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
- }
- }
-
- return moduleName;
-};
-
-window.require = function(parentId, id) {
- if (!id) {
- id = parentId
- parentId = null;
- }
- if (!id.charAt)
- throw new Error("worker.js require() accepts only (parentId, id) as arguments");
-
- id = normalizeModule(parentId, id);
-
- var module = require.modules[id];
- if (module) {
- if (!module.initialized) {
- module.initialized = true;
- module.exports = module.factory().exports;
- }
- return module.exports;
- }
-
- var chunks = id.split("/");
- chunks[0] = require.tlns[chunks[0]] || chunks[0];
- var path = chunks.join("/") + ".js";
-
- require.id = id;
- importScripts(path);
- return require(parentId, id);
-};
-
-require.modules = {};
-require.tlns = {};
-
-window.define = function(id, deps, factory) {
- if (arguments.length == 2) {
- factory = deps;
- if (typeof id != "string") {
- deps = id;
- id = require.id;
- }
- } else if (arguments.length == 1) {
- factory = id;
- id = require.id;
- }
-
- if (id.indexOf("text!") === 0)
- return;
-
- var req = function(deps, factory) {
- return require(id, deps, factory);
- };
-
- require.modules[id] = {
- exports: {},
- factory: function() {
- var module = this;
- var returnExports = factory(req, module.exports, module);
- if (returnExports)
- module.exports = returnExports;
- return module;
- }
- };
-};
-
-window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
- require.tlns = topLevelNamespaces;
-}
-
-window.initSender = function initSender() {
-
- var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
- var oop = require("ace/lib/oop");
-
- var Sender = function() {};
-
- (function() {
-
- oop.implement(this, EventEmitter);
-
- this.callback = function(data, callbackId) {
- postMessage({
- type: "call",
- id: callbackId,
- data: data
- });
- };
-
- this.emit = function(name, data) {
- postMessage({
- type: "event",
- name: name,
- data: data
- });
- };
-
- }).call(Sender.prototype);
-
- return new Sender();
-}
-
-window.main = null;
-window.sender = null;
-
-window.onmessage = function(e) {
- var msg = e.data;
- if (msg.command) {
- if (main[msg.command])
- main[msg.command].apply(main, msg.args);
- else
- throw new Error("Unknown command:" + msg.command);
- }
- else if (msg.init) {
- initBaseUrls(msg.tlns);
- require("ace/lib/es5-shim");
- sender = initSender();
- var clazz = require(msg.module)[msg.classname];
- main = new clazz(sender);
- }
- else if (msg.event && sender) {
- sender._emit(msg.event, msg.data);
- }
-};
-})(this);
-
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-var EventEmitter = {};
-var stopPropagation = function() { this.propagationStopped = true; };
-var preventDefault = function() { this.defaultPrevented = true; };
-
-EventEmitter._emit =
-EventEmitter._dispatchEvent = function(eventName, e) {
- this._eventRegistry || (this._eventRegistry = {});
- this._defaultHandlers || (this._defaultHandlers = {});
-
- var listeners = this._eventRegistry[eventName] || [];
- var defaultHandler = this._defaultHandlers[eventName];
- if (!listeners.length && !defaultHandler)
- return;
-
- if (typeof e != "object" || !e)
- e = {};
-
- if (!e.type)
- e.type = eventName;
- if (!e.stopPropagation)
- e.stopPropagation = stopPropagation;
- if (!e.preventDefault)
- e.preventDefault = preventDefault;
-
- for (var i=0; i<listeners.length; i++) {
- listeners[i](e, this);
- if (e.propagationStopped)
- break;
- }
-
- if (defaultHandler && !e.defaultPrevented)
- return defaultHandler(e, this);
-};
-
-
-EventEmitter._signal = function(eventName, e) {
- var listeners = (this._eventRegistry || {})[eventName];
- if (!listeners)
- return;
-
- for (var i=0; i<listeners.length; i++)
- listeners[i](e, this);
-};
-
-EventEmitter.once = function(eventName, callback) {
- var _self = this;
- callback && this.addEventListener(eventName, function newCallback() {
- _self.removeEventListener(eventName, newCallback);
- callback.apply(null, arguments);
- });
-};
-
-
-EventEmitter.setDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- handlers = this._defaultHandlers = {_disabled_: {}};
-
- if (handlers[eventName]) {
- var old = handlers[eventName];
- var disabled = handlers._disabled_[eventName];
- if (!disabled)
- handlers._disabled_[eventName] = disabled = [];
- disabled.push(old);
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
- handlers[eventName] = callback;
-};
-EventEmitter.removeDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- return;
- var disabled = handlers._disabled_[eventName];
-
- if (handlers[eventName] == callback) {
- var old = handlers[eventName];
- if (disabled)
- this.setDefaultHandler(eventName, disabled.pop());
- } else if (disabled) {
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
-};
-
-EventEmitter.on =
-EventEmitter.addEventListener = function(eventName, callback, capturing) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- listeners = this._eventRegistry[eventName] = [];
-
- if (listeners.indexOf(callback) == -1)
- listeners[capturing ? "unshift" : "push"](callback);
- return callback;
-};
-
-EventEmitter.off =
-EventEmitter.removeListener =
-EventEmitter.removeEventListener = function(eventName, callback) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- return;
-
- var index = listeners.indexOf(callback);
- if (index !== -1)
- listeners.splice(index, 1);
-};
-
-EventEmitter.removeAllListeners = function(eventName) {
- if (this._eventRegistry) this._eventRegistry[eventName] = [];
-};
-
-exports.EventEmitter = EventEmitter;
-
-});
-
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.inherits = (function() {
- var tempCtor = function() {};
- return function(ctor, superCtor) {
- tempCtor.prototype = superCtor.prototype;
- ctor.super_ = superCtor.prototype;
- ctor.prototype = new tempCtor();
- ctor.prototype.constructor = ctor;
- };
-}());
-
-exports.mixin = function(obj, mixin) {
- for (var key in mixin) {
- obj[key] = mixin[key];
- }
- return obj;
-};
-
-exports.implement = function(proto, mixin) {
- exports.mixin(proto, mixin);
-};
-
-});
-
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-function Empty() {}
-
-if (!Function.prototype.bind) {
- Function.prototype.bind = function bind(that) { // .length is 1
- var target = this;
- if (typeof target != "function") {
- throw new TypeError("Function.prototype.bind called on incompatible " + target);
- }
- var args = slice.call(arguments, 1); // for normal call
- var bound = function () {
-
- if (this instanceof bound) {
-
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
-
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
-
- }
-
- };
- if(target.prototype) {
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
-}
-var call = Function.prototype.call;
-var prototypeOfArray = Array.prototype;
-var prototypeOfObject = Object.prototype;
-var slice = prototypeOfArray.slice;
-var _toString = call.bind(prototypeOfObject.toString);
-var owns = call.bind(prototypeOfObject.hasOwnProperty);
-var defineGetter;
-var defineSetter;
-var lookupGetter;
-var lookupSetter;
-var supportsAccessors;
-if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
- defineGetter = call.bind(prototypeOfObject.__defineGetter__);
- defineSetter = call.bind(prototypeOfObject.__defineSetter__);
- lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
- lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
-}
-if ([1,2].splice(0).length != 2) {
- if(function() { // test IE < 9 to splice bug - see issue #138
- function makeArray(l) {
- var a = new Array(l+2);
- a[0] = a[1] = 0;
- return a;
- }
- var array = [], lengthBefore;
-
- array.splice.apply(array, makeArray(20));
- array.splice.apply(array, makeArray(26));
-
- lengthBefore = array.length; //46
- array.splice(5, 0, "XXX"); // add one element
-
- lengthBefore + 1 == array.length
-
- if (lengthBefore + 1 == array.length) {
- return true;// has right splice implementation without bugs
- }
- }()) {//IE 6/7
- var array_splice = Array.prototype.splice;
- Array.prototype.splice = function(start, deleteCount) {
- if (!arguments.length) {
- return [];
- } else {
- return array_splice.apply(this, [
- start === void 0 ? 0 : start,
- deleteCount === void 0 ? (this.length - start) : deleteCount
- ].concat(slice.call(arguments, 2)))
- }
- };
- } else {//IE8
- Array.prototype.splice = function(pos, removeCount){
- var length = this.length;
- if (pos > 0) {
- if (pos > length)
- pos = length;
- } else if (pos == void 0) {
- pos = 0;
- } else if (pos < 0) {
- pos = Math.max(length + pos, 0);
- }
-
- if (!(pos+removeCount < length))
- removeCount = length - pos;
-
- var removed = this.slice(pos, pos+removeCount);
- var insert = slice.call(arguments, 2);
- var add = insert.length;
- if (pos === length) {
- if (add) {
- this.push.apply(this, insert);
- }
- } else {
- var remove = Math.min(removeCount, length - pos);
- var tailOldPos = pos + remove;
- var tailNewPos = tailOldPos + add - remove;
- var tailCount = length - tailOldPos;
- var lengthAfterRemove = length - remove;
-
- if (tailNewPos < tailOldPos) { // case A
- for (var i = 0; i < tailCount; ++i) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } else if (tailNewPos > tailOldPos) { // case B
- for (i = tailCount; i--; ) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } // else, add == remove (nothing to do)
-
- if (add && pos === lengthAfterRemove) {
- this.length = lengthAfterRemove; // truncate array
- this.push.apply(this, insert);
- } else {
- this.length = lengthAfterRemove + add; // reserves space
- for (i = 0; i < add; ++i) {
- this[pos+i] = insert[i];
- }
- }
- }
- return removed;
- };
- }
-}
-if (!Array.isArray) {
- Array.isArray = function isArray(obj) {
- return _toString(obj) == "[object Array]";
- };
-}
-var boxedString = Object("a"),
- splitString = boxedString[0] != "a" || !(0 in boxedString);
-
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function forEach(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- thisp = arguments[1],
- i = -1,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(); // TODO message
- }
-
- while (++i < length) {
- if (i in self) {
- fun.call(thisp, self[i], i, object);
- }
- }
- };
-}
-if (!Array.prototype.map) {
- Array.prototype.map = function map(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = Array(length),
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self)
- result[i] = fun.call(thisp, self[i], i, object);
- }
- return result;
- };
-}
-if (!Array.prototype.filter) {
- Array.prototype.filter = function filter(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = [],
- value,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self) {
- value = self[i];
- if (fun.call(thisp, value, i, object)) {
- result.push(value);
- }
- }
- }
- return result;
- };
-}
-if (!Array.prototype.every) {
- Array.prototype.every = function every(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && !fun.call(thisp, self[i], i, object)) {
- return false;
- }
- }
- return true;
- };
-}
-if (!Array.prototype.some) {
- Array.prototype.some = function some(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && fun.call(thisp, self[i], i, object)) {
- return true;
- }
- }
- return false;
- };
-}
-if (!Array.prototype.reduce) {
- Array.prototype.reduce = function reduce(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduce of empty array with no initial value");
- }
-
- var i = 0;
- var result;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i++];
- break;
- }
- if (++i >= length) {
- throw new TypeError("reduce of empty array with no initial value");
- }
- } while (true);
- }
-
- for (; i < length; i++) {
- if (i in self) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- }
-
- return result;
- };
-}
-if (!Array.prototype.reduceRight) {
- Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
-
- var result, i = length - 1;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i--];
- break;
- }
- if (--i < 0) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
- } while (true);
- }
-
- do {
- if (i in this) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- } while (i--);
-
- return result;
- };
-}
-if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
- Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
-
- var i = 0;
- if (arguments.length > 1) {
- i = toInteger(arguments[1]);
- }
- i = i >= 0 ? i : Math.max(0, length + i);
- for (; i < length; i++) {
- if (i in self && self[i] === sought) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
- Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
- var i = length - 1;
- if (arguments.length > 1) {
- i = Math.min(i, toInteger(arguments[1]));
- }
- i = i >= 0 ? i : length - Math.abs(i);
- for (; i >= 0; i--) {
- if (i in self && sought === self[i]) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Object.getPrototypeOf) {
- Object.getPrototypeOf = function getPrototypeOf(object) {
- return object.__proto__ || (
- object.constructor ?
- object.constructor.prototype :
- prototypeOfObject
- );
- };
-}
-if (!Object.getOwnPropertyDescriptor) {
- var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
- "non-object: ";
- Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT + object);
- if (!owns(object, property))
- return;
-
- var descriptor, getter, setter;
- descriptor = { enumerable: true, configurable: true };
- if (supportsAccessors) {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
-
- var getter = lookupGetter(object, property);
- var setter = lookupSetter(object, property);
- object.__proto__ = prototype;
-
- if (getter || setter) {
- if (getter) descriptor.get = getter;
- if (setter) descriptor.set = setter;
- return descriptor;
- }
- }
- descriptor.value = object[property];
- return descriptor;
- };
-}
-if (!Object.getOwnPropertyNames) {
- Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
- return Object.keys(object);
- };
-}
-if (!Object.create) {
- var createEmpty;
- if (Object.prototype.__proto__ === null) {
- createEmpty = function () {
- return { "__proto__": null };
- };
- } else {
- createEmpty = function () {
- var empty = {};
- for (var i in empty)
- empty[i] = null;
- empty.constructor =
- empty.hasOwnProperty =
- empty.propertyIsEnumerable =
- empty.isPrototypeOf =
- empty.toLocaleString =
- empty.toString =
- empty.valueOf =
- empty.__proto__ = null;
- return empty;
- }
- }
-
- Object.create = function create(prototype, properties) {
- var object;
- if (prototype === null) {
- object = createEmpty();
- } else {
- if (typeof prototype != "object")
- throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
- var Type = function () {};
- Type.prototype = prototype;
- object = new Type();
- object.__proto__ = prototype;
- }
- if (properties !== void 0)
- Object.defineProperties(object, properties);
- return object;
- };
-}
-
-function doesDefinePropertyWork(object) {
- try {
- Object.defineProperty(object, "sentinel", {});
- return "sentinel" in object;
- } catch (exception) {
- }
-}
-if (Object.defineProperty) {
- var definePropertyWorksOnObject = doesDefinePropertyWork({});
- var definePropertyWorksOnDom = typeof document == "undefined" ||
- doesDefinePropertyWork(document.createElement("div"));
- if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
- var definePropertyFallback = Object.defineProperty;
- }
-}
-
-if (!Object.defineProperty || definePropertyFallback) {
- var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
- var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
- var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
- "on this javascript engine";
-
- Object.defineProperty = function defineProperty(object, property, descriptor) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT_TARGET + object);
- if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
- throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
- if (definePropertyFallback) {
- try {
- return definePropertyFallback.call(Object, object, property, descriptor);
- } catch (exception) {
- }
- }
- if (owns(descriptor, "value")) {
-
- if (supportsAccessors && (lookupGetter(object, property) ||
- lookupSetter(object, property)))
- {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
- delete object[property];
- object[property] = descriptor.value;
- object.__proto__ = prototype;
- } else {
- object[property] = descriptor.value;
- }
- } else {
- if (!supportsAccessors)
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
- if (owns(descriptor, "get"))
- defineGetter(object, property, descriptor.get);
- if (owns(descriptor, "set"))
- defineSetter(object, property, descriptor.set);
- }
-
- return object;
- };
-}
-if (!Object.defineProperties) {
- Object.defineProperties = function defineProperties(object, properties) {
- for (var property in properties) {
- if (owns(properties, property))
- Object.defineProperty(object, property, properties[property]);
- }
- return object;
- };
-}
-if (!Object.seal) {
- Object.seal = function seal(object) {
- return object;
- };
-}
-if (!Object.freeze) {
- Object.freeze = function freeze(object) {
- return object;
- };
-}
-try {
- Object.freeze(function () {});
-} catch (exception) {
- Object.freeze = (function freeze(freezeObject) {
- return function freeze(object) {
- if (typeof object == "function") {
- return object;
- } else {
- return freezeObject(object);
- }
- };
- })(Object.freeze);
-}
-if (!Object.preventExtensions) {
- Object.preventExtensions = function preventExtensions(object) {
- return object;
- };
-}
-if (!Object.isSealed) {
- Object.isSealed = function isSealed(object) {
- return false;
- };
-}
-if (!Object.isFrozen) {
- Object.isFrozen = function isFrozen(object) {
- return false;
- };
-}
-if (!Object.isExtensible) {
- Object.isExtensible = function isExtensible(object) {
- if (Object(object) === object) {
- throw new TypeError(); // TODO message
- }
- var name = '';
- while (owns(object, name)) {
- name += '?';
- }
- object[name] = true;
- var returnValue = owns(object, name);
- delete object[name];
- return returnValue;
- };
-}
-if (!Object.keys) {
- var hasDontEnumBug = true,
- dontEnums = [
- "toString",
- "toLocaleString",
- "valueOf",
- "hasOwnProperty",
- "isPrototypeOf",
- "propertyIsEnumerable",
- "constructor"
- ],
- dontEnumsLength = dontEnums.length;
-
- for (var key in {"toString": null}) {
- hasDontEnumBug = false;
- }
-
- Object.keys = function keys(object) {
-
- if (
- (typeof object != "object" && typeof object != "function") ||
- object === null
- ) {
- throw new TypeError("Object.keys called on a non-object");
- }
-
- var keys = [];
- for (var name in object) {
- if (owns(object, name)) {
- keys.push(name);
- }
- }
-
- if (hasDontEnumBug) {
- for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
- var dontEnum = dontEnums[i];
- if (owns(object, dontEnum)) {
- keys.push(dontEnum);
- }
- }
- }
- return keys;
- };
-
-}
-if (!Date.now) {
- Date.now = function now() {
- return new Date().getTime();
- };
-}
-var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
- "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
- "\u2029\uFEFF";
-if (!String.prototype.trim || ws.trim()) {
- ws = "[" + ws + "]";
- var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
- trimEndRegexp = new RegExp(ws + ws + "*$");
- String.prototype.trim = function trim() {
- return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
- };
-}
-
-function toInteger(n) {
- n = +n;
- if (n !== n) { // isNaN
- n = 0;
- } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- return n;
-}
-
-function isPrimitive(input) {
- var type = typeof input;
- return (
- input === null ||
- type === "undefined" ||
- type === "boolean" ||
- type === "number" ||
- type === "string"
- );
-}
-
-function toPrimitive(input) {
- var val, valueOf, toString;
- if (isPrimitive(input)) {
- return input;
- }
- valueOf = input.valueOf;
- if (typeof valueOf === "function") {
- val = valueOf.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- toString = input.toString;
- if (typeof toString === "function") {
- val = toString.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- throw new TypeError();
-}
-var toObject = function (o) {
- if (o == null) { // this matches both null and undefined
- throw new TypeError("can't convert "+o+" to object");
- }
- return Object(o);
-};
-
-});
-
-ace.define('ace/mode/css_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/worker/mirror', 'ace/mode/css/csslint'], function(require, exports, module) {
-
-
-var oop = require("../lib/oop");
-var lang = require("../lib/lang");
-var Mirror = require("../worker/mirror").Mirror;
-var CSSLint = require("./css/csslint").CSSLint;
-
-var Worker = exports.Worker = function(sender) {
- Mirror.call(this, sender);
- this.setTimeout(400);
- this.ruleset = null;
- this.setDisabledRules("ids");
- this.setInfoRules("adjoining-classes|qualified-headings|zero-units|gradients|import|outline-none");
-};
-
-oop.inherits(Worker, Mirror);
-
-(function() {
- this.setInfoRules = function(ruleNames) {
- if (typeof ruleNames == "string")
- ruleNames = ruleNames.split("|");
- this.infoRules = lang.arrayToMap(ruleNames);
- this.doc.getValue() && this.deferredUpdate.schedule(100);
- };
-
- this.setDisabledRules = function(ruleNames) {
- if (!ruleNames) {
- this.ruleset = null;
- } else {
- if (typeof ruleNames == "string")
- ruleNames = ruleNames.split("|");
- var all = {};
-
- CSSLint.getRules().forEach(function(x){
- all[x.id] = true;
- });
- ruleNames.forEach(function(x) {
- delete all[x];
- });
-
- this.ruleset = all;
- }
- this.doc.getValue() && this.deferredUpdate.schedule(100);
- };
-
- this.onUpdate = function() {
- var value = this.doc.getValue();
- var infoRules = this.infoRules;
-
- var result = CSSLint.verify(value, this.ruleset);
- this.sender.emit("csslint", result.messages.map(function(msg) {
- return {
- row: msg.line - 1,
- column: msg.col - 1,
- text: msg.message,
- type: infoRules[msg.rule.id] ? "info" : msg.type
- }
- }));
- };
-
-}).call(Worker.prototype);
-
-});
-
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.stringReverse = function(string) {
- return string.split("").reverse().join("");
-};
-
-exports.stringRepeat = function (string, count) {
- var result = '';
- while (count > 0) {
- if (count & 1)
- result += string;
-
- if (count >>= 1)
- string += string;
- }
- return result;
-};
-
-var trimBeginRegexp = /^\s\s*/;
-var trimEndRegexp = /\s\s*$/;
-
-exports.stringTrimLeft = function (string) {
- return string.replace(trimBeginRegexp, '');
-};
-
-exports.stringTrimRight = function (string) {
- return string.replace(trimEndRegexp, '');
-};
-
-exports.copyObject = function(obj) {
- var copy = {};
- for (var key in obj) {
- copy[key] = obj[key];
- }
- return copy;
-};
-
-exports.copyArray = function(array){
- var copy = [];
- for (var i=0, l=array.length; i<l; i++) {
- if (array[i] && typeof array[i] == "object")
- copy[i] = this.copyObject( array[i] );
- else
- copy[i] = array[i];
- }
- return copy;
-};
-
-exports.deepCopy = function (obj) {
- if (typeof obj != "object") {
- return obj;
- }
-
- var copy = obj.constructor();
- for (var key in obj) {
- if (typeof obj[key] == "object") {
- copy[key] = this.deepCopy(obj[key]);
- } else {
- copy[key] = obj[key];
- }
- }
- return copy;
-};
-
-exports.arrayToMap = function(arr) {
- var map = {};
- for (var i=0; i<arr.length; i++) {
- map[arr[i]] = 1;
- }
- return map;
-
-};
-
-exports.createMap = function(props) {
- var map = Object.create(null);
- for (var i in props) {
- map[i] = props[i];
- }
- return map;
-};
-exports.arrayRemove = function(array, value) {
- for (var i = 0; i <= array.length; i++) {
- if (value === array[i]) {
- array.splice(i, 1);
- }
- }
-};
-
-exports.escapeRegExp = function(str) {
- return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
-};
-
-exports.escapeHTML = function(str) {
- return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
-};
-
-exports.getMatchOffsets = function(string, regExp) {
- var matches = [];
-
- string.replace(regExp, function(str) {
- matches.push({
- offset: arguments[arguments.length-2],
- length: str.length
- });
- });
-
- return matches;
-};
-exports.deferredCall = function(fcn) {
-
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var deferred = function(timeout) {
- deferred.cancel();
- timer = setTimeout(callback, timeout || 0);
- return deferred;
- };
-
- deferred.schedule = deferred;
-
- deferred.call = function() {
- this.cancel();
- fcn();
- return deferred;
- };
-
- deferred.cancel = function() {
- clearTimeout(timer);
- timer = null;
- return deferred;
- };
-
- return deferred;
-};
-
-
-exports.delayedCall = function(fcn, defaultTimeout) {
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var _self = function(timeout) {
- timer && clearTimeout(timer);
- timer = setTimeout(callback, timeout || defaultTimeout);
- };
-
- _self.delay = _self;
- _self.schedule = function(timeout) {
- if (timer == null)
- timer = setTimeout(callback, timeout || 0);
- };
-
- _self.call = function() {
- this.cancel();
- fcn();
- };
-
- _self.cancel = function() {
- timer && clearTimeout(timer);
- timer = null;
- };
-
- _self.isPending = function() {
- return timer;
- };
-
- return _self;
-};
-});
-ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
-
-
-var Document = require("../document").Document;
-var lang = require("../lib/lang");
-
-var Mirror = exports.Mirror = function(sender) {
- this.sender = sender;
- var doc = this.doc = new Document("");
-
- var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
-
- var _self = this;
- sender.on("change", function(e) {
- doc.applyDeltas(e.data);
- deferredUpdate.schedule(_self.$timeout);
- });
-};
-
-(function() {
-
- this.$timeout = 500;
-
- this.setTimeout = function(timeout) {
- this.$timeout = timeout;
- };
-
- this.setValue = function(value) {
- this.doc.setValue(value);
- this.deferredUpdate.schedule(this.$timeout);
- };
-
- this.getValue = function(callbackId) {
- this.sender.callback(this.doc.getValue(), callbackId);
- };
-
- this.onUpdate = function() {
- };
-
-}).call(Mirror.prototype);
-
-});
-
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-var Range = require("./range").Range;
-var Anchor = require("./anchor").Anchor;
-
-var Document = function(text) {
- this.$lines = [];
- if (text.length == 0) {
- this.$lines = [""];
- } else if (Array.isArray(text)) {
- this._insertLines(0, text);
- } else {
- this.insert({row: 0, column:0}, text);
- }
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.setValue = function(text) {
- var len = this.getLength();
- this.remove(new Range(0, 0, len, this.getLine(len-1).length));
- this.insert({row: 0, column:0}, text);
- };
- this.getValue = function() {
- return this.getAllLines().join(this.getNewLineCharacter());
- };
- this.createAnchor = function(row, column) {
- return new Anchor(this, row, column);
- };
- if ("aaa".split(/a/).length == 0)
- this.$split = function(text) {
- return text.replace(/\r\n|\r/g, "\n").split("\n");
- }
- else
- this.$split = function(text) {
- return text.split(/\r\n|\r|\n/);
- };
-
-
- this.$detectNewLine = function(text) {
- var match = text.match(/^.*?(\r\n|\r|\n)/m);
- this.$autoNewLine = match ? match[1] : "\n";
- };
- this.getNewLineCharacter = function() {
- switch (this.$newLineMode) {
- case "windows":
- return "\r\n";
- case "unix":
- return "\n";
- default:
- return this.$autoNewLine;
- }
- };
-
- this.$autoNewLine = "\n";
- this.$newLineMode = "auto";
- this.setNewLineMode = function(newLineMode) {
- if (this.$newLineMode === newLineMode)
- return;
-
- this.$newLineMode = newLineMode;
- };
- this.getNewLineMode = function() {
- return this.$newLineMode;
- };
- this.isNewLine = function(text) {
- return (text == "\r\n" || text == "\r" || text == "\n");
- };
- this.getLine = function(row) {
- return this.$lines[row] || "";
- };
- this.getLines = function(firstRow, lastRow) {
- return this.$lines.slice(firstRow, lastRow + 1);
- };
- this.getAllLines = function() {
- return this.getLines(0, this.getLength());
- };
- this.getLength = function() {
- return this.$lines.length;
- };
- this.getTextRange = function(range) {
- if (range.start.row == range.end.row) {
- return this.getLine(range.start.row)
- .substring(range.start.column, range.end.column);
- }
- var lines = this.getLines(range.start.row, range.end.row);
- lines[0] = (lines[0] || "").substring(range.start.column);
- var l = lines.length - 1;
- if (range.end.row - range.start.row == l)
- lines[l] = lines[l].substring(0, range.end.column);
- return lines.join(this.getNewLineCharacter());
- };
-
- this.$clipPosition = function(position) {
- var length = this.getLength();
- if (position.row >= length) {
- position.row = Math.max(0, length - 1);
- position.column = this.getLine(length-1).length;
- } else if (position.row < 0)
- position.row = 0;
- return position;
- };
- this.insert = function(position, text) {
- if (!text || text.length === 0)
- return position;
-
- position = this.$clipPosition(position);
- if (this.getLength() <= 1)
- this.$detectNewLine(text);
-
- var lines = this.$split(text);
- var firstLine = lines.splice(0, 1)[0];
- var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
-
- position = this.insertInLine(position, firstLine);
- if (lastLine !== null) {
- position = this.insertNewLine(position); // terminate first line
- position = this._insertLines(position.row, lines);
- position = this.insertInLine(position, lastLine || "");
- }
- return position;
- };
- this.insertLines = function(row, lines) {
- if (row >= this.getLength())
- return this.insert({row: row, column: 0}, "\n" + lines.join("\n"));
- return this._insertLines(Math.max(row, 0), lines);
- };
- this._insertLines = function(row, lines) {
- if (lines.length == 0)
- return {row: row, column: 0};
- if (lines.length > 0xFFFF) {
- var end = this._insertLines(row, lines.slice(0xFFFF));
- lines = lines.slice(0, 0xFFFF);
- }
-
- var args = [row, 0];
- args.push.apply(args, lines);
- this.$lines.splice.apply(this.$lines, args);
-
- var range = new Range(row, 0, row + lines.length, 0);
- var delta = {
- action: "insertLines",
- range: range,
- lines: lines
- };
- this._emit("change", { data: delta });
- return end || range.end;
- };
- this.insertNewLine = function(position) {
- position = this.$clipPosition(position);
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column);
- this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
-
- var end = {
- row : position.row + 1,
- column : 0
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.insertInLine = function(position, text) {
- if (text.length == 0)
- return position;
-
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column) + text
- + line.substring(position.column);
-
- var end = {
- row : position.row,
- column : position.column + text.length
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: text
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.remove = function(range) {
- range.start = this.$clipPosition(range.start);
- range.end = this.$clipPosition(range.end);
-
- if (range.isEmpty())
- return range.start;
-
- var firstRow = range.start.row;
- var lastRow = range.end.row;
-
- if (range.isMultiLine()) {
- var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
- var lastFullRow = lastRow - 1;
-
- if (range.end.column > 0)
- this.removeInLine(lastRow, 0, range.end.column);
-
- if (lastFullRow >= firstFullRow)
- this._removeLines(firstFullRow, lastFullRow);
-
- if (firstFullRow != firstRow) {
- this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
- this.removeNewLine(range.start.row);
- }
- }
- else {
- this.removeInLine(firstRow, range.start.column, range.end.column);
- }
- return range.start;
- };
- this.removeInLine = function(row, startColumn, endColumn) {
- if (startColumn == endColumn)
- return;
-
- var range = new Range(row, startColumn, row, endColumn);
- var line = this.getLine(row);
- var removed = line.substring(startColumn, endColumn);
- var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
- this.$lines.splice(row, 1, newLine);
-
- var delta = {
- action: "removeText",
- range: range,
- text: removed
- };
- this._emit("change", { data: delta });
- return range.start;
- };
- this.removeLines = function(firstRow, lastRow) {
- if (firstRow < 0 || lastRow >= this.getLength())
- return this.remove(new Range(firstRow, 0, lastRow + 1, 0));
- return this._removeLines(firstRow, lastRow);
- };
-
- this._removeLines = function(firstRow, lastRow) {
- var range = new Range(firstRow, 0, lastRow + 1, 0);
- var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
-
- var delta = {
- action: "removeLines",
- range: range,
- nl: this.getNewLineCharacter(),
- lines: removed
- };
- this._emit("change", { data: delta });
- return removed;
- };
- this.removeNewLine = function(row) {
- var firstLine = this.getLine(row);
- var secondLine = this.getLine(row+1);
-
- var range = new Range(row, firstLine.length, row+1, 0);
- var line = firstLine + secondLine;
-
- this.$lines.splice(row, 2, line);
-
- var delta = {
- action: "removeText",
- range: range,
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
- };
- this.replace = function(range, text) {
- if (text.length == 0 && range.isEmpty())
- return range.start;
- if (text == this.getTextRange(range))
- return range.end;
-
- this.remove(range);
- if (text) {
- var end = this.insert(range.start, text);
- }
- else {
- end = range.start;
- }
-
- return end;
- };
- this.applyDeltas = function(deltas) {
- for (var i=0; i<deltas.length; i++) {
- var delta = deltas[i];
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this.insertLines(range.start.row, delta.lines);
- else if (delta.action == "insertText")
- this.insert(range.start, delta.text);
- else if (delta.action == "removeLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "removeText")
- this.remove(range);
- }
- };
- this.revertDeltas = function(deltas) {
- for (var i=deltas.length-1; i>=0; i--) {
- var delta = deltas[i];
-
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "insertText")
- this.remove(range);
- else if (delta.action == "removeLines")
- this._insertLines(range.start.row, delta.lines);
- else if (delta.action == "removeText")
- this.insert(range.start, delta.text);
- }
- };
- this.indexToPosition = function(index, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- for (var i = startRow || 0, l = lines.length; i < l; i++) {
- index -= lines[i].length + newlineLength;
- if (index < 0)
- return {row: i, column: index + lines[i].length + newlineLength};
- }
- return {row: l-1, column: lines[l-1].length};
- };
- this.positionToIndex = function(pos, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- var index = 0;
- var row = Math.min(pos.row, lines.length);
- for (var i = startRow || 0; i < row; ++i)
- index += lines[i].length + newlineLength;
-
- return index + pos.column;
- };
-
-}).call(Document.prototype);
-
-exports.Document = Document;
-});
-
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-var Range = function(startRow, startColumn, endRow, endColumn) {
- this.start = {
- row: startRow,
- column: startColumn
- };
-
- this.end = {
- row: endRow,
- column: endColumn
- };
-};
-
-(function() {
- this.isEqual = function(range) {
- return this.start.row === range.start.row &&
- this.end.row === range.end.row &&
- this.start.column === range.start.column &&
- this.end.column === range.end.column;
- };
- this.toString = function() {
- return ("Range: [" + this.start.row + "/" + this.start.column +
- "] -> [" + this.end.row + "/" + this.end.column + "]");
- };
-
- this.contains = function(row, column) {
- return this.compare(row, column) == 0;
- };
- this.compareRange = function(range) {
- var cmp,
- end = range.end,
- start = range.start;
-
- cmp = this.compare(end.row, end.column);
- if (cmp == 1) {
- cmp = this.compare(start.row, start.column);
- if (cmp == 1) {
- return 2;
- } else if (cmp == 0) {
- return 1;
- } else {
- return 0;
- }
- } else if (cmp == -1) {
- return -2;
- } else {
- cmp = this.compare(start.row, start.column);
- if (cmp == -1) {
- return -1;
- } else if (cmp == 1) {
- return 42;
- } else {
- return 0;
- }
- }
- };
- this.comparePoint = function(p) {
- return this.compare(p.row, p.column);
- };
- this.containsRange = function(range) {
- return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
- };
- this.intersects = function(range) {
- var cmp = this.compareRange(range);
- return (cmp == -1 || cmp == 0 || cmp == 1);
- };
- this.isEnd = function(row, column) {
- return this.end.row == row && this.end.column == column;
- };
- this.isStart = function(row, column) {
- return this.start.row == row && this.start.column == column;
- };
- this.setStart = function(row, column) {
- if (typeof row == "object") {
- this.start.column = row.column;
- this.start.row = row.row;
- } else {
- this.start.row = row;
- this.start.column = column;
- }
- };
- this.setEnd = function(row, column) {
- if (typeof row == "object") {
- this.end.column = row.column;
- this.end.row = row.row;
- } else {
- this.end.row = row;
- this.end.column = column;
- }
- };
- this.inside = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column) || this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideStart = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideEnd = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.compare = function(row, column) {
- if (!this.isMultiLine()) {
- if (row === this.start.row) {
- return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
- };
- }
-
- if (row < this.start.row)
- return -1;
-
- if (row > this.end.row)
- return 1;
-
- if (this.start.row === row)
- return column >= this.start.column ? 0 : -1;
-
- if (this.end.row === row)
- return column <= this.end.column ? 0 : 1;
-
- return 0;
- };
- this.compareStart = function(row, column) {
- if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareEnd = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareInside = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.clipRows = function(firstRow, lastRow) {
- if (this.end.row > lastRow)
- var end = {row: lastRow + 1, column: 0};
- else if (this.end.row < firstRow)
- var end = {row: firstRow, column: 0};
-
- if (this.start.row > lastRow)
- var start = {row: lastRow + 1, column: 0};
- else if (this.start.row < firstRow)
- var start = {row: firstRow, column: 0};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
- this.extend = function(row, column) {
- var cmp = this.compare(row, column);
-
- if (cmp == 0)
- return this;
- else if (cmp == -1)
- var start = {row: row, column: column};
- else
- var end = {row: row, column: column};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
-
- this.isEmpty = function() {
- return (this.start.row === this.end.row && this.start.column === this.end.column);
- };
- this.isMultiLine = function() {
- return (this.start.row !== this.end.row);
- };
- this.clone = function() {
- return Range.fromPoints(this.start, this.end);
- };
- this.collapseRows = function() {
- if (this.end.column == 0)
- return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
- else
- return new Range(this.start.row, 0, this.end.row, 0)
- };
- this.toScreenRange = function(session) {
- var screenPosStart = session.documentToScreenPosition(this.start);
- var screenPosEnd = session.documentToScreenPosition(this.end);
-
- return new Range(
- screenPosStart.row, screenPosStart.column,
- screenPosEnd.row, screenPosEnd.column
- );
- };
- this.moveBy = function(row, column) {
- this.start.row += row;
- this.start.column += column;
- this.end.row += row;
- this.end.column += column;
- };
-
-}).call(Range.prototype);
-Range.fromPoints = function(start, end) {
- return new Range(start.row, start.column, end.row, end.column);
-};
-Range.comparePoints = comparePoints;
-
-Range.comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-
-
-exports.Range = Range;
-});
-
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-
-var Anchor = exports.Anchor = function(doc, row, column) {
- this.$onChange = this.onChange.bind(this);
- this.attach(doc);
-
- if (typeof column == "undefined")
- this.setPosition(row.row, row.column);
- else
- this.setPosition(row, column);
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.getPosition = function() {
- return this.$clipPositionToDocument(this.row, this.column);
- };
- this.getDocument = function() {
- return this.document;
- };
- this.onChange = function(e) {
- var delta = e.data;
- var range = delta.range;
-
- if (range.start.row == range.end.row && range.start.row != this.row)
- return;
-
- if (range.start.row > this.row)
- return;
-
- if (range.start.row == this.row && range.start.column > this.column)
- return;
-
- var row = this.row;
- var column = this.column;
- var start = range.start;
- var end = range.end;
-
- if (delta.action === "insertText") {
- if (start.row === row && start.column <= column) {
- if (start.row === end.row) {
- column += end.column - start.column;
- } else {
- column -= start.column;
- row += end.row - start.row;
- }
- } else if (start.row !== end.row && start.row < row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "insertLines") {
- if (start.row <= row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "removeText") {
- if (start.row === row && start.column < column) {
- if (end.column >= column)
- column = start.column;
- else
- column = Math.max(0, column - (end.column - start.column));
-
- } else if (start.row !== end.row && start.row < row) {
- if (end.row === row)
- column = Math.max(0, column - end.column) + start.column;
- row -= (end.row - start.row);
- } else if (end.row === row) {
- row -= end.row - start.row;
- column = Math.max(0, column - end.column) + start.column;
- }
- } else if (delta.action == "removeLines") {
- if (start.row <= row) {
- if (end.row <= row)
- row -= end.row - start.row;
- else {
- row = start.row;
- column = 0;
- }
- }
- }
-
- this.setPosition(row, column, true);
- };
- this.setPosition = function(row, column, noClip) {
- var pos;
- if (noClip) {
- pos = {
- row: row,
- column: column
- };
- } else {
- pos = this.$clipPositionToDocument(row, column);
- }
-
- if (this.row == pos.row && this.column == pos.column)
- return;
-
- var old = {
- row: this.row,
- column: this.column
- };
-
- this.row = pos.row;
- this.column = pos.column;
- this._emit("change", {
- old: old,
- value: pos
- });
- };
- this.detach = function() {
- this.document.removeEventListener("change", this.$onChange);
- };
- this.attach = function(doc) {
- this.document = doc || this.document;
- this.document.on("change", this.$onChange);
- };
- this.$clipPositionToDocument = function(row, column) {
- var pos = {};
-
- if (row >= this.document.getLength()) {
- pos.row = Math.max(0, this.document.getLength() - 1);
- pos.column = this.document.getLine(pos.row).length;
- }
- else if (row < 0) {
- pos.row = 0;
- pos.column = 0;
- }
- else {
- pos.row = row;
- pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
- }
-
- if (column < 0)
- pos.column = 0;
-
- return pos;
- };
-
-}).call(Anchor.prototype);
-
-});
-ace.define('ace/mode/css/csslint', ['require', 'exports', 'module' ], function(require, exports, module) {
-var parserlib = {};
-(function(){
-function EventTarget(){
- this._listeners = {};
-}
-
-EventTarget.prototype = {
- constructor: EventTarget,
- addListener: function(type, listener){
- if (!this._listeners[type]){
- this._listeners[type] = [];
- }
-
- this._listeners[type].push(listener);
- },
- fire: function(event){
- if (typeof event == "string"){
- event = { type: event };
- }
- if (typeof event.target != "undefined"){
- event.target = this;
- }
-
- if (typeof event.type == "undefined"){
- throw new Error("Event object missing 'type' property.");
- }
-
- if (this._listeners[event.type]){
- var listeners = this._listeners[event.type].concat();
- for (var i=0, len=listeners.length; i < len; i++){
- listeners[i].call(this, event);
- }
- }
- },
- removeListener: function(type, listener){
- if (this._listeners[type]){
- var listeners = this._listeners[type];
- for (var i=0, len=listeners.length; i < len; i++){
- if (listeners[i] === listener){
- listeners.splice(i, 1);
- break;
- }
- }
-
-
- }
- }
-};
-function StringReader(text){
- this._input = text.replace(/\n\r?/g, "\n");
- this._line = 1;
- this._col = 1;
- this._cursor = 0;
-}
-
-StringReader.prototype = {
- constructor: StringReader,
- getCol: function(){
- return this._col;
- },
- getLine: function(){
- return this._line ;
- },
- eof: function(){
- return (this._cursor == this._input.length);
- },
- peek: function(count){
- var c = null;
- count = (typeof count == "undefined" ? 1 : count);
- if (this._cursor < this._input.length){
- c = this._input.charAt(this._cursor + count - 1);
- }
-
- return c;
- },
- read: function(){
- var c = null;
- if (this._cursor < this._input.length){
- if (this._input.charAt(this._cursor) == "\n"){
- this._line++;
- this._col=1;
- } else {
- this._col++;
- }
- c = this._input.charAt(this._cursor++);
- }
-
- return c;
- },
- mark: function(){
- this._bookmark = {
- cursor: this._cursor,
- line: this._line,
- col: this._col
- };
- },
-
- reset: function(){
- if (this._bookmark){
- this._cursor = this._bookmark.cursor;
- this._line = this._bookmark.line;
- this._col = this._bookmark.col;
- delete this._bookmark;
- }
- },
- readTo: function(pattern){
-
- var buffer = "",
- c;
- while (buffer.length < pattern.length || buffer.lastIndexOf(pattern) != buffer.length - pattern.length){
- c = this.read();
- if (c){
- buffer += c;
- } else {
- throw new Error("Expected \"" + pattern + "\" at line " + this._line + ", col " + this._col + ".");
- }
- }
-
- return buffer;
-
- },
- readWhile: function(filter){
-
- var buffer = "",
- c = this.read();
-
- while(c !== null && filter(c)){
- buffer += c;
- c = this.read();
- }
-
- return buffer;
-
- },
- readMatch: function(matcher){
-
- var source = this._input.substring(this._cursor),
- value = null;
- if (typeof matcher == "string"){
- if (source.indexOf(matcher) === 0){
- value = this.readCount(matcher.length);
- }
- } else if (matcher instanceof RegExp){
- if (matcher.test(source)){
- value = this.readCount(RegExp.lastMatch.length);
- }
- }
-
- return value;
- },
- readCount: function(count){
- var buffer = "";
-
- while(count--){
- buffer += this.read();
- }
-
- return buffer;
- }
-
-};
-function SyntaxError(message, line, col){
- this.col = col;
- this.line = line;
- this.message = message;
-
-}
-SyntaxError.prototype = new Error();
-function SyntaxUnit(text, line, col, type){
- this.col = col;
- this.line = line;
- this.text = text;
- this.type = type;
-}
-SyntaxUnit.fromToken = function(token){
- return new SyntaxUnit(token.value, token.startLine, token.startCol);
-};
-
-SyntaxUnit.prototype = {
- constructor: SyntaxUnit,
- valueOf: function(){
- return this.toString();
- },
- toString: function(){
- return this.text;
- }
-
-};
-function TokenStreamBase(input, tokenData){
- this._reader = input ? new StringReader(input.toString()) : null;
- this._token = null;
- this._tokenData = tokenData;
- this._lt = [];
- this._ltIndex = 0;
-
- this._ltIndexCache = [];
-}
-TokenStreamBase.createTokenData = function(tokens){
-
- var nameMap = [],
- typeMap = {},
- tokenData = tokens.concat([]),
- i = 0,
- len = tokenData.length+1;
-
- tokenData.UNKNOWN = -1;
- tokenData.unshift({name:"EOF"});
-
- for (; i < len; i++){
- nameMap.push(tokenData[i].name);
- tokenData[tokenData[i].name] = i;
- if (tokenData[i].text){
- typeMap[tokenData[i].text] = i;
- }
- }
-
- tokenData.name = function(tt){
- return nameMap[tt];
- };
-
- tokenData.type = function(c){
- return typeMap[c];
- };
-
- return tokenData;
-};
-
-TokenStreamBase.prototype = {
- constructor: TokenStreamBase,
- match: function(tokenTypes, channel){
- if (!(tokenTypes instanceof Array)){
- tokenTypes = [tokenTypes];
- }
-
- var tt = this.get(channel),
- i = 0,
- len = tokenTypes.length;
-
- while(i < len){
- if (tt == tokenTypes[i++]){
- return true;
- }
- }
- this.unget();
- return false;
- },
- mustMatch: function(tokenTypes, channel){
-
- var token;
- if (!(tokenTypes instanceof Array)){
- tokenTypes = [tokenTypes];
- }
-
- if (!this.match.apply(this, arguments)){
- token = this.LT(1);
- throw new SyntaxError("Expected " + this._tokenData[tokenTypes[0]].name +
- " at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol);
- }
- },
- advance: function(tokenTypes, channel){
-
- while(this.LA(0) !== 0 && !this.match(tokenTypes, channel)){
- this.get();
- }
-
- return this.LA(0);
- },
- get: function(channel){
-
- var tokenInfo = this._tokenData,
- reader = this._reader,
- value,
- i =0,
- len = tokenInfo.length,
- found = false,
- token,
- info;
- if (this._lt.length && this._ltIndex >= 0 && this._ltIndex < this._lt.length){
-
- i++;
- this._token = this._lt[this._ltIndex++];
- info = tokenInfo[this._token.type];
- while((info.channel !== undefined && channel !== info.channel) &&
- this._ltIndex < this._lt.length){
- this._token = this._lt[this._ltIndex++];
- info = tokenInfo[this._token.type];
- i++;
- }
- if ((info.channel === undefined || channel === info.channel) &&
- this._ltIndex <= this._lt.length){
- this._ltIndexCache.push(i);
- return this._token.type;
- }
- }
- token = this._getToken();
- if (token.type > -1 && !tokenInfo[token.type].hide){
- token.channel = tokenInfo[token.type].channel;
- this._token = token;
- this._lt.push(token);
- this._ltIndexCache.push(this._lt.length - this._ltIndex + i);
- if (this._lt.length > 5){
- this._lt.shift();
- }
- if (this._ltIndexCache.length > 5){
- this._ltIndexCache.shift();
- }
- this._ltIndex = this._lt.length;
- }
- info = tokenInfo[token.type];
- if (info &&
- (info.hide ||
- (info.channel !== undefined && channel !== info.channel))){
- return this.get(channel);
- } else {
- return token.type;
- }
- },
- LA: function(index){
- var total = index,
- tt;
- if (index > 0){
- if (index > 5){
- throw new Error("Too much lookahead.");
- }
- while(total){
- tt = this.get();
- total--;
- }
- while(total < index){
- this.unget();
- total++;
- }
- } else if (index < 0){
-
- if(this._lt[this._ltIndex+index]){
- tt = this._lt[this._ltIndex+index].type;
- } else {
- throw new Error("Too much lookbehind.");
- }
-
- } else {
- tt = this._token.type;
- }
-
- return tt;
-
- },
- LT: function(index){
- this.LA(index);
- return this._lt[this._ltIndex+index-1];
- },
- peek: function(){
- return this.LA(1);
- },
- token: function(){
- return this._token;
- },
- tokenName: function(tokenType){
- if (tokenType < 0 || tokenType > this._tokenData.length){
- return "UNKNOWN_TOKEN";
- } else {
- return this._tokenData[tokenType].name;
- }
- },
- tokenType: function(tokenName){
- return this._tokenData[tokenName] || -1;
- },
- unget: function(){
- if (this._ltIndexCache.length){
- this._ltIndex -= this._ltIndexCache.pop();//--;
- this._token = this._lt[this._ltIndex - 1];
- } else {
- throw new Error("Too much lookahead.");
- }
- }
-
-};
-
-
-
-
-parserlib.util = {
-StringReader: StringReader,
-SyntaxError : SyntaxError,
-SyntaxUnit : SyntaxUnit,
-EventTarget : EventTarget,
-TokenStreamBase : TokenStreamBase
-};
-})();
-(function(){
-var EventTarget = parserlib.util.EventTarget,
-TokenStreamBase = parserlib.util.TokenStreamBase,
-StringReader = parserlib.util.StringReader,
-SyntaxError = parserlib.util.SyntaxError,
-SyntaxUnit = parserlib.util.SyntaxUnit;
-
-
-var Colors = {
- aliceblue :"#f0f8ff",
- antiquewhite :"#faebd7",
- aqua :"#00ffff",
- aquamarine :"#7fffd4",
- azure :"#f0ffff",
- beige :"#f5f5dc",
- bisque :"#ffe4c4",
- black :"#000000",
- blanchedalmond :"#ffebcd",
- blue :"#0000ff",
- blueviolet :"#8a2be2",
- brown :"#a52a2a",
- burlywood :"#deb887",
- cadetblue :"#5f9ea0",
- chartreuse :"#7fff00",
- chocolate :"#d2691e",
- coral :"#ff7f50",
- cornflowerblue :"#6495ed",
- cornsilk :"#fff8dc",
- crimson :"#dc143c",
- cyan :"#00ffff",
- darkblue :"#00008b",
- darkcyan :"#008b8b",
- darkgoldenrod :"#b8860b",
- darkgray :"#a9a9a9",
- darkgreen :"#006400",
- darkkhaki :"#bdb76b",
- darkmagenta :"#8b008b",
- darkolivegreen :"#556b2f",
- darkorange :"#ff8c00",
- darkorchid :"#9932cc",
- darkred :"#8b0000",
- darksalmon :"#e9967a",
- darkseagreen :"#8fbc8f",
- darkslateblue :"#483d8b",
- darkslategray :"#2f4f4f",
- darkturquoise :"#00ced1",
- darkviolet :"#9400d3",
- deeppink :"#ff1493",
- deepskyblue :"#00bfff",
- dimgray :"#696969",
- dodgerblue :"#1e90ff",
- firebrick :"#b22222",
- floralwhite :"#fffaf0",
- forestgreen :"#228b22",
- fuchsia :"#ff00ff",
- gainsboro :"#dcdcdc",
- ghostwhite :"#f8f8ff",
- gold :"#ffd700",
- goldenrod :"#daa520",
- gray :"#808080",
- green :"#008000",
- greenyellow :"#adff2f",
- honeydew :"#f0fff0",
- hotpink :"#ff69b4",
- indianred :"#cd5c5c",
- indigo :"#4b0082",
- ivory :"#fffff0",
- khaki :"#f0e68c",
- lavender :"#e6e6fa",
- lavenderblush :"#fff0f5",
- lawngreen :"#7cfc00",
- lemonchiffon :"#fffacd",
- lightblue :"#add8e6",
- lightcoral :"#f08080",
- lightcyan :"#e0ffff",
- lightgoldenrodyellow :"#fafad2",
- lightgray :"#d3d3d3",
- lightgreen :"#90ee90",
- lightpink :"#ffb6c1",
- lightsalmon :"#ffa07a",
- lightseagreen :"#20b2aa",
- lightskyblue :"#87cefa",
- lightslategray :"#778899",
- lightsteelblue :"#b0c4de",
- lightyellow :"#ffffe0",
- lime :"#00ff00",
- limegreen :"#32cd32",
- linen :"#faf0e6",
- magenta :"#ff00ff",
- maroon :"#800000",
- mediumaquamarine:"#66cdaa",
- mediumblue :"#0000cd",
- mediumorchid :"#ba55d3",
- mediumpurple :"#9370d8",
- mediumseagreen :"#3cb371",
- mediumslateblue :"#7b68ee",
- mediumspringgreen :"#00fa9a",
- mediumturquoise :"#48d1cc",
- mediumvioletred :"#c71585",
- midnightblue :"#191970",
- mintcream :"#f5fffa",
- mistyrose :"#ffe4e1",
- moccasin :"#ffe4b5",
- navajowhite :"#ffdead",
- navy :"#000080",
- oldlace :"#fdf5e6",
- olive :"#808000",
- olivedrab :"#6b8e23",
- orange :"#ffa500",
- orangered :"#ff4500",
- orchid :"#da70d6",
- palegoldenrod :"#eee8aa",
- palegreen :"#98fb98",
- paleturquoise :"#afeeee",
- palevioletred :"#d87093",
- papayawhip :"#ffefd5",
- peachpuff :"#ffdab9",
- peru :"#cd853f",
- pink :"#ffc0cb",
- plum :"#dda0dd",
- powderblue :"#b0e0e6",
- purple :"#800080",
- red :"#ff0000",
- rosybrown :"#bc8f8f",
- royalblue :"#4169e1",
- saddlebrown :"#8b4513",
- salmon :"#fa8072",
- sandybrown :"#f4a460",
- seagreen :"#2e8b57",
- seashell :"#fff5ee",
- sienna :"#a0522d",
- silver :"#c0c0c0",
- skyblue :"#87ceeb",
- slateblue :"#6a5acd",
- slategray :"#708090",
- snow :"#fffafa",
- springgreen :"#00ff7f",
- steelblue :"#4682b4",
- tan :"#d2b48c",
- teal :"#008080",
- thistle :"#d8bfd8",
- tomato :"#ff6347",
- turquoise :"#40e0d0",
- violet :"#ee82ee",
- wheat :"#f5deb3",
- white :"#ffffff",
- whitesmoke :"#f5f5f5",
- yellow :"#ffff00",
- yellowgreen :"#9acd32",
- activeBorder :"Active window border.",
- activecaption :"Active window caption.",
- appworkspace :"Background color of multiple document interface.",
- background :"Desktop background.",
- buttonface :"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.",
- buttonhighlight :"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",
- buttonshadow :"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.",
- buttontext :"Text on push buttons.",
- captiontext :"Text in caption, size box, and scrollbar arrow box.",
- graytext :"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.",
- highlight :"Item(s) selected in a control.",
- highlighttext :"Text of item(s) selected in a control.",
- inactiveborder :"Inactive window border.",
- inactivecaption :"Inactive window caption.",
- inactivecaptiontext :"Color of text in an inactive caption.",
- infobackground :"Background color for tooltip controls.",
- infotext :"Text color for tooltip controls.",
- menu :"Menu background.",
- menutext :"Text in menus.",
- scrollbar :"Scroll bar gray area.",
- threeddarkshadow :"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
- threedface :"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
- threedhighlight :"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
- threedlightshadow :"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
- threedshadow :"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.",
- window :"Window background.",
- windowframe :"Window frame.",
- windowtext :"Text in windows."
-};
-function Combinator(text, line, col){
-
- SyntaxUnit.call(this, text, line, col, Parser.COMBINATOR_TYPE);
- this.type = "unknown";
- if (/^\s+$/.test(text)){
- this.type = "descendant";
- } else if (text == ">"){
- this.type = "child";
- } else if (text == "+"){
- this.type = "adjacent-sibling";
- } else if (text == "~"){
- this.type = "sibling";
- }
-
-}
-
-Combinator.prototype = new SyntaxUnit();
-Combinator.prototype.constructor = Combinator;
-function MediaFeature(name, value){
-
- SyntaxUnit.call(this, "(" + name + (value !== null ? ":" + value : "") + ")", name.startLine, name.startCol, Parser.MEDIA_FEATURE_TYPE);
- this.name = name;
- this.value = value;
-}
-
-MediaFeature.prototype = new SyntaxUnit();
-MediaFeature.prototype.constructor = MediaFeature;
-function MediaQuery(modifier, mediaType, features, line, col){
-
- SyntaxUnit.call(this, (modifier ? modifier + " ": "") + (mediaType ? mediaType : "") + (mediaType && features.length > 0 ? " and " : "") + features.join(" and "), line, col, Parser.MEDIA_QUERY_TYPE);
- this.modifier = modifier;
- this.mediaType = mediaType;
- this.features = features;
-
-}
-
-MediaQuery.prototype = new SyntaxUnit();
-MediaQuery.prototype.constructor = MediaQuery;
-function Parser(options){
- EventTarget.call(this);
-
-
- this.options = options || {};
-
- this._tokenStream = null;
-}
-Parser.DEFAULT_TYPE = 0;
-Parser.COMBINATOR_TYPE = 1;
-Parser.MEDIA_FEATURE_TYPE = 2;
-Parser.MEDIA_QUERY_TYPE = 3;
-Parser.PROPERTY_NAME_TYPE = 4;
-Parser.PROPERTY_VALUE_TYPE = 5;
-Parser.PROPERTY_VALUE_PART_TYPE = 6;
-Parser.SELECTOR_TYPE = 7;
-Parser.SELECTOR_PART_TYPE = 8;
-Parser.SELECTOR_SUB_PART_TYPE = 9;
-
-Parser.prototype = function(){
-
- var proto = new EventTarget(), //new prototype
- prop,
- additions = {
- constructor: Parser,
- DEFAULT_TYPE : 0,
- COMBINATOR_TYPE : 1,
- MEDIA_FEATURE_TYPE : 2,
- MEDIA_QUERY_TYPE : 3,
- PROPERTY_NAME_TYPE : 4,
- PROPERTY_VALUE_TYPE : 5,
- PROPERTY_VALUE_PART_TYPE : 6,
- SELECTOR_TYPE : 7,
- SELECTOR_PART_TYPE : 8,
- SELECTOR_SUB_PART_TYPE : 9,
-
- _stylesheet: function(){
-
- var tokenStream = this._tokenStream,
- charset = null,
- count,
- token,
- tt;
-
- this.fire("startstylesheet");
- this._charset();
-
- this._skipCruft();
- while (tokenStream.peek() == Tokens.IMPORT_SYM){
- this._import();
- this._skipCruft();
- }
- while (tokenStream.peek() == Tokens.NAMESPACE_SYM){
- this._namespace();
- this._skipCruft();
- }
- tt = tokenStream.peek();
- while(tt > Tokens.EOF){
-
- try {
-
- switch(tt){
- case Tokens.MEDIA_SYM:
- this._media();
- this._skipCruft();
- break;
- case Tokens.PAGE_SYM:
- this._page();
- this._skipCruft();
- break;
- case Tokens.FONT_FACE_SYM:
- this._font_face();
- this._skipCruft();
- break;
- case Tokens.KEYFRAMES_SYM:
- this._keyframes();
- this._skipCruft();
- break;
- case Tokens.UNKNOWN_SYM: //unknown @ rule
- tokenStream.get();
- if (!this.options.strict){
- this.fire({
- type: "error",
- error: null,
- message: "Unknown @ rule: " + tokenStream.LT(0).value + ".",
- line: tokenStream.LT(0).startLine,
- col: tokenStream.LT(0).startCol
- });
- count=0;
- while (tokenStream.advance([Tokens.LBRACE, Tokens.RBRACE]) == Tokens.LBRACE){
- count++; //keep track of nesting depth
- }
-
- while(count){
- tokenStream.advance([Tokens.RBRACE]);
- count--;
- }
-
- } else {
- throw new SyntaxError("Unknown @ rule.", tokenStream.LT(0).startLine, tokenStream.LT(0).startCol);
- }
- break;
- case Tokens.S:
- this._readWhitespace();
- break;
- default:
- if(!this._ruleset()){
- switch(tt){
- case Tokens.CHARSET_SYM:
- token = tokenStream.LT(1);
- this._charset(false);
- throw new SyntaxError("@charset not allowed here.", token.startLine, token.startCol);
- case Tokens.IMPORT_SYM:
- token = tokenStream.LT(1);
- this._import(false);
- throw new SyntaxError("@import not allowed here.", token.startLine, token.startCol);
- case Tokens.NAMESPACE_SYM:
- token = tokenStream.LT(1);
- this._namespace(false);
- throw new SyntaxError("@namespace not allowed here.", token.startLine, token.startCol);
- default:
- tokenStream.get(); //get the last token
- this._unexpectedToken(tokenStream.token());
- }
-
- }
- }
- } catch(ex) {
- if (ex instanceof SyntaxError && !this.options.strict){
- this.fire({
- type: "error",
- error: ex,
- message: ex.message,
- line: ex.line,
- col: ex.col
- });
- } else {
- throw ex;
- }
- }
-
- tt = tokenStream.peek();
- }
-
- if (tt != Tokens.EOF){
- this._unexpectedToken(tokenStream.token());
- }
-
- this.fire("endstylesheet");
- },
-
- _charset: function(emit){
- var tokenStream = this._tokenStream,
- charset,
- token,
- line,
- col;
-
- if (tokenStream.match(Tokens.CHARSET_SYM)){
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
-
- this._readWhitespace();
- tokenStream.mustMatch(Tokens.STRING);
-
- token = tokenStream.token();
- charset = token.value;
-
- this._readWhitespace();
- tokenStream.mustMatch(Tokens.SEMICOLON);
-
- if (emit !== false){
- this.fire({
- type: "charset",
- charset:charset,
- line: line,
- col: col
- });
- }
- }
- },
-
- _import: function(emit){
-
- var tokenStream = this._tokenStream,
- tt,
- uri,
- importToken,
- mediaList = [];
- tokenStream.mustMatch(Tokens.IMPORT_SYM);
- importToken = tokenStream.token();
- this._readWhitespace();
-
- tokenStream.mustMatch([Tokens.STRING, Tokens.URI]);
- uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1");
-
- this._readWhitespace();
-
- mediaList = this._media_query_list();
- tokenStream.mustMatch(Tokens.SEMICOLON);
- this._readWhitespace();
-
- if (emit !== false){
- this.fire({
- type: "import",
- uri: uri,
- media: mediaList,
- line: importToken.startLine,
- col: importToken.startCol
- });
- }
-
- },
-
- _namespace: function(emit){
-
- var tokenStream = this._tokenStream,
- line,
- col,
- prefix,
- uri;
- tokenStream.mustMatch(Tokens.NAMESPACE_SYM);
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
- this._readWhitespace();
- if (tokenStream.match(Tokens.IDENT)){
- prefix = tokenStream.token().value;
- this._readWhitespace();
- }
-
- tokenStream.mustMatch([Tokens.STRING, Tokens.URI]);
- uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1");
-
- this._readWhitespace();
- tokenStream.mustMatch(Tokens.SEMICOLON);
- this._readWhitespace();
-
- if (emit !== false){
- this.fire({
- type: "namespace",
- prefix: prefix,
- uri: uri,
- line: line,
- col: col
- });
- }
-
- },
-
- _media: function(){
- var tokenStream = this._tokenStream,
- line,
- col,
- mediaList;// = [];
- tokenStream.mustMatch(Tokens.MEDIA_SYM);
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
-
- this._readWhitespace();
-
- mediaList = this._media_query_list();
-
- tokenStream.mustMatch(Tokens.LBRACE);
- this._readWhitespace();
-
- this.fire({
- type: "startmedia",
- media: mediaList,
- line: line,
- col: col
- });
-
- while(true) {
- if (tokenStream.peek() == Tokens.PAGE_SYM){
- this._page();
- } else if (!this._ruleset()){
- break;
- }
- }
-
- tokenStream.mustMatch(Tokens.RBRACE);
- this._readWhitespace();
-
- this.fire({
- type: "endmedia",
- media: mediaList,
- line: line,
- col: col
- });
- },
- _media_query_list: function(){
- var tokenStream = this._tokenStream,
- mediaList = [];
-
-
- this._readWhitespace();
-
- if (tokenStream.peek() == Tokens.IDENT || tokenStream.peek() == Tokens.LPAREN){
- mediaList.push(this._media_query());
- }
-
- while(tokenStream.match(Tokens.COMMA)){
- this._readWhitespace();
- mediaList.push(this._media_query());
- }
-
- return mediaList;
- },
- _media_query: function(){
- var tokenStream = this._tokenStream,
- type = null,
- ident = null,
- token = null,
- expressions = [];
-
- if (tokenStream.match(Tokens.IDENT)){
- ident = tokenStream.token().value.toLowerCase();
- if (ident != "only" && ident != "not"){
- tokenStream.unget();
- ident = null;
- } else {
- token = tokenStream.token();
- }
- }
-
- this._readWhitespace();
-
- if (tokenStream.peek() == Tokens.IDENT){
- type = this._media_type();
- if (token === null){
- token = tokenStream.token();
- }
- } else if (tokenStream.peek() == Tokens.LPAREN){
- if (token === null){
- token = tokenStream.LT(1);
- }
- expressions.push(this._media_expression());
- }
-
- if (type === null && expressions.length === 0){
- return null;
- } else {
- this._readWhitespace();
- while (tokenStream.match(Tokens.IDENT)){
- if (tokenStream.token().value.toLowerCase() != "and"){
- this._unexpectedToken(tokenStream.token());
- }
-
- this._readWhitespace();
- expressions.push(this._media_expression());
- }
- }
-
- return new MediaQuery(ident, type, expressions, token.startLine, token.startCol);
- },
- _media_type: function(){
- return this._media_feature();
- },
- _media_expression: function(){
- var tokenStream = this._tokenStream,
- feature = null,
- token,
- expression = null;
-
- tokenStream.mustMatch(Tokens.LPAREN);
-
- feature = this._media_feature();
- this._readWhitespace();
-
- if (tokenStream.match(Tokens.COLON)){
- this._readWhitespace();
- token = tokenStream.LT(1);
- expression = this._expression();
- }
-
- tokenStream.mustMatch(Tokens.RPAREN);
- this._readWhitespace();
-
- return new MediaFeature(feature, (expression ? new SyntaxUnit(expression, token.startLine, token.startCol) : null));
- },
- _media_feature: function(){
- var tokenStream = this._tokenStream;
-
- tokenStream.mustMatch(Tokens.IDENT);
-
- return SyntaxUnit.fromToken(tokenStream.token());
- },
- _page: function(){
- var tokenStream = this._tokenStream,
- line,
- col,
- identifier = null,
- pseudoPage = null;
- tokenStream.mustMatch(Tokens.PAGE_SYM);
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
-
- this._readWhitespace();
-
- if (tokenStream.match(Tokens.IDENT)){
- identifier = tokenStream.token().value;
- if (identifier.toLowerCase() === "auto"){
- this._unexpectedToken(tokenStream.token());
- }
- }
- if (tokenStream.peek() == Tokens.COLON){
- pseudoPage = this._pseudo_page();
- }
-
- this._readWhitespace();
-
- this.fire({
- type: "startpage",
- id: identifier,
- pseudo: pseudoPage,
- line: line,
- col: col
- });
-
- this._readDeclarations(true, true);
-
- this.fire({
- type: "endpage",
- id: identifier,
- pseudo: pseudoPage,
- line: line,
- col: col
- });
-
- },
- _margin: function(){
- var tokenStream = this._tokenStream,
- line,
- col,
- marginSym = this._margin_sym();
-
- if (marginSym){
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
-
- this.fire({
- type: "startpagemargin",
- margin: marginSym,
- line: line,
- col: col
- });
-
- this._readDeclarations(true);
-
- this.fire({
- type: "endpagemargin",
- margin: marginSym,
- line: line,
- col: col
- });
- return true;
- } else {
- return false;
- }
- },
- _margin_sym: function(){
-
- var tokenStream = this._tokenStream;
-
- if(tokenStream.match([Tokens.TOPLEFTCORNER_SYM, Tokens.TOPLEFT_SYM,
- Tokens.TOPCENTER_SYM, Tokens.TOPRIGHT_SYM, Tokens.TOPRIGHTCORNER_SYM,
- Tokens.BOTTOMLEFTCORNER_SYM, Tokens.BOTTOMLEFT_SYM,
- Tokens.BOTTOMCENTER_SYM, Tokens.BOTTOMRIGHT_SYM,
- Tokens.BOTTOMRIGHTCORNER_SYM, Tokens.LEFTTOP_SYM,
- Tokens.LEFTMIDDLE_SYM, Tokens.LEFTBOTTOM_SYM, Tokens.RIGHTTOP_SYM,
- Tokens.RIGHTMIDDLE_SYM, Tokens.RIGHTBOTTOM_SYM]))
- {
- return SyntaxUnit.fromToken(tokenStream.token());
- } else {
- return null;
- }
-
- },
-
- _pseudo_page: function(){
-
- var tokenStream = this._tokenStream;
-
- tokenStream.mustMatch(Tokens.COLON);
- tokenStream.mustMatch(Tokens.IDENT);
-
- return tokenStream.token().value;
- },
-
- _font_face: function(){
- var tokenStream = this._tokenStream,
- line,
- col;
- tokenStream.mustMatch(Tokens.FONT_FACE_SYM);
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
-
- this._readWhitespace();
-
- this.fire({
- type: "startfontface",
- line: line,
- col: col
- });
-
- this._readDeclarations(true);
-
- this.fire({
- type: "endfontface",
- line: line,
- col: col
- });
- },
-
- _operator: function(inFunction){
-
- var tokenStream = this._tokenStream,
- token = null;
-
- if (tokenStream.match([Tokens.SLASH, Tokens.COMMA]) ||
- (inFunction && tokenStream.match([Tokens.PLUS, Tokens.STAR, Tokens.MINUS]))){
- token = tokenStream.token();
- this._readWhitespace();
- }
- return token ? PropertyValuePart.fromToken(token) : null;
-
- },
-
- _combinator: function(){
-
- var tokenStream = this._tokenStream,
- value = null,
- token;
-
- if(tokenStream.match([Tokens.PLUS, Tokens.GREATER, Tokens.TILDE])){
- token = tokenStream.token();
- value = new Combinator(token.value, token.startLine, token.startCol);
- this._readWhitespace();
- }
-
- return value;
- },
-
- _unary_operator: function(){
-
- var tokenStream = this._tokenStream;
-
- if (tokenStream.match([Tokens.MINUS, Tokens.PLUS])){
- return tokenStream.token().value;
- } else {
- return null;
- }
- },
-
- _property: function(){
-
- var tokenStream = this._tokenStream,
- value = null,
- hack = null,
- tokenValue,
- token,
- line,
- col;
- if (tokenStream.peek() == Tokens.STAR && this.options.starHack){
- tokenStream.get();
- token = tokenStream.token();
- hack = token.value;
- line = token.startLine;
- col = token.startCol;
- }
-
- if(tokenStream.match(Tokens.IDENT)){
- token = tokenStream.token();
- tokenValue = token.value;
- if (tokenValue.charAt(0) == "_" && this.options.underscoreHack){
- hack = "_";
- tokenValue = tokenValue.substring(1);
- }
-
- value = new PropertyName(tokenValue, hack, (line||token.startLine), (col||token.startCol));
- this._readWhitespace();
- }
-
- return value;
- },
- _ruleset: function(){
-
- var tokenStream = this._tokenStream,
- tt,
- selectors;
- try {
- selectors = this._selectors_group();
- } catch (ex){
- if (ex instanceof SyntaxError && !this.options.strict){
- this.fire({
- type: "error",
- error: ex,
- message: ex.message,
- line: ex.line,
- col: ex.col
- });
- tt = tokenStream.advance([Tokens.RBRACE]);
- if (tt == Tokens.RBRACE){
- } else {
- throw ex;
- }
-
- } else {
- throw ex;
- }
- return true;
- }
- if (selectors){
-
- this.fire({
- type: "startrule",
- selectors: selectors,
- line: selectors[0].line,
- col: selectors[0].col
- });
-
- this._readDeclarations(true);
-
- this.fire({
- type: "endrule",
- selectors: selectors,
- line: selectors[0].line,
- col: selectors[0].col
- });
-
- }
-
- return selectors;
-
- },
- _selectors_group: function(){
- var tokenStream = this._tokenStream,
- selectors = [],
- selector;
-
- selector = this._selector();
- if (selector !== null){
-
- selectors.push(selector);
- while(tokenStream.match(Tokens.COMMA)){
- this._readWhitespace();
- selector = this._selector();
- if (selector !== null){
- selectors.push(selector);
- } else {
- this._unexpectedToken(tokenStream.LT(1));
- }
- }
- }
-
- return selectors.length ? selectors : null;
- },
- _selector: function(){
-
- var tokenStream = this._tokenStream,
- selector = [],
- nextSelector = null,
- combinator = null,
- ws = null;
- nextSelector = this._simple_selector_sequence();
- if (nextSelector === null){
- return null;
- }
-
- selector.push(nextSelector);
-
- do {
- combinator = this._combinator();
-
- if (combinator !== null){
- selector.push(combinator);
- nextSelector = this._simple_selector_sequence();
- if (nextSelector === null){
- this._unexpectedToken(tokenStream.LT(1));
- } else {
- selector.push(nextSelector);
- }
- } else {
- if (this._readWhitespace()){
- ws = new Combinator(tokenStream.token().value, tokenStream.token().startLine, tokenStream.token().startCol);
- combinator = this._combinator();
- nextSelector = this._simple_selector_sequence();
- if (nextSelector === null){
- if (combinator !== null){
- this._unexpectedToken(tokenStream.LT(1));
- }
- } else {
-
- if (combinator !== null){
- selector.push(combinator);
- } else {
- selector.push(ws);
- }
-
- selector.push(nextSelector);
- }
- } else {
- break;
- }
-
- }
- } while(true);
-
- return new Selector(selector, selector[0].line, selector[0].col);
- },
- _simple_selector_sequence: function(){
-
- var tokenStream = this._tokenStream,
- elementName = null,
- modifiers = [],
- selectorText= "",
- components = [
- function(){
- return tokenStream.match(Tokens.HASH) ?
- new SelectorSubPart(tokenStream.token().value, "id", tokenStream.token().startLine, tokenStream.token().startCol) :
- null;
- },
- this._class,
- this._attrib,
- this._pseudo,
- this._negation
- ],
- i = 0,
- len = components.length,
- component = null,
- found = false,
- line,
- col;
- line = tokenStream.LT(1).startLine;
- col = tokenStream.LT(1).startCol;
-
- elementName = this._type_selector();
- if (!elementName){
- elementName = this._universal();
- }
-
- if (elementName !== null){
- selectorText += elementName;
- }
-
- while(true){
- if (tokenStream.peek() === Tokens.S){
- break;
- }
- while(i < len && component === null){
- component = components[i++].call(this);
- }
-
- if (component === null){
- if (selectorText === ""){
- return null;
- } else {
- break;
- }
- } else {
- i = 0;
- modifiers.push(component);
- selectorText += component.toString();
- component = null;
- }
- }
-
-
- return selectorText !== "" ?
- new SelectorPart(elementName, modifiers, selectorText, line, col) :
- null;
- },
- _type_selector: function(){
-
- var tokenStream = this._tokenStream,
- ns = this._namespace_prefix(),
- elementName = this._element_name();
-
- if (!elementName){
- if (ns){
- tokenStream.unget();
- if (ns.length > 1){
- tokenStream.unget();
- }
- }
-
- return null;
- } else {
- if (ns){
- elementName.text = ns + elementName.text;
- elementName.col -= ns.length;
- }
- return elementName;
- }
- },
- _class: function(){
-
- var tokenStream = this._tokenStream,
- token;
-
- if (tokenStream.match(Tokens.DOT)){
- tokenStream.mustMatch(Tokens.IDENT);
- token = tokenStream.token();
- return new SelectorSubPart("." + token.value, "class", token.startLine, token.startCol - 1);
- } else {
- return null;
- }
-
- },
- _element_name: function(){
-
- var tokenStream = this._tokenStream,
- token;
-
- if (tokenStream.match(Tokens.IDENT)){
- token = tokenStream.token();
- return new SelectorSubPart(token.value, "elementName", token.startLine, token.startCol);
-
- } else {
- return null;
- }
- },
- _namespace_prefix: function(){
- var tokenStream = this._tokenStream,
- value = "";
- if (tokenStream.LA(1) === Tokens.PIPE || tokenStream.LA(2) === Tokens.PIPE){
-
- if(tokenStream.match([Tokens.IDENT, Tokens.STAR])){
- value += tokenStream.token().value;
- }
-
- tokenStream.mustMatch(Tokens.PIPE);
- value += "|";
-
- }
-
- return value.length ? value : null;
- },
- _universal: function(){
- var tokenStream = this._tokenStream,
- value = "",
- ns;
-
- ns = this._namespace_prefix();
- if(ns){
- value += ns;
- }
-
- if(tokenStream.match(Tokens.STAR)){
- value += "*";
- }
-
- return value.length ? value : null;
-
- },
- _attrib: function(){
-
- var tokenStream = this._tokenStream,
- value = null,
- ns,
- token;
-
- if (tokenStream.match(Tokens.LBRACKET)){
- token = tokenStream.token();
- value = token.value;
- value += this._readWhitespace();
-
- ns = this._namespace_prefix();
-
- if (ns){
- value += ns;
- }
-
- tokenStream.mustMatch(Tokens.IDENT);
- value += tokenStream.token().value;
- value += this._readWhitespace();
-
- if(tokenStream.match([Tokens.PREFIXMATCH, Tokens.SUFFIXMATCH, Tokens.SUBSTRINGMATCH,
- Tokens.EQUALS, Tokens.INCLUDES, Tokens.DASHMATCH])){
-
- value += tokenStream.token().value;
- value += this._readWhitespace();
-
- tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]);
- value += tokenStream.token().value;
- value += this._readWhitespace();
- }
-
- tokenStream.mustMatch(Tokens.RBRACKET);
-
- return new SelectorSubPart(value + "]", "attribute", token.startLine, token.startCol);
- } else {
- return null;
- }
- },
- _pseudo: function(){
-
- var tokenStream = this._tokenStream,
- pseudo = null,
- colons = ":",
- line,
- col;
-
- if (tokenStream.match(Tokens.COLON)){
-
- if (tokenStream.match(Tokens.COLON)){
- colons += ":";
- }
-
- if (tokenStream.match(Tokens.IDENT)){
- pseudo = tokenStream.token().value;
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol - colons.length;
- } else if (tokenStream.peek() == Tokens.FUNCTION){
- line = tokenStream.LT(1).startLine;
- col = tokenStream.LT(1).startCol - colons.length;
- pseudo = this._functional_pseudo();
- }
-
- if (pseudo){
- pseudo = new SelectorSubPart(colons + pseudo, "pseudo", line, col);
- }
- }
-
- return pseudo;
- },
- _functional_pseudo: function(){
-
- var tokenStream = this._tokenStream,
- value = null;
-
- if(tokenStream.match(Tokens.FUNCTION)){
- value = tokenStream.token().value;
- value += this._readWhitespace();
- value += this._expression();
- tokenStream.mustMatch(Tokens.RPAREN);
- value += ")";
- }
-
- return value;
- },
- _expression: function(){
-
- var tokenStream = this._tokenStream,
- value = "";
-
- while(tokenStream.match([Tokens.PLUS, Tokens.MINUS, Tokens.DIMENSION,
- Tokens.NUMBER, Tokens.STRING, Tokens.IDENT, Tokens.LENGTH,
- Tokens.FREQ, Tokens.ANGLE, Tokens.TIME,
- Tokens.RESOLUTION, Tokens.SLASH])){
-
- value += tokenStream.token().value;
- value += this._readWhitespace();
- }
-
- return value.length ? value : null;
-
- },
- _negation: function(){
-
- var tokenStream = this._tokenStream,
- line,
- col,
- value = "",
- arg,
- subpart = null;
-
- if (tokenStream.match(Tokens.NOT)){
- value = tokenStream.token().value;
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
- value += this._readWhitespace();
- arg = this._negation_arg();
- value += arg;
- value += this._readWhitespace();
- tokenStream.match(Tokens.RPAREN);
- value += tokenStream.token().value;
-
- subpart = new SelectorSubPart(value, "not", line, col);
- subpart.args.push(arg);
- }
-
- return subpart;
- },
- _negation_arg: function(){
-
- var tokenStream = this._tokenStream,
- args = [
- this._type_selector,
- this._universal,
- function(){
- return tokenStream.match(Tokens.HASH) ?
- new SelectorSubPart(tokenStream.token().value, "id", tokenStream.token().startLine, tokenStream.token().startCol) :
- null;
- },
- this._class,
- this._attrib,
- this._pseudo
- ],
- arg = null,
- i = 0,
- len = args.length,
- elementName,
- line,
- col,
- part;
-
- line = tokenStream.LT(1).startLine;
- col = tokenStream.LT(1).startCol;
-
- while(i < len && arg === null){
-
- arg = args[i].call(this);
- i++;
- }
- if (arg === null){
- this._unexpectedToken(tokenStream.LT(1));
- }
- if (arg.type == "elementName"){
- part = new SelectorPart(arg, [], arg.toString(), line, col);
- } else {
- part = new SelectorPart(null, [arg], arg.toString(), line, col);
- }
-
- return part;
- },
-
- _declaration: function(){
-
- var tokenStream = this._tokenStream,
- property = null,
- expr = null,
- prio = null,
- error = null,
- invalid = null,
- propertyName= "";
-
- property = this._property();
- if (property !== null){
-
- tokenStream.mustMatch(Tokens.COLON);
- this._readWhitespace();
-
- expr = this._expr();
- if (!expr || expr.length === 0){
- this._unexpectedToken(tokenStream.LT(1));
- }
-
- prio = this._prio();
- propertyName = property.toString();
- if (this.options.starHack && property.hack == "*" ||
- this.options.underscoreHack && property.hack == "_") {
-
- propertyName = property.text;
- }
-
- try {
- this._validateProperty(propertyName, expr);
- } catch (ex) {
- invalid = ex;
- }
-
- this.fire({
- type: "property",
- property: property,
- value: expr,
- important: prio,
- line: property.line,
- col: property.col,
- invalid: invalid
- });
-
- return true;
- } else {
- return false;
- }
- },
-
- _prio: function(){
-
- var tokenStream = this._tokenStream,
- result = tokenStream.match(Tokens.IMPORTANT_SYM);
-
- this._readWhitespace();
- return result;
- },
-
- _expr: function(inFunction){
-
- var tokenStream = this._tokenStream,
- values = [],
- value = null,
- operator = null;
-
- value = this._term();
- if (value !== null){
-
- values.push(value);
-
- do {
- operator = this._operator(inFunction);
- if (operator){
- values.push(operator);
- } /*else {
- values.push(new PropertyValue(valueParts, valueParts[0].line, valueParts[0].col));
- valueParts = [];
- }*/
-
- value = this._term();
-
- if (value === null){
- break;
- } else {
- values.push(value);
- }
- } while(true);
- }
-
- return values.length > 0 ? new PropertyValue(values, values[0].line, values[0].col) : null;
- },
-
- _term: function(){
-
- var tokenStream = this._tokenStream,
- unary = null,
- value = null,
- token,
- line,
- col;
- unary = this._unary_operator();
- if (unary !== null){
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
- }
- if (tokenStream.peek() == Tokens.IE_FUNCTION && this.options.ieFilters){
-
- value = this._ie_function();
- if (unary === null){
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
- }
- } else if (tokenStream.match([Tokens.NUMBER, Tokens.PERCENTAGE, Tokens.LENGTH,
- Tokens.ANGLE, Tokens.TIME,
- Tokens.FREQ, Tokens.STRING, Tokens.IDENT, Tokens.URI, Tokens.UNICODE_RANGE])){
-
- value = tokenStream.token().value;
- if (unary === null){
- line = tokenStream.token().startLine;
- col = tokenStream.token().startCol;
- }
- this._readWhitespace();
- } else {
- token = this._hexcolor();
- if (token === null){
- if (unary === null){
- line = tokenStream.LT(1).startLine;
- col = tokenStream.LT(1).startCol;
- }
- if (value === null){
- if (tokenStream.LA(3) == Tokens.EQUALS && this.options.ieFilters){
- value = this._ie_function();
- } else {
- value = this._function();
- }
- }
-
- } else {
- value = token.value;
- if (unary === null){
- line = token.startLine;
- col = token.startCol;
- }
- }
-
- }
-
- return value !== null ?
- new PropertyValuePart(unary !== null ? unary + value : value, line, col) :
- null;
-
- },
-
- _function: function(){
-
- var tokenStream = this._tokenStream,
- functionText = null,
- expr = null,
- lt;
-
- if (tokenStream.match(Tokens.FUNCTION)){
- functionText = tokenStream.token().value;
- this._readWhitespace();
- expr = this._expr(true);
- functionText += expr;
- if (this.options.ieFilters && tokenStream.peek() == Tokens.EQUALS){
- do {
-
- if (this._readWhitespace()){
- functionText += tokenStream.token().value;
- }
- if (tokenStream.LA(0) == Tokens.COMMA){
- functionText += tokenStream.token().value;
- }
-
- tokenStream.match(Tokens.IDENT);
- functionText += tokenStream.token().value;
-
- tokenStream.match(Tokens.EQUALS);
- functionText += tokenStream.token().value;
- lt = tokenStream.peek();
- while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){
- tokenStream.get();
- functionText += tokenStream.token().value;
- lt = tokenStream.peek();
- }
- } while(tokenStream.match([Tokens.COMMA, Tokens.S]));
- }
-
- tokenStream.match(Tokens.RPAREN);
- functionText += ")";
- this._readWhitespace();
- }
-
- return functionText;
- },
-
- _ie_function: function(){
-
- var tokenStream = this._tokenStream,
- functionText = null,
- expr = null,
- lt;
- if (tokenStream.match([Tokens.IE_FUNCTION, Tokens.FUNCTION])){
- functionText = tokenStream.token().value;
-
- do {
-
- if (this._readWhitespace()){
- functionText += tokenStream.token().value;
- }
- if (tokenStream.LA(0) == Tokens.COMMA){
- functionText += tokenStream.token().value;
- }
-
- tokenStream.match(Tokens.IDENT);
- functionText += tokenStream.token().value;
-
- tokenStream.match(Tokens.EQUALS);
- functionText += tokenStream.token().value;
- lt = tokenStream.peek();
- while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){
- tokenStream.get();
- functionText += tokenStream.token().value;
- lt = tokenStream.peek();
- }
- } while(tokenStream.match([Tokens.COMMA, Tokens.S]));
-
- tokenStream.match(Tokens.RPAREN);
- functionText += ")";
- this._readWhitespace();
- }
-
- return functionText;
- },
-
- _hexcolor: function(){
-
- var tokenStream = this._tokenStream,
- token = null,
- color;
-
- if(tokenStream.match(Tokens.HASH)){
-
- token = tokenStream.token();
- color = token.value;
- if (!/#[a-f0-9]{3,6}/i.test(color)){
- throw new SyntaxError("Expected a hex color but found '" + color + "' at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol);
- }
- this._readWhitespace();
- }
-
- return token;
- },
-
- _keyframes: function(){
- var tokenStream = this._tokenStream,
- token,
- tt,
- name,
- prefix = "";
-
- tokenStream.mustMatch(Tokens.KEYFRAMES_SYM);
- token = tokenStream.token();
- if (/^@\-([^\-]+)\-/.test(token.value)) {
- prefix = RegExp.$1;
- }
-
- this._readWhitespace();
- name = this._keyframe_name();
-
- this._readWhitespace();
- tokenStream.mustMatch(Tokens.LBRACE);
-
- this.fire({
- type: "startkeyframes",
- name: name,
- prefix: prefix,
- line: token.startLine,
- col: token.startCol
- });
-
- this._readWhitespace();
- tt = tokenStream.peek();
- while(tt == Tokens.IDENT || tt == Tokens.PERCENTAGE) {
- this._keyframe_rule();
- this._readWhitespace();
- tt = tokenStream.peek();
- }
-
- this.fire({
- type: "endkeyframes",
- name: name,
- prefix: prefix,
- line: token.startLine,
- col: token.startCol
- });
-
- this._readWhitespace();
- tokenStream.mustMatch(Tokens.RBRACE);
-
- },
-
- _keyframe_name: function(){
- var tokenStream = this._tokenStream,
- token;
-
- tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]);
- return SyntaxUnit.fromToken(tokenStream.token());
- },
-
- _keyframe_rule: function(){
- var tokenStream = this._tokenStream,
- token,
- keyList = this._key_list();
-
- this.fire({
- type: "startkeyframerule",
- keys: keyList,
- line: keyList[0].line,
- col: keyList[0].col
- });
-
- this._readDeclarations(true);
-
- this.fire({
- type: "endkeyframerule",
- keys: keyList,
- line: keyList[0].line,
- col: keyList[0].col
- });
-
- },
-
- _key_list: function(){
- var tokenStream = this._tokenStream,
- token,
- key,
- keyList = [];
- keyList.push(this._key());
-
- this._readWhitespace();
-
- while(tokenStream.match(Tokens.COMMA)){
- this._readWhitespace();
- keyList.push(this._key());
- this._readWhitespace();
- }
-
- return keyList;
- },
-
- _key: function(){
-
- var tokenStream = this._tokenStream,
- token;
-
- if (tokenStream.match(Tokens.PERCENTAGE)){
- return SyntaxUnit.fromToken(tokenStream.token());
- } else if (tokenStream.match(Tokens.IDENT)){
- token = tokenStream.token();
-
- if (/from|to/i.test(token.value)){
- return SyntaxUnit.fromToken(token);
- }
-
- tokenStream.unget();
- }
- this._unexpectedToken(tokenStream.LT(1));
- },
- _skipCruft: function(){
- while(this._tokenStream.match([Tokens.S, Tokens.CDO, Tokens.CDC])){
- }
- },
- _readDeclarations: function(checkStart, readMargins){
- var tokenStream = this._tokenStream,
- tt;
-
-
- this._readWhitespace();
-
- if (checkStart){
- tokenStream.mustMatch(Tokens.LBRACE);
- }
-
- this._readWhitespace();
-
- try {
-
- while(true){
-
- if (tokenStream.match(Tokens.SEMICOLON) || (readMargins && this._margin())){
- } else if (this._declaration()){
- if (!tokenStream.match(Tokens.SEMICOLON)){
- break;
- }
- } else {
- break;
- }
- this._readWhitespace();
- }
-
- tokenStream.mustMatch(Tokens.RBRACE);
- this._readWhitespace();
-
- } catch (ex) {
- if (ex instanceof SyntaxError && !this.options.strict){
- this.fire({
- type: "error",
- error: ex,
- message: ex.message,
- line: ex.line,
- col: ex.col
- });
- tt = tokenStream.advance([Tokens.SEMICOLON, Tokens.RBRACE]);
- if (tt == Tokens.SEMICOLON){
- this._readDeclarations(false, readMargins);
- } else if (tt != Tokens.RBRACE){
- throw ex;
- }
-
- } else {
- throw ex;
- }
- }
-
- },
- _readWhitespace: function(){
-
- var tokenStream = this._tokenStream,
- ws = "";
-
- while(tokenStream.match(Tokens.S)){
- ws += tokenStream.token().value;
- }
-
- return ws;
- },
- _unexpectedToken: function(token){
- throw new SyntaxError("Unexpected token '" + token.value + "' at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol);
- },
- _verifyEnd: function(){
- if (this._tokenStream.LA(1) != Tokens.EOF){
- this._unexpectedToken(this._tokenStream.LT(1));
- }
- },
- _validateProperty: function(property, value){
- Validation.validate(property, value);
- },
-
- parse: function(input){
- this._tokenStream = new TokenStream(input, Tokens);
- this._stylesheet();
- },
-
- parseStyleSheet: function(input){
- return this.parse(input);
- },
-
- parseMediaQuery: function(input){
- this._tokenStream = new TokenStream(input, Tokens);
- var result = this._media_query();
- this._verifyEnd();
- return result;
- },
- parsePropertyValue: function(input){
-
- this._tokenStream = new TokenStream(input, Tokens);
- this._readWhitespace();
-
- var result = this._expr();
- this._readWhitespace();
- this._verifyEnd();
- return result;
- },
- parseRule: function(input){
- this._tokenStream = new TokenStream(input, Tokens);
- this._readWhitespace();
-
- var result = this._ruleset();
- this._readWhitespace();
- this._verifyEnd();
- return result;
- },
- parseSelector: function(input){
-
- this._tokenStream = new TokenStream(input, Tokens);
- this._readWhitespace();
-
- var result = this._selector();
- this._readWhitespace();
- this._verifyEnd();
- return result;
- },
- parseStyleAttribute: function(input){
- input += "}"; // for error recovery in _readDeclarations()
- this._tokenStream = new TokenStream(input, Tokens);
- this._readDeclarations();
- }
- };
- for (prop in additions){
- if (additions.hasOwnProperty(prop)){
- proto[prop] = additions[prop];
- }
- }
-
- return proto;
-}();
-var Properties = {
- "alignment-adjust" : "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | <percentage> | <length>",
- "alignment-baseline" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",
- "animation" : 1,
- "animation-delay" : { multi: "<time>", comma: true },
- "animation-direction" : { multi: "normal | alternate", comma: true },
- "animation-duration" : { multi: "<time>", comma: true },
- "animation-iteration-count" : { multi: "<number> | infinite", comma: true },
- "animation-name" : { multi: "none | <ident>", comma: true },
- "animation-play-state" : { multi: "running | paused", comma: true },
- "animation-timing-function" : 1,
- "-moz-animation-delay" : { multi: "<time>", comma: true },
- "-moz-animation-direction" : { multi: "normal | alternate", comma: true },
- "-moz-animation-duration" : { multi: "<time>", comma: true },
- "-moz-animation-iteration-count" : { multi: "<number> | infinite", comma: true },
- "-moz-animation-name" : { multi: "none | <ident>", comma: true },
- "-moz-animation-play-state" : { multi: "running | paused", comma: true },
-
- "-ms-animation-delay" : { multi: "<time>", comma: true },
- "-ms-animation-direction" : { multi: "normal | alternate", comma: true },
- "-ms-animation-duration" : { multi: "<time>", comma: true },
- "-ms-animation-iteration-count" : { multi: "<number> | infinite", comma: true },
- "-ms-animation-name" : { multi: "none | <ident>", comma: true },
- "-ms-animation-play-state" : { multi: "running | paused", comma: true },
-
- "-webkit-animation-delay" : { multi: "<time>", comma: true },
- "-webkit-animation-direction" : { multi: "normal | alternate", comma: true },
- "-webkit-animation-duration" : { multi: "<time>", comma: true },
- "-webkit-animation-iteration-count" : { multi: "<number> | infinite", comma: true },
- "-webkit-animation-name" : { multi: "none | <ident>", comma: true },
- "-webkit-animation-play-state" : { multi: "running | paused", comma: true },
-
- "-o-animation-delay" : { multi: "<time>", comma: true },
- "-o-animation-direction" : { multi: "normal | alternate", comma: true },
- "-o-animation-duration" : { multi: "<time>", comma: true },
- "-o-animation-iteration-count" : { multi: "<number> | infinite", comma: true },
- "-o-animation-name" : { multi: "none | <ident>", comma: true },
- "-o-animation-play-state" : { multi: "running | paused", comma: true },
-
- "appearance" : "icon | window | desktop | workspace | document | tooltip | dialog | button | push-button | hyperlink | radio-button | checkbox | menu-item | tab | menu | menubar | pull-down-menu | pop-up-menu | list-menu | radio-group | checkbox-group | outline-tree | range | field | combo-box | signature | password | normal | none | inherit",
- "azimuth" : function (expression) {
- var simple = "<angle> | leftwards | rightwards | inherit",
- direction = "left-side | far-left | left | center-left | center | center-right | right | far-right | right-side",
- behind = false,
- valid = false,
- part;
-
- if (!ValidationTypes.isAny(expression, simple)) {
- if (ValidationTypes.isAny(expression, "behind")) {
- behind = true;
- valid = true;
- }
-
- if (ValidationTypes.isAny(expression, direction)) {
- valid = true;
- if (!behind) {
- ValidationTypes.isAny(expression, "behind");
- }
- }
- }
-
- if (expression.hasNext()) {
- part = expression.next();
- if (valid) {
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- } else {
- throw new ValidationError("Expected (<'azimuth'>) but found '" + part + "'.", part.line, part.col);
- }
- }
- },
- "backface-visibility" : "visible | hidden",
- "background" : 1,
- "background-attachment" : { multi: "<attachment>", comma: true },
- "background-clip" : { multi: "<box>", comma: true },
- "background-color" : "<color> | inherit",
- "background-image" : { multi: "<bg-image>", comma: true },
- "background-origin" : { multi: "<box>", comma: true },
- "background-position" : { multi: "<bg-position>", comma: true },
- "background-repeat" : { multi: "<repeat-style>" },
- "background-size" : { multi: "<bg-size>", comma: true },
- "baseline-shift" : "baseline | sub | super | <percentage> | <length>",
- "behavior" : 1,
- "binding" : 1,
- "bleed" : "<length>",
- "bookmark-label" : "<content> | <attr> | <string>",
- "bookmark-level" : "none | <integer>",
- "bookmark-state" : "open | closed",
- "bookmark-target" : "none | <uri> | <attr>",
- "border" : "<border-width> || <border-style> || <color>",
- "border-bottom" : "<border-width> || <border-style> || <color>",
- "border-bottom-color" : "<color>",
- "border-bottom-left-radius" : "<x-one-radius>",
- "border-bottom-right-radius" : "<x-one-radius>",
- "border-bottom-style" : "<border-style>",
- "border-bottom-width" : "<border-width>",
- "border-collapse" : "collapse | separate | inherit",
- "border-color" : { multi: "<color> | inherit", max: 4 },
- "border-image" : 1,
- "border-image-outset" : { multi: "<length> | <number>", max: 4 },
- "border-image-repeat" : { multi: "stretch | repeat | round", max: 2 },
- "border-image-slice" : function(expression) {
-
- var valid = false,
- numeric = "<number> | <percentage>",
- fill = false,
- count = 0,
- max = 4,
- part;
-
- if (ValidationTypes.isAny(expression, "fill")) {
- fill = true;
- valid = true;
- }
-
- while (expression.hasNext() && count < max) {
- valid = ValidationTypes.isAny(expression, numeric);
- if (!valid) {
- break;
- }
- count++;
- }
-
-
- if (!fill) {
- ValidationTypes.isAny(expression, "fill");
- } else {
- valid = true;
- }
-
- if (expression.hasNext()) {
- part = expression.next();
- if (valid) {
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- } else {
- throw new ValidationError("Expected ([<number> | <percentage>]{1,4} && fill?) but found '" + part + "'.", part.line, part.col);
- }
- }
- },
- "border-image-source" : "<image> | none",
- "border-image-width" : { multi: "<length> | <percentage> | <number> | auto", max: 4 },
- "border-left" : "<border-width> || <border-style> || <color>",
- "border-left-color" : "<color> | inherit",
- "border-left-style" : "<border-style>",
- "border-left-width" : "<border-width>",
- "border-radius" : function(expression) {
-
- var valid = false,
- numeric = "<length> | <percentage>",
- slash = false,
- fill = false,
- count = 0,
- max = 8,
- part;
-
- while (expression.hasNext() && count < max) {
- valid = ValidationTypes.isAny(expression, numeric);
- if (!valid) {
-
- if (expression.peek() == "/" && count > 0 && !slash) {
- slash = true;
- max = count + 5;
- expression.next();
- } else {
- break;
- }
- }
- count++;
- }
-
- if (expression.hasNext()) {
- part = expression.next();
- if (valid) {
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- } else {
- throw new ValidationError("Expected (<'border-radius'>) but found '" + part + "'.", part.line, part.col);
- }
- }
- },
- "border-right" : "<border-width> || <border-style> || <color>",
- "border-right-color" : "<color> | inherit",
- "border-right-style" : "<border-style>",
- "border-right-width" : "<border-width>",
- "border-spacing" : { multi: "<length> | inherit", max: 2 },
- "border-style" : { multi: "<border-style>", max: 4 },
- "border-top" : "<border-width> || <border-style> || <color>",
- "border-top-color" : "<color> | inherit",
- "border-top-left-radius" : "<x-one-radius>",
- "border-top-right-radius" : "<x-one-radius>",
- "border-top-style" : "<border-style>",
- "border-top-width" : "<border-width>",
- "border-width" : { multi: "<border-width>", max: 4 },
- "bottom" : "<margin-width> | inherit",
- "box-align" : "start | end | center | baseline | stretch", //http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/
- "box-decoration-break" : "slice |clone",
- "box-direction" : "normal | reverse | inherit",
- "box-flex" : "<number>",
- "box-flex-group" : "<integer>",
- "box-lines" : "single | multiple",
- "box-ordinal-group" : "<integer>",
- "box-orient" : "horizontal | vertical | inline-axis | block-axis | inherit",
- "box-pack" : "start | end | center | justify",
- "box-shadow" : function (expression) {
- var result = false,
- part;
-
- if (!ValidationTypes.isAny(expression, "none")) {
- Validation.multiProperty("<shadow>", expression, true, Infinity);
- } else {
- if (expression.hasNext()) {
- part = expression.next();
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- }
- }
- },
- "box-sizing" : "content-box | border-box | inherit",
- "break-after" : "auto | always | avoid | left | right | page | column | avoid-page | avoid-column",
- "break-before" : "auto | always | avoid | left | right | page | column | avoid-page | avoid-column",
- "break-inside" : "auto | avoid | avoid-page | avoid-column",
- "caption-side" : "top | bottom | inherit",
- "clear" : "none | right | left | both | inherit",
- "clip" : 1,
- "color" : "<color> | inherit",
- "color-profile" : 1,
- "column-count" : "<integer> | auto", //http://www.w3.org/TR/css3-multicol/
- "column-fill" : "auto | balance",
- "column-gap" : "<length> | normal",
- "column-rule" : "<border-width> || <border-style> || <color>",
- "column-rule-color" : "<color>",
- "column-rule-style" : "<border-style>",
- "column-rule-width" : "<border-width>",
- "column-span" : "none | all",
- "column-width" : "<length> | auto",
- "columns" : 1,
- "content" : 1,
- "counter-increment" : 1,
- "counter-reset" : 1,
- "crop" : "<shape> | auto",
- "cue" : "cue-after | cue-before | inherit",
- "cue-after" : 1,
- "cue-before" : 1,
- "cursor" : 1,
- "direction" : "ltr | rtl | inherit",
- "display" : "inline | block | list-item | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | box | inline-box | grid | inline-grid | none | inherit | -moz-box | -moz-inline-block | -moz-inline-box | -moz-inline-grid | -moz-inline-stack | -moz-inline-table | -moz-grid | -moz-grid-group | -moz-grid-line | -moz-groupbox | -moz-deck | -moz-popup | -moz-stack | -moz-marker",
- "dominant-baseline" : 1,
- "drop-initial-after-adjust" : "central | middle | after-edge | text-after-edge | ideographic | alphabetic | mathematical | <percentage> | <length>",
- "drop-initial-after-align" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",
- "drop-initial-before-adjust" : "before-edge | text-before-edge | central | middle | hanging | mathematical | <percentage> | <length>",
- "drop-initial-before-align" : "caps-height | baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical",
- "drop-initial-size" : "auto | line | <length> | <percentage>",
- "drop-initial-value" : "initial | <integer>",
- "elevation" : "<angle> | below | level | above | higher | lower | inherit",
- "empty-cells" : "show | hide | inherit",
- "filter" : 1,
- "fit" : "fill | hidden | meet | slice",
- "fit-position" : 1,
- "float" : "left | right | none | inherit",
- "float-offset" : 1,
- "font" : 1,
- "font-family" : 1,
- "font-size" : "<absolute-size> | <relative-size> | <length> | <percentage> | inherit",
- "font-size-adjust" : "<number> | none | inherit",
- "font-stretch" : "normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit",
- "font-style" : "normal | italic | oblique | inherit",
- "font-variant" : "normal | small-caps | inherit",
- "font-weight" : "normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit",
- "grid-cell-stacking" : "columns | rows | layer",
- "grid-column" : 1,
- "grid-columns" : 1,
- "grid-column-align" : "start | end | center | stretch",
- "grid-column-sizing" : 1,
- "grid-column-span" : "<integer>",
- "grid-flow" : "none | rows | columns",
- "grid-layer" : "<integer>",
- "grid-row" : 1,
- "grid-rows" : 1,
- "grid-row-align" : "start | end | center | stretch",
- "grid-row-span" : "<integer>",
- "grid-row-sizing" : 1,
- "hanging-punctuation" : 1,
- "height" : "<margin-width> | inherit",
- "hyphenate-after" : "<integer> | auto",
- "hyphenate-before" : "<integer> | auto",
- "hyphenate-character" : "<string> | auto",
- "hyphenate-lines" : "no-limit | <integer>",
- "hyphenate-resource" : 1,
- "hyphens" : "none | manual | auto",
- "icon" : 1,
- "image-orientation" : "angle | auto",
- "image-rendering" : 1,
- "image-resolution" : 1,
- "inline-box-align" : "initial | last | <integer>",
- "left" : "<margin-width> | inherit",
- "letter-spacing" : "<length> | normal | inherit",
- "line-height" : "<number> | <length> | <percentage> | normal | inherit",
- "line-break" : "auto | loose | normal | strict",
- "line-stacking" : 1,
- "line-stacking-ruby" : "exclude-ruby | include-ruby",
- "line-stacking-shift" : "consider-shifts | disregard-shifts",
- "line-stacking-strategy" : "inline-line-height | block-line-height | max-height | grid-height",
- "list-style" : 1,
- "list-style-image" : "<uri> | none | inherit",
- "list-style-position" : "inside | outside | inherit",
- "list-style-type" : "disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit",
- "margin" : { multi: "<margin-width> | inherit", max: 4 },
- "margin-bottom" : "<margin-width> | inherit",
- "margin-left" : "<margin-width> | inherit",
- "margin-right" : "<margin-width> | inherit",
- "margin-top" : "<margin-width> | inherit",
- "mark" : 1,
- "mark-after" : 1,
- "mark-before" : 1,
- "marks" : 1,
- "marquee-direction" : 1,
- "marquee-play-count" : 1,
- "marquee-speed" : 1,
- "marquee-style" : 1,
- "max-height" : "<length> | <percentage> | none | inherit",
- "max-width" : "<length> | <percentage> | none | inherit",
- "min-height" : "<length> | <percentage> | inherit",
- "min-width" : "<length> | <percentage> | inherit",
- "move-to" : 1,
- "nav-down" : 1,
- "nav-index" : 1,
- "nav-left" : 1,
- "nav-right" : 1,
- "nav-up" : 1,
- "opacity" : "<number> | inherit",
- "orphans" : "<integer> | inherit",
- "outline" : 1,
- "outline-color" : "<color> | invert | inherit",
- "outline-offset" : 1,
- "outline-style" : "<border-style> | inherit",
- "outline-width" : "<border-width> | inherit",
- "overflow" : "visible | hidden | scroll | auto | inherit",
- "overflow-style" : 1,
- "overflow-x" : 1,
- "overflow-y" : 1,
- "padding" : { multi: "<padding-width> | inherit", max: 4 },
- "padding-bottom" : "<padding-width> | inherit",
- "padding-left" : "<padding-width> | inherit",
- "padding-right" : "<padding-width> | inherit",
- "padding-top" : "<padding-width> | inherit",
- "page" : 1,
- "page-break-after" : "auto | always | avoid | left | right | inherit",
- "page-break-before" : "auto | always | avoid | left | right | inherit",
- "page-break-inside" : "auto | avoid | inherit",
- "page-policy" : 1,
- "pause" : 1,
- "pause-after" : 1,
- "pause-before" : 1,
- "perspective" : 1,
- "perspective-origin" : 1,
- "phonemes" : 1,
- "pitch" : 1,
- "pitch-range" : 1,
- "play-during" : 1,
- "pointer-events" : "auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit",
- "position" : "static | relative | absolute | fixed | inherit",
- "presentation-level" : 1,
- "punctuation-trim" : 1,
- "quotes" : 1,
- "rendering-intent" : 1,
- "resize" : 1,
- "rest" : 1,
- "rest-after" : 1,
- "rest-before" : 1,
- "richness" : 1,
- "right" : "<margin-width> | inherit",
- "rotation" : 1,
- "rotation-point" : 1,
- "ruby-align" : 1,
- "ruby-overhang" : 1,
- "ruby-position" : 1,
- "ruby-span" : 1,
- "size" : 1,
- "speak" : "normal | none | spell-out | inherit",
- "speak-header" : "once | always | inherit",
- "speak-numeral" : "digits | continuous | inherit",
- "speak-punctuation" : "code | none | inherit",
- "speech-rate" : 1,
- "src" : 1,
- "stress" : 1,
- "string-set" : 1,
-
- "table-layout" : "auto | fixed | inherit",
- "tab-size" : "<integer> | <length>",
- "target" : 1,
- "target-name" : 1,
- "target-new" : 1,
- "target-position" : 1,
- "text-align" : "left | right | center | justify | inherit" ,
- "text-align-last" : 1,
- "text-decoration" : 1,
- "text-emphasis" : 1,
- "text-height" : 1,
- "text-indent" : "<length> | <percentage> | inherit",
- "text-justify" : "auto | none | inter-word | inter-ideograph | inter-cluster | distribute | kashida",
- "text-outline" : 1,
- "text-overflow" : 1,
- "text-rendering" : "auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit",
- "text-shadow" : 1,
- "text-transform" : "capitalize | uppercase | lowercase | none | inherit",
- "text-wrap" : "normal | none | avoid",
- "top" : "<margin-width> | inherit",
- "transform" : 1,
- "transform-origin" : 1,
- "transform-style" : 1,
- "transition" : 1,
- "transition-delay" : 1,
- "transition-duration" : 1,
- "transition-property" : 1,
- "transition-timing-function" : 1,
- "unicode-bidi" : "normal | embed | bidi-override | inherit",
- "user-modify" : "read-only | read-write | write-only | inherit",
- "user-select" : "none | text | toggle | element | elements | all | inherit",
- "vertical-align" : "auto | use-script | baseline | sub | super | top | text-top | central | middle | bottom | text-bottom | <percentage> | <length>",
- "visibility" : "visible | hidden | collapse | inherit",
- "voice-balance" : 1,
- "voice-duration" : 1,
- "voice-family" : 1,
- "voice-pitch" : 1,
- "voice-pitch-range" : 1,
- "voice-rate" : 1,
- "voice-stress" : 1,
- "voice-volume" : 1,
- "volume" : 1,
- "white-space" : "normal | pre | nowrap | pre-wrap | pre-line | inherit | -pre-wrap | -o-pre-wrap | -moz-pre-wrap | -hp-pre-wrap", //http://perishablepress.com/wrapping-content/
- "white-space-collapse" : 1,
- "widows" : "<integer> | inherit",
- "width" : "<length> | <percentage> | auto | inherit" ,
- "word-break" : "normal | keep-all | break-all",
- "word-spacing" : "<length> | normal | inherit",
- "word-wrap" : 1,
- "z-index" : "<integer> | auto | inherit",
- "zoom" : "<number> | <percentage> | normal"
-};
-function PropertyName(text, hack, line, col){
-
- SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_NAME_TYPE);
- this.hack = hack;
-
-}
-
-PropertyName.prototype = new SyntaxUnit();
-PropertyName.prototype.constructor = PropertyName;
-PropertyName.prototype.toString = function(){
- return (this.hack ? this.hack : "") + this.text;
-};
-function PropertyValue(parts, line, col){
-
- SyntaxUnit.call(this, parts.join(" "), line, col, Parser.PROPERTY_VALUE_TYPE);
- this.parts = parts;
-
-}
-
-PropertyValue.prototype = new SyntaxUnit();
-PropertyValue.prototype.constructor = PropertyValue;
-function PropertyValueIterator(value){
- this._i = 0;
- this._parts = value.parts;
- this._marks = [];
- this.value = value;
-
-}
-PropertyValueIterator.prototype.count = function(){
- return this._parts.length;
-};
-PropertyValueIterator.prototype.isFirst = function(){
- return this._i === 0;
-};
-PropertyValueIterator.prototype.hasNext = function(){
- return (this._i < this._parts.length);
-};
-PropertyValueIterator.prototype.mark = function(){
- this._marks.push(this._i);
-};
-PropertyValueIterator.prototype.peek = function(count){
- return this.hasNext() ? this._parts[this._i + (count || 0)] : null;
-};
-PropertyValueIterator.prototype.next = function(){
- return this.hasNext() ? this._parts[this._i++] : null;
-};
-PropertyValueIterator.prototype.previous = function(){
- return this._i > 0 ? this._parts[--this._i] : null;
-};
-PropertyValueIterator.prototype.restore = function(){
- if (this._marks.length){
- this._i = this._marks.pop();
- }
-};
-function PropertyValuePart(text, line, col){
-
- SyntaxUnit.call(this, text, line, col, Parser.PROPERTY_VALUE_PART_TYPE);
- this.type = "unknown";
-
- var temp;
- if (/^([+\-]?[\d\.]+)([a-z]+)$/i.test(text)){ //dimension
- this.type = "dimension";
- this.value = +RegExp.$1;
- this.units = RegExp.$2;
- switch(this.units.toLowerCase()){
-
- case "em":
- case "rem":
- case "ex":
- case "px":
- case "cm":
- case "mm":
- case "in":
- case "pt":
- case "pc":
- case "ch":
- this.type = "length";
- break;
-
- case "deg":
- case "rad":
- case "grad":
- this.type = "angle";
- break;
-
- case "ms":
- case "s":
- this.type = "time";
- break;
-
- case "hz":
- case "khz":
- this.type = "frequency";
- break;
-
- case "dpi":
- case "dpcm":
- this.type = "resolution";
- break;
-
- }
-
- } else if (/^([+\-]?[\d\.]+)%$/i.test(text)){ //percentage
- this.type = "percentage";
- this.value = +RegExp.$1;
- } else if (/^([+\-]?[\d\.]+)%$/i.test(text)){ //percentage
- this.type = "percentage";
- this.value = +RegExp.$1;
- } else if (/^([+\-]?\d+)$/i.test(text)){ //integer
- this.type = "integer";
- this.value = +RegExp.$1;
- } else if (/^([+\-]?[\d\.]+)$/i.test(text)){ //number
- this.type = "number";
- this.value = +RegExp.$1;
-
- } else if (/^#([a-f0-9]{3,6})/i.test(text)){ //hexcolor
- this.type = "color";
- temp = RegExp.$1;
- if (temp.length == 3){
- this.red = parseInt(temp.charAt(0)+temp.charAt(0),16);
- this.green = parseInt(temp.charAt(1)+temp.charAt(1),16);
- this.blue = parseInt(temp.charAt(2)+temp.charAt(2),16);
- } else {
- this.red = parseInt(temp.substring(0,2),16);
- this.green = parseInt(temp.substring(2,4),16);
- this.blue = parseInt(temp.substring(4,6),16);
- }
- } else if (/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i.test(text)){ //rgb() color with absolute numbers
- this.type = "color";
- this.red = +RegExp.$1;
- this.green = +RegExp.$2;
- this.blue = +RegExp.$3;
- } else if (/^rgb\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)){ //rgb() color with percentages
- this.type = "color";
- this.red = +RegExp.$1 * 255 / 100;
- this.green = +RegExp.$2 * 255 / 100;
- this.blue = +RegExp.$3 * 255 / 100;
- } else if (/^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d\.]+)\s*\)/i.test(text)){ //rgba() color with absolute numbers
- this.type = "color";
- this.red = +RegExp.$1;
- this.green = +RegExp.$2;
- this.blue = +RegExp.$3;
- this.alpha = +RegExp.$4;
- } else if (/^rgba\(\s*(\d+)%\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)){ //rgba() color with percentages
- this.type = "color";
- this.red = +RegExp.$1 * 255 / 100;
- this.green = +RegExp.$2 * 255 / 100;
- this.blue = +RegExp.$3 * 255 / 100;
- this.alpha = +RegExp.$4;
- } else if (/^hsl\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*\)/i.test(text)){ //hsl()
- this.type = "color";
- this.hue = +RegExp.$1;
- this.saturation = +RegExp.$2 / 100;
- this.lightness = +RegExp.$3 / 100;
- } else if (/^hsla\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*,\s*([\d\.]+)\s*\)/i.test(text)){ //hsla() color with percentages
- this.type = "color";
- this.hue = +RegExp.$1;
- this.saturation = +RegExp.$2 / 100;
- this.lightness = +RegExp.$3 / 100;
- this.alpha = +RegExp.$4;
- } else if (/^url\(["']?([^\)"']+)["']?\)/i.test(text)){ //URI
- this.type = "uri";
- this.uri = RegExp.$1;
- } else if (/^([^\(]+)\(/i.test(text)){
- this.type = "function";
- this.name = RegExp.$1;
- this.value = text;
- } else if (/^["'][^"']*["']/.test(text)){ //string
- this.type = "string";
- this.value = eval(text);
- } else if (Colors[text.toLowerCase()]){ //named color
- this.type = "color";
- temp = Colors[text.toLowerCase()].substring(1);
- this.red = parseInt(temp.substring(0,2),16);
- this.green = parseInt(temp.substring(2,4),16);
- this.blue = parseInt(temp.substring(4,6),16);
- } else if (/^[\,\/]$/.test(text)){
- this.type = "operator";
- this.value = text;
- } else if (/^[a-z\-\u0080-\uFFFF][a-z0-9\-\u0080-\uFFFF]*$/i.test(text)){
- this.type = "identifier";
- this.value = text;
- }
-
-}
-
-PropertyValuePart.prototype = new SyntaxUnit();
-PropertyValuePart.prototype.constructor = PropertyValuePart;
-PropertyValuePart.fromToken = function(token){
- return new PropertyValuePart(token.value, token.startLine, token.startCol);
-};
-var Pseudos = {
- ":first-letter": 1,
- ":first-line": 1,
- ":before": 1,
- ":after": 1
-};
-
-Pseudos.ELEMENT = 1;
-Pseudos.CLASS = 2;
-
-Pseudos.isElement = function(pseudo){
- return pseudo.indexOf("::") === 0 || Pseudos[pseudo.toLowerCase()] == Pseudos.ELEMENT;
-};
-function Selector(parts, line, col){
-
- SyntaxUnit.call(this, parts.join(" "), line, col, Parser.SELECTOR_TYPE);
- this.parts = parts;
- this.specificity = Specificity.calculate(this);
-
-}
-
-Selector.prototype = new SyntaxUnit();
-Selector.prototype.constructor = Selector;
-function SelectorPart(elementName, modifiers, text, line, col){
-
- SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_PART_TYPE);
- this.elementName = elementName;
- this.modifiers = modifiers;
-
-}
-
-SelectorPart.prototype = new SyntaxUnit();
-SelectorPart.prototype.constructor = SelectorPart;
-function SelectorSubPart(text, type, line, col){
-
- SyntaxUnit.call(this, text, line, col, Parser.SELECTOR_SUB_PART_TYPE);
- this.type = type;
- this.args = [];
-
-}
-
-SelectorSubPart.prototype = new SyntaxUnit();
-SelectorSubPart.prototype.constructor = SelectorSubPart;
-function Specificity(a, b, c, d){
- this.a = a;
- this.b = b;
- this.c = c;
- this.d = d;
-}
-
-Specificity.prototype = {
- constructor: Specificity,
- compare: function(other){
- var comps = ["a", "b", "c", "d"],
- i, len;
-
- for (i=0, len=comps.length; i < len; i++){
- if (this[comps[i]] < other[comps[i]]){
- return -1;
- } else if (this[comps[i]] > other[comps[i]]){
- return 1;
- }
- }
-
- return 0;
- },
- valueOf: function(){
- return (this.a * 1000) + (this.b * 100) + (this.c * 10) + this.d;
- },
- toString: function(){
- return this.a + "," + this.b + "," + this.c + "," + this.d;
- }
-
-};
-Specificity.calculate = function(selector){
-
- var i, len,
- part,
- b=0, c=0, d=0;
-
- function updateValues(part){
-
- var i, j, len, num,
- elementName = part.elementName ? part.elementName.text : "",
- modifier;
-
- if (elementName && elementName.charAt(elementName.length-1) != "*") {
- d++;
- }
-
- for (i=0, len=part.modifiers.length; i < len; i++){
- modifier = part.modifiers[i];
- switch(modifier.type){
- case "class":
- case "attribute":
- c++;
- break;
-
- case "id":
- b++;
- break;
-
- case "pseudo":
- if (Pseudos.isElement(modifier.text)){
- d++;
- } else {
- c++;
- }
- break;
-
- case "not":
- for (j=0, num=modifier.args.length; j < num; j++){
- updateValues(modifier.args[j]);
- }
- }
- }
- }
-
- for (i=0, len=selector.parts.length; i < len; i++){
- part = selector.parts[i];
-
- if (part instanceof SelectorPart){
- updateValues(part);
- }
- }
-
- return new Specificity(0, b, c, d);
-};
-
-var h = /^[0-9a-fA-F]$/,
- nonascii = /^[\u0080-\uFFFF]$/,
- nl = /\n|\r\n|\r|\f/;
-
-
-function isHexDigit(c){
- return c !== null && h.test(c);
-}
-
-function isDigit(c){
- return c !== null && /\d/.test(c);
-}
-
-function isWhitespace(c){
- return c !== null && /\s/.test(c);
-}
-
-function isNewLine(c){
- return c !== null && nl.test(c);
-}
-
-function isNameStart(c){
- return c !== null && (/[a-z_\u0080-\uFFFF\\]/i.test(c));
-}
-
-function isNameChar(c){
- return c !== null && (isNameStart(c) || /[0-9\-\\]/.test(c));
-}
-
-function isIdentStart(c){
- return c !== null && (isNameStart(c) || /\-\\/.test(c));
-}
-
-function mix(receiver, supplier){
- for (var prop in supplier){
- if (supplier.hasOwnProperty(prop)){
- receiver[prop] = supplier[prop];
- }
- }
- return receiver;
-}
-function TokenStream(input){
- TokenStreamBase.call(this, input, Tokens);
-}
-
-TokenStream.prototype = mix(new TokenStreamBase(), {
- _getToken: function(channel){
-
- var c,
- reader = this._reader,
- token = null,
- startLine = reader.getLine(),
- startCol = reader.getCol();
-
- c = reader.read();
-
-
- while(c){
- switch(c){
- case "/":
-
- if(reader.peek() == "*"){
- token = this.commentToken(c, startLine, startCol);
- } else {
- token = this.charToken(c, startLine, startCol);
- }
- break;
- case "|":
- case "~":
- case "^":
- case "$":
- case "*":
- if(reader.peek() == "="){
- token = this.comparisonToken(c, startLine, startCol);
- } else {
- token = this.charToken(c, startLine, startCol);
- }
- break;
- case "\"":
- case "'":
- token = this.stringToken(c, startLine, startCol);
- break;
- case "#":
- if (isNameChar(reader.peek())){
- token = this.hashToken(c, startLine, startCol);
- } else {
- token = this.charToken(c, startLine, startCol);
- }
- break;
- case ".":
- if (isDigit(reader.peek())){
- token = this.numberToken(c, startLine, startCol);
- } else {
- token = this.charToken(c, startLine, startCol);
- }
- break;
- case "-":
- if (reader.peek() == "-"){ //could be closing HTML-style comment
- token = this.htmlCommentEndToken(c, startLine, startCol);
- } else if (isNameStart(reader.peek())){
- token = this.identOrFunctionToken(c, startLine, startCol);
- } else {
- token = this.charToken(c, startLine, startCol);
- }
- break;
- case "!":
- token = this.importantToken(c, startLine, startCol);
- break;
- case "@":
- token = this.atRuleToken(c, startLine, startCol);
- break;
- case ":":
- token = this.notToken(c, startLine, startCol);
- break;
- case "<":
- token = this.htmlCommentStartToken(c, startLine, startCol);
- break;
- case "U":
- case "u":
- if (reader.peek() == "+"){
- token = this.unicodeRangeToken(c, startLine, startCol);
- break;
- }
- default:
- if (isDigit(c)){
- token = this.numberToken(c, startLine, startCol);
- } else
- if (isWhitespace(c)){
- token = this.whitespaceToken(c, startLine, startCol);
- } else
- if (isIdentStart(c)){
- token = this.identOrFunctionToken(c, startLine, startCol);
- } else
- {
- token = this.charToken(c, startLine, startCol);
- }
-
-
-
-
-
-
- }
- break;
- }
-
- if (!token && c === null){
- token = this.createToken(Tokens.EOF,null,startLine,startCol);
- }
-
- return token;
- },
- createToken: function(tt, value, startLine, startCol, options){
- var reader = this._reader;
- options = options || {};
-
- return {
- value: value,
- type: tt,
- channel: options.channel,
- hide: options.hide || false,
- startLine: startLine,
- startCol: startCol,
- endLine: reader.getLine(),
- endCol: reader.getCol()
- };
- },
- atRuleToken: function(first, startLine, startCol){
- var rule = first,
- reader = this._reader,
- tt = Tokens.CHAR,
- valid = false,
- ident,
- c;
- reader.mark();
- ident = this.readName();
- rule = first + ident;
- tt = Tokens.type(rule.toLowerCase());
- if (tt == Tokens.CHAR || tt == Tokens.UNKNOWN){
- if (rule.length > 1){
- tt = Tokens.UNKNOWN_SYM;
- } else {
- tt = Tokens.CHAR;
- rule = first;
- reader.reset();
- }
- }
-
- return this.createToken(tt, rule, startLine, startCol);
- },
- charToken: function(c, startLine, startCol){
- var tt = Tokens.type(c);
-
- if (tt == -1){
- tt = Tokens.CHAR;
- }
-
- return this.createToken(tt, c, startLine, startCol);
- },
- commentToken: function(first, startLine, startCol){
- var reader = this._reader,
- comment = this.readComment(first);
-
- return this.createToken(Tokens.COMMENT, comment, startLine, startCol);
- },
- comparisonToken: function(c, startLine, startCol){
- var reader = this._reader,
- comparison = c + reader.read(),
- tt = Tokens.type(comparison) || Tokens.CHAR;
-
- return this.createToken(tt, comparison, startLine, startCol);
- },
- hashToken: function(first, startLine, startCol){
- var reader = this._reader,
- name = this.readName(first);
-
- return this.createToken(Tokens.HASH, name, startLine, startCol);
- },
- htmlCommentStartToken: function(first, startLine, startCol){
- var reader = this._reader,
- text = first;
-
- reader.mark();
- text += reader.readCount(3);
-
- if (text == "<!--"){
- return this.createToken(Tokens.CDO, text, startLine, startCol);
- } else {
- reader.reset();
- return this.charToken(first, startLine, startCol);
- }
- },
- htmlCommentEndToken: function(first, startLine, startCol){
- var reader = this._reader,
- text = first;
-
- reader.mark();
- text += reader.readCount(2);
-
- if (text == "-->"){
- return this.createToken(Tokens.CDC, text, startLine, startCol);
- } else {
- reader.reset();
- return this.charToken(first, startLine, startCol);
- }
- },
- identOrFunctionToken: function(first, startLine, startCol){
- var reader = this._reader,
- ident = this.readName(first),
- tt = Tokens.IDENT;
- if (reader.peek() == "("){
- ident += reader.read();
- if (ident.toLowerCase() == "url("){
- tt = Tokens.URI;
- ident = this.readURI(ident);
- if (ident.toLowerCase() == "url("){
- tt = Tokens.FUNCTION;
- }
- } else {
- tt = Tokens.FUNCTION;
- }
- } else if (reader.peek() == ":"){ //might be an IE function
- if (ident.toLowerCase() == "progid"){
- ident += reader.readTo("(");
- tt = Tokens.IE_FUNCTION;
- }
- }
-
- return this.createToken(tt, ident, startLine, startCol);
- },
- importantToken: function(first, startLine, startCol){
- var reader = this._reader,
- important = first,
- tt = Tokens.CHAR,
- temp,
- c;
-
- reader.mark();
- c = reader.read();
-
- while(c){
- if (c == "/"){
- if (reader.peek() != "*"){
- break;
- } else {
- temp = this.readComment(c);
- if (temp === ""){ //broken!
- break;
- }
- }
- } else if (isWhitespace(c)){
- important += c + this.readWhitespace();
- } else if (/i/i.test(c)){
- temp = reader.readCount(8);
- if (/mportant/i.test(temp)){
- important += c + temp;
- tt = Tokens.IMPORTANT_SYM;
-
- }
- break; //we're done
- } else {
- break;
- }
-
- c = reader.read();
- }
-
- if (tt == Tokens.CHAR){
- reader.reset();
- return this.charToken(first, startLine, startCol);
- } else {
- return this.createToken(tt, important, startLine, startCol);
- }
-
-
- },
- notToken: function(first, startLine, startCol){
- var reader = this._reader,
- text = first;
-
- reader.mark();
- text += reader.readCount(4);
-
- if (text.toLowerCase() == ":not("){
- return this.createToken(Tokens.NOT, text, startLine, startCol);
- } else {
- reader.reset();
- return this.charToken(first, startLine, startCol);
- }
- },
- numberToken: function(first, startLine, startCol){
- var reader = this._reader,
- value = this.readNumber(first),
- ident,
- tt = Tokens.NUMBER,
- c = reader.peek();
-
- if (isIdentStart(c)){
- ident = this.readName(reader.read());
- value += ident;
-
- if (/^em$|^ex$|^px$|^gd$|^rem$|^vw$|^vh$|^vm$|^ch$|^cm$|^mm$|^in$|^pt$|^pc$/i.test(ident)){
- tt = Tokens.LENGTH;
- } else if (/^deg|^rad$|^grad$/i.test(ident)){
- tt = Tokens.ANGLE;
- } else if (/^ms$|^s$/i.test(ident)){
- tt = Tokens.TIME;
- } else if (/^hz$|^khz$/i.test(ident)){
- tt = Tokens.FREQ;
- } else if (/^dpi$|^dpcm$/i.test(ident)){
- tt = Tokens.RESOLUTION;
- } else {
- tt = Tokens.DIMENSION;
- }
-
- } else if (c == "%"){
- value += reader.read();
- tt = Tokens.PERCENTAGE;
- }
-
- return this.createToken(tt, value, startLine, startCol);
- },
- stringToken: function(first, startLine, startCol){
- var delim = first,
- string = first,
- reader = this._reader,
- prev = first,
- tt = Tokens.STRING,
- c = reader.read();
-
- while(c){
- string += c;
- if (c == delim && prev != "\\"){
- break;
- }
- if (isNewLine(reader.peek()) && c != "\\"){
- tt = Tokens.INVALID;
- break;
- }
- prev = c;
- c = reader.read();
- }
- if (c === null){
- tt = Tokens.INVALID;
- }
-
- return this.createToken(tt, string, startLine, startCol);
- },
-
- unicodeRangeToken: function(first, startLine, startCol){
- var reader = this._reader,
- value = first,
- temp,
- tt = Tokens.CHAR;
- if (reader.peek() == "+"){
- reader.mark();
- value += reader.read();
- value += this.readUnicodeRangePart(true);
- if (value.length == 2){
- reader.reset();
- } else {
-
- tt = Tokens.UNICODE_RANGE;
- if (value.indexOf("?") == -1){
-
- if (reader.peek() == "-"){
- reader.mark();
- temp = reader.read();
- temp += this.readUnicodeRangePart(false);
- if (temp.length == 1){
- reader.reset();
- } else {
- value += temp;
- }
- }
-
- }
- }
- }
-
- return this.createToken(tt, value, startLine, startCol);
- },
- whitespaceToken: function(first, startLine, startCol){
- var reader = this._reader,
- value = first + this.readWhitespace();
- return this.createToken(Tokens.S, value, startLine, startCol);
- },
-
- readUnicodeRangePart: function(allowQuestionMark){
- var reader = this._reader,
- part = "",
- c = reader.peek();
- while(isHexDigit(c) && part.length < 6){
- reader.read();
- part += c;
- c = reader.peek();
- }
- if (allowQuestionMark){
- while(c == "?" && part.length < 6){
- reader.read();
- part += c;
- c = reader.peek();
- }
- }
-
- return part;
- },
-
- readWhitespace: function(){
- var reader = this._reader,
- whitespace = "",
- c = reader.peek();
-
- while(isWhitespace(c)){
- reader.read();
- whitespace += c;
- c = reader.peek();
- }
-
- return whitespace;
- },
- readNumber: function(first){
- var reader = this._reader,
- number = first,
- hasDot = (first == "."),
- c = reader.peek();
-
-
- while(c){
- if (isDigit(c)){
- number += reader.read();
- } else if (c == "."){
- if (hasDot){
- break;
- } else {
- hasDot = true;
- number += reader.read();
- }
- } else {
- break;
- }
-
- c = reader.peek();
- }
-
- return number;
- },
- readString: function(){
- var reader = this._reader,
- delim = reader.read(),
- string = delim,
- prev = delim,
- c = reader.peek();
-
- while(c){
- c = reader.read();
- string += c;
- if (c == delim && prev != "\\"){
- break;
- }
- if (isNewLine(reader.peek()) && c != "\\"){
- string = "";
- break;
- }
- prev = c;
- c = reader.peek();
- }
- if (c === null){
- string = "";
- }
-
- return string;
- },
- readURI: function(first){
- var reader = this._reader,
- uri = first,
- inner = "",
- c = reader.peek();
-
- reader.mark();
- while(c && isWhitespace(c)){
- reader.read();
- c = reader.peek();
- }
- if (c == "'" || c == "\""){
- inner = this.readString();
- } else {
- inner = this.readURL();
- }
-
- c = reader.peek();
- while(c && isWhitespace(c)){
- reader.read();
- c = reader.peek();
- }
- if (inner === "" || c != ")"){
- uri = first;
- reader.reset();
- } else {
- uri += inner + reader.read();
- }
-
- return uri;
- },
- readURL: function(){
- var reader = this._reader,
- url = "",
- c = reader.peek();
- while (/^[!#$%&\\*-~]$/.test(c)){
- url += reader.read();
- c = reader.peek();
- }
-
- return url;
-
- },
- readName: function(first){
- var reader = this._reader,
- ident = first || "",
- c = reader.peek();
-
- while(true){
- if (c == "\\"){
- ident += this.readEscape(reader.read());
- c = reader.peek();
- } else if(c && isNameChar(c)){
- ident += reader.read();
- c = reader.peek();
- } else {
- break;
- }
- }
-
- return ident;
- },
-
- readEscape: function(first){
- var reader = this._reader,
- cssEscape = first || "",
- i = 0,
- c = reader.peek();
-
- if (isHexDigit(c)){
- do {
- cssEscape += reader.read();
- c = reader.peek();
- } while(c && isHexDigit(c) && ++i < 6);
- }
-
- if (cssEscape.length == 3 && /\s/.test(c) ||
- cssEscape.length == 7 || cssEscape.length == 1){
- reader.read();
- } else {
- c = "";
- }
-
- return cssEscape + c;
- },
-
- readComment: function(first){
- var reader = this._reader,
- comment = first || "",
- c = reader.read();
-
- if (c == "*"){
- while(c){
- comment += c;
- if (comment.length > 2 && c == "*" && reader.peek() == "/"){
- comment += reader.read();
- break;
- }
-
- c = reader.read();
- }
-
- return comment;
- } else {
- return "";
- }
-
- }
-});
-
-
-var Tokens = [
- { name: "CDO"},
- { name: "CDC"},
- { name: "S", whitespace: true/*, channel: "ws"*/},
- { name: "COMMENT", comment: true, hide: true, channel: "comment" },
- { name: "INCLUDES", text: "~="},
- { name: "DASHMATCH", text: "|="},
- { name: "PREFIXMATCH", text: "^="},
- { name: "SUFFIXMATCH", text: "$="},
- { name: "SUBSTRINGMATCH", text: "*="},
- { name: "STRING"},
- { name: "IDENT"},
- { name: "HASH"},
- { name: "IMPORT_SYM", text: "@import"},
- { name: "PAGE_SYM", text: "@page"},
- { name: "MEDIA_SYM", text: "@media"},
- { name: "FONT_FACE_SYM", text: "@font-face"},
- { name: "CHARSET_SYM", text: "@charset"},
- { name: "NAMESPACE_SYM", text: "@namespace"},
- { name: "UNKNOWN_SYM" },
- { name: "KEYFRAMES_SYM", text: [ "@keyframes", "@-webkit-keyframes", "@-moz-keyframes", "@-o-keyframes" ] },
- { name: "IMPORTANT_SYM"},
- { name: "LENGTH"},
- { name: "ANGLE"},
- { name: "TIME"},
- { name: "FREQ"},
- { name: "DIMENSION"},
- { name: "PERCENTAGE"},
- { name: "NUMBER"},
- { name: "URI"},
- { name: "FUNCTION"},
- { name: "UNICODE_RANGE"},
- { name: "INVALID"},
- { name: "PLUS", text: "+" },
- { name: "GREATER", text: ">"},
- { name: "COMMA", text: ","},
- { name: "TILDE", text: "~"},
- { name: "NOT"},
- { name: "TOPLEFTCORNER_SYM", text: "@top-left-corner"},
- { name: "TOPLEFT_SYM", text: "@top-left"},
- { name: "TOPCENTER_SYM", text: "@top-center"},
- { name: "TOPRIGHT_SYM", text: "@top-right"},
- { name: "TOPRIGHTCORNER_SYM", text: "@top-right-corner"},
- { name: "BOTTOMLEFTCORNER_SYM", text: "@bottom-left-corner"},
- { name: "BOTTOMLEFT_SYM", text: "@bottom-left"},
- { name: "BOTTOMCENTER_SYM", text: "@bottom-center"},
- { name: "BOTTOMRIGHT_SYM", text: "@bottom-right"},
- { name: "BOTTOMRIGHTCORNER_SYM", text: "@bottom-right-corner"},
- { name: "LEFTTOP_SYM", text: "@left-top"},
- { name: "LEFTMIDDLE_SYM", text: "@left-middle"},
- { name: "LEFTBOTTOM_SYM", text: "@left-bottom"},
- { name: "RIGHTTOP_SYM", text: "@right-top"},
- { name: "RIGHTMIDDLE_SYM", text: "@right-middle"},
- { name: "RIGHTBOTTOM_SYM", text: "@right-bottom"},
- { name: "RESOLUTION", state: "media"},
- { name: "IE_FUNCTION" },
- { name: "CHAR" },
- {
- name: "PIPE",
- text: "|"
- },
- {
- name: "SLASH",
- text: "/"
- },
- {
- name: "MINUS",
- text: "-"
- },
- {
- name: "STAR",
- text: "*"
- },
-
- {
- name: "LBRACE",
- text: "{"
- },
- {
- name: "RBRACE",
- text: "}"
- },
- {
- name: "LBRACKET",
- text: "["
- },
- {
- name: "RBRACKET",
- text: "]"
- },
- {
- name: "EQUALS",
- text: "="
- },
- {
- name: "COLON",
- text: ":"
- },
- {
- name: "SEMICOLON",
- text: ";"
- },
-
- {
- name: "LPAREN",
- text: "("
- },
- {
- name: "RPAREN",
- text: ")"
- },
- {
- name: "DOT",
- text: "."
- }
-];
-
-(function(){
-
- var nameMap = [],
- typeMap = {};
-
- Tokens.UNKNOWN = -1;
- Tokens.unshift({name:"EOF"});
- for (var i=0, len = Tokens.length; i < len; i++){
- nameMap.push(Tokens[i].name);
- Tokens[Tokens[i].name] = i;
- if (Tokens[i].text){
- if (Tokens[i].text instanceof Array){
- for (var j=0; j < Tokens[i].text.length; j++){
- typeMap[Tokens[i].text[j]] = i;
- }
- } else {
- typeMap[Tokens[i].text] = i;
- }
- }
- }
-
- Tokens.name = function(tt){
- return nameMap[tt];
- };
-
- Tokens.type = function(c){
- return typeMap[c] || -1;
- };
-
-})();
-var Validation = {
-
- validate: function(property, value){
- var name = property.toString().toLowerCase(),
- parts = value.parts,
- expression = new PropertyValueIterator(value),
- spec = Properties[name],
- part,
- valid,
- j, count,
- msg,
- types,
- last,
- literals,
- max, multi, group;
-
- if (!spec) {
- if (name.indexOf("-") !== 0){ //vendor prefixed are ok
- throw new ValidationError("Unknown property '" + property + "'.", property.line, property.col);
- }
- } else if (typeof spec != "number"){
- if (typeof spec == "string"){
- if (spec.indexOf("||") > -1) {
- this.groupProperty(spec, expression);
- } else {
- this.singleProperty(spec, expression, 1);
- }
-
- } else if (spec.multi) {
- this.multiProperty(spec.multi, expression, spec.comma, spec.max || Infinity);
- } else if (typeof spec == "function") {
- spec(expression);
- }
-
- }
-
- },
-
- singleProperty: function(types, expression, max, partial) {
-
- var result = false,
- value = expression.value,
- count = 0,
- part;
-
- while (expression.hasNext() && count < max) {
- result = ValidationTypes.isAny(expression, types);
- if (!result) {
- break;
- }
- count++;
- }
-
- if (!result) {
- if (expression.hasNext() && !expression.isFirst()) {
- part = expression.peek();
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- } else {
- throw new ValidationError("Expected (" + types + ") but found '" + value + "'.", value.line, value.col);
- }
- } else if (expression.hasNext()) {
- part = expression.next();
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- }
-
- },
-
- multiProperty: function (types, expression, comma, max) {
-
- var result = false,
- value = expression.value,
- count = 0,
- sep = false,
- part;
-
- while(expression.hasNext() && !result && count < max) {
- if (ValidationTypes.isAny(expression, types)) {
- count++;
- if (!expression.hasNext()) {
- result = true;
-
- } else if (comma) {
- if (expression.peek() == ",") {
- part = expression.next();
- } else {
- break;
- }
- }
- } else {
- break;
-
- }
- }
-
- if (!result) {
- if (expression.hasNext() && !expression.isFirst()) {
- part = expression.peek();
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- } else {
- part = expression.previous();
- if (comma && part == ",") {
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- } else {
- throw new ValidationError("Expected (" + types + ") but found '" + value + "'.", value.line, value.col);
- }
- }
-
- } else if (expression.hasNext()) {
- part = expression.next();
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- }
-
- },
-
- groupProperty: function (types, expression, comma) {
-
- var result = false,
- value = expression.value,
- typeCount = types.split("||").length,
- groups = { count: 0 },
- partial = false,
- name,
- part;
-
- while(expression.hasNext() && !result) {
- name = ValidationTypes.isAnyOfGroup(expression, types);
- if (name) {
- if (groups[name]) {
- break;
- } else {
- groups[name] = 1;
- groups.count++;
- partial = true;
-
- if (groups.count == typeCount || !expression.hasNext()) {
- result = true;
- }
- }
- } else {
- break;
- }
- }
-
- if (!result) {
- if (partial && expression.hasNext()) {
- part = expression.peek();
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- } else {
- throw new ValidationError("Expected (" + types + ") but found '" + value + "'.", value.line, value.col);
- }
- } else if (expression.hasNext()) {
- part = expression.next();
- throw new ValidationError("Expected end of value but found '" + part + "'.", part.line, part.col);
- }
- }
-
-
-
-};
-function ValidationError(message, line, col){
- this.col = col;
- this.line = line;
- this.message = message;
-
-}
-ValidationError.prototype = new Error();
-var ValidationTypes = {
-
- isLiteral: function (part, literals) {
- var text = part.text.toString().toLowerCase(),
- args = literals.split(" | "),
- i, len, found = false;
-
- for (i=0,len=args.length; i < len && !found; i++){
- if (text == args[i].toLowerCase()){
- found = true;
- }
- }
-
- return found;
- },
-
- isSimple: function(type) {
- return !!this.simple[type];
- },
-
- isComplex: function(type) {
- return !!this.complex[type];
- },
- isAny: function (expression, types) {
- var args = types.split(" | "),
- i, len, found = false;
-
- for (i=0,len=args.length; i < len && !found && expression.hasNext(); i++){
- found = this.isType(expression, args[i]);
- }
-
- return found;
- },
- isAnyOfGroup: function(expression, types) {
- var args = types.split(" || "),
- i, len, found = false;
-
- for (i=0,len=args.length; i < len && !found; i++){
- found = this.isType(expression, args[i]);
- }
-
- return found ? args[i-1] : false;
- },
- isType: function (expression, type) {
- var part = expression.peek(),
- result = false;
-
- if (type.charAt(0) != "<") {
- result = this.isLiteral(part, type);
- if (result) {
- expression.next();
- }
- } else if (this.simple[type]) {
- result = this.simple[type](part);
- if (result) {
- expression.next();
- }
- } else {
- result = this.complex[type](expression);
- }
-
- return result;
- },
-
-
-
- simple: {
-
- "<absolute-size>": function(part){
- return ValidationTypes.isLiteral(part, "xx-small | x-small | small | medium | large | x-large | xx-large");
- },
-
- "<attachment>": function(part){
- return ValidationTypes.isLiteral(part, "scroll | fixed | local");
- },
-
- "<attr>": function(part){
- return part.type == "function" && part.name == "attr";
- },
-
- "<bg-image>": function(part){
- return this["<image>"](part) || this["<gradient>"](part) || part == "none";
- },
-
- "<gradient>": function(part) {
- return part.type == "function" && /^(?:\-(?:ms|moz|o|webkit)\-)?(?:repeating\-)?(?:radial\-|linear\-)?gradient/i.test(part);
- },
-
- "<box>": function(part){
- return ValidationTypes.isLiteral(part, "padding-box | border-box | content-box");
- },
-
- "<content>": function(part){
- return part.type == "function" && part.name == "content";
- },
-
- "<relative-size>": function(part){
- return ValidationTypes.isLiteral(part, "smaller | larger");
- },
- "<ident>": function(part){
- return part.type == "identifier";
- },
-
- "<length>": function(part){
- if (part.type == "function" && /^(?:\-(?:ms|moz|o|webkit)\-)?calc/i.test(part)){
- return true;
- }else{
- return part.type == "length" || part.type == "number" || part.type == "integer" || part == "0";
- }
- },
-
- "<color>": function(part){
- return part.type == "color" || part == "transparent";
- },
-
- "<number>": function(part){
- return part.type == "number" || this["<integer>"](part);
- },
-
- "<integer>": function(part){
- return part.type == "integer";
- },
-
- "<line>": function(part){
- return part.type == "integer";
- },
-
- "<angle>": function(part){
- return part.type == "angle";
- },
-
- "<uri>": function(part){
- return part.type == "uri";
- },
-
- "<image>": function(part){
- return this["<uri>"](part);
- },
-
- "<percentage>": function(part){
- return part.type == "percentage" || part == "0";
- },
-
- "<border-width>": function(part){
- return this["<length>"](part) || ValidationTypes.isLiteral(part, "thin | medium | thick");
- },
-
- "<border-style>": function(part){
- return ValidationTypes.isLiteral(part, "none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset");
- },
-
- "<margin-width>": function(part){
- return this["<length>"](part) || this["<percentage>"](part) || ValidationTypes.isLiteral(part, "auto");
- },
-
- "<padding-width>": function(part){
- return this["<length>"](part) || this["<percentage>"](part);
- },
-
- "<shape>": function(part){
- return part.type == "function" && (part.name == "rect" || part.name == "inset-rect");
- },
-
- "<time>": function(part) {
- return part.type == "time";
- }
- },
-
- complex: {
-
- "<bg-position>": function(expression){
- var types = this,
- result = false,
- numeric = "<percentage> | <length>",
- xDir = "left | right",
- yDir = "top | bottom",
- count = 0,
- hasNext = function() {
- return expression.hasNext() && expression.peek() != ",";
- };
-
- while (expression.peek(count) && expression.peek(count) != ",") {
- count++;
- }
-
- if (count < 3) {
- if (ValidationTypes.isAny(expression, xDir + " | center | " + numeric)) {
- result = true;
- ValidationTypes.isAny(expression, yDir + " | center | " + numeric);
- } else if (ValidationTypes.isAny(expression, yDir)) {
- result = true;
- ValidationTypes.isAny(expression, xDir + " | center");
- }
- } else {
- if (ValidationTypes.isAny(expression, xDir)) {
- if (ValidationTypes.isAny(expression, yDir)) {
- result = true;
- ValidationTypes.isAny(expression, numeric);
- } else if (ValidationTypes.isAny(expression, numeric)) {
- if (ValidationTypes.isAny(expression, yDir)) {
- result = true;
- ValidationTypes.isAny(expression, numeric);
- } else if (ValidationTypes.isAny(expression, "center")) {
- result = true;
- }
- }
- } else if (ValidationTypes.isAny(expression, yDir)) {
- if (ValidationTypes.isAny(expression, xDir)) {
- result = true;
- ValidationTypes.isAny(expression, numeric);
- } else if (ValidationTypes.isAny(expression, numeric)) {
- if (ValidationTypes.isAny(expression, xDir)) {
- result = true;
- ValidationTypes.isAny(expression, numeric);
- } else if (ValidationTypes.isAny(expression, "center")) {
- result = true;
- }
- }
- } else if (ValidationTypes.isAny(expression, "center")) {
- if (ValidationTypes.isAny(expression, xDir + " | " + yDir)) {
- result = true;
- ValidationTypes.isAny(expression, numeric);
- }
- }
- }
-
- return result;
- },
-
- "<bg-size>": function(expression){
- var types = this,
- result = false,
- numeric = "<percentage> | <length> | auto",
- part,
- i, len;
-
- if (ValidationTypes.isAny(expression, "cover | contain")) {
- result = true;
- } else if (ValidationTypes.isAny(expression, numeric)) {
- result = true;
- ValidationTypes.isAny(expression, numeric);
- }
-
- return result;
- },
-
- "<repeat-style>": function(expression){
- var result = false,
- values = "repeat | space | round | no-repeat",
- part;
-
- if (expression.hasNext()){
- part = expression.next();
-
- if (ValidationTypes.isLiteral(part, "repeat-x | repeat-y")) {
- result = true;
- } else if (ValidationTypes.isLiteral(part, values)) {
- result = true;
-
- if (expression.hasNext() && ValidationTypes.isLiteral(expression.peek(), values)) {
- expression.next();
- }
- }
- }
-
- return result;
-
- },
-
- "<shadow>": function(expression) {
- var result = false,
- count = 0,
- inset = false,
- color = false,
- part;
-
- if (expression.hasNext()) {
-
- if (ValidationTypes.isAny(expression, "inset")){
- inset = true;
- }
-
- if (ValidationTypes.isAny(expression, "<color>")) {
- color = true;
- }
-
- while (ValidationTypes.isAny(expression, "<length>") && count < 4) {
- count++;
- }
-
-
- if (expression.hasNext()) {
- if (!color) {
- ValidationTypes.isAny(expression, "<color>");
- }
-
- if (!inset) {
- ValidationTypes.isAny(expression, "inset");
- }
-
- }
-
- result = (count >= 2 && count <= 4);
-
- }
-
- return result;
- },
-
- "<x-one-radius>": function(expression) {
- var result = false,
- count = 0,
- numeric = "<length> | <percentage>",
- part;
-
- if (ValidationTypes.isAny(expression, numeric)){
- result = true;
-
- ValidationTypes.isAny(expression, numeric);
- }
-
- return result;
- }
- }
-};
-
-
-
-parserlib.css = {
-Colors :Colors,
-Combinator :Combinator,
-Parser :Parser,
-PropertyName :PropertyName,
-PropertyValue :PropertyValue,
-PropertyValuePart :PropertyValuePart,
-MediaFeature :MediaFeature,
-MediaQuery :MediaQuery,
-Selector :Selector,
-SelectorPart :SelectorPart,
-SelectorSubPart :SelectorSubPart,
-Specificity :Specificity,
-TokenStream :TokenStream,
-Tokens :Tokens,
-ValidationError :ValidationError
-};
-})();
-var CSSLint = (function(){
-
- var rules = [],
- formatters = [],
- embeddedRuleset = /\/\*csslint([^\*]*)\*\//,
- api = new parserlib.util.EventTarget();
-
- api.version = "0.9.10";
- api.addRule = function(rule){
- rules.push(rule);
- rules[rule.id] = rule;
- };
- api.clearRules = function(){
- rules = [];
- };
- api.getRules = function(){
- return [].concat(rules).sort(function(a,b){
- return a.id > b.id ? 1 : 0;
- });
- };
- api.getRuleset = function() {
- var ruleset = {},
- i = 0,
- len = rules.length;
-
- while (i < len){
- ruleset[rules[i++].id] = 1; //by default, everything is a warning
- }
-
- return ruleset;
- };
- function applyEmbeddedRuleset(text, ruleset){
- var valueMap,
- embedded = text && text.match(embeddedRuleset),
- rules = embedded && embedded[1];
-
- if (rules) {
- valueMap = {
- "true": 2, // true is error
- "": 1, // blank is warning
- "false": 0, // false is ignore
-
- "2": 2, // explicit error
- "1": 1, // explicit warning
- "0": 0 // explicit ignore
- };
-
- rules.toLowerCase().split(",").forEach(function(rule){
- var pair = rule.split(":"),
- property = pair[0] || "",
- value = pair[1] || "";
-
- ruleset[property.trim()] = valueMap[value.trim()];
- });
- }
-
- return ruleset;
- }
- api.addFormatter = function(formatter) {
- formatters[formatter.id] = formatter;
- };
- api.getFormatter = function(formatId){
- return formatters[formatId];
- };
- api.format = function(results, filename, formatId, options) {
- var formatter = this.getFormatter(formatId),
- result = null;
-
- if (formatter){
- result = formatter.startFormat();
- result += formatter.formatResults(results, filename, options || {});
- result += formatter.endFormat();
- }
-
- return result;
- };
- api.hasFormat = function(formatId){
- return formatters.hasOwnProperty(formatId);
- };
- api.verify = function(text, ruleset){
-
- var i = 0,
- len = rules.length,
- reporter,
- lines,
- report,
- parser = new parserlib.css.Parser({ starHack: true, ieFilters: true,
- underscoreHack: true, strict: false });
- lines = text.replace(/\n\r?/g, "$split$").split('$split$');
-
- if (!ruleset){
- ruleset = this.getRuleset();
- }
-
- if (embeddedRuleset.test(text)){
- ruleset = applyEmbeddedRuleset(text, ruleset);
- }
-
- reporter = new Reporter(lines, ruleset);
-
- ruleset.errors = 2; //always report parsing errors as errors
- for (i in ruleset){
- if(ruleset.hasOwnProperty(i) && ruleset[i]){
- if (rules[i]){
- rules[i].init(parser, reporter);
- }
- }
- }
- try {
- parser.parse(text);
- } catch (ex) {
- reporter.error("Fatal error, cannot continue: " + ex.message, ex.line, ex.col, {});
- }
-
- report = {
- messages : reporter.messages,
- stats : reporter.stats,
- ruleset : reporter.ruleset
- };
- report.messages.sort(function (a, b){
- if (a.rollup && !b.rollup){
- return 1;
- } else if (!a.rollup && b.rollup){
- return -1;
- } else {
- return a.line - b.line;
- }
- });
-
- return report;
- };
-
- return api;
-
-})();
-function Reporter(lines, ruleset){
- this.messages = [];
- this.stats = [];
- this.lines = lines;
- this.ruleset = ruleset;
-}
-
-Reporter.prototype = {
- constructor: Reporter,
- error: function(message, line, col, rule){
- this.messages.push({
- type : "error",
- line : line,
- col : col,
- message : message,
- evidence: this.lines[line-1],
- rule : rule || {}
- });
- },
- warn: function(message, line, col, rule){
- this.report(message, line, col, rule);
- },
- report: function(message, line, col, rule){
- this.messages.push({
- type : this.ruleset[rule.id] == 2 ? "error" : "warning",
- line : line,
- col : col,
- message : message,
- evidence: this.lines[line-1],
- rule : rule
- });
- },
- info: function(message, line, col, rule){
- this.messages.push({
- type : "info",
- line : line,
- col : col,
- message : message,
- evidence: this.lines[line-1],
- rule : rule
- });
- },
- rollupError: function(message, rule){
- this.messages.push({
- type : "error",
- rollup : true,
- message : message,
- rule : rule
- });
- },
- rollupWarn: function(message, rule){
- this.messages.push({
- type : "warning",
- rollup : true,
- message : message,
- rule : rule
- });
- },
- stat: function(name, value){
- this.stats[name] = value;
- }
-};
-CSSLint._Reporter = Reporter;
-CSSLint.Util = {
- mix: function(receiver, supplier){
- var prop;
-
- for (prop in supplier){
- if (supplier.hasOwnProperty(prop)){
- receiver[prop] = supplier[prop];
- }
- }
-
- return prop;
- },
- indexOf: function(values, value){
- if (values.indexOf){
- return values.indexOf(value);
- } else {
- for (var i=0, len=values.length; i < len; i++){
- if (values[i] === value){
- return i;
- }
- }
- return -1;
- }
- },
- forEach: function(values, func) {
- if (values.forEach){
- return values.forEach(func);
- } else {
- for (var i=0, len=values.length; i < len; i++){
- func(values[i], i, values);
- }
- }
- }
-};
-CSSLint.addRule({
- id: "adjoining-classes",
- name: "Disallow adjoining classes",
- desc: "Don't use adjoining classes.",
- browsers: "IE6",
- init: function(parser, reporter){
- var rule = this;
- parser.addListener("startrule", function(event){
- var selectors = event.selectors,
- selector,
- part,
- modifier,
- classCount,
- i, j, k;
-
- for (i=0; i < selectors.length; i++){
- selector = selectors[i];
- for (j=0; j < selector.parts.length; j++){
- part = selector.parts[j];
- if (part.type == parser.SELECTOR_PART_TYPE){
- classCount = 0;
- for (k=0; k < part.modifiers.length; k++){
- modifier = part.modifiers[k];
- if (modifier.type == "class"){
- classCount++;
- }
- if (classCount > 1){
- reporter.report("Don't use adjoining classes.", part.line, part.col, rule);
- }
- }
- }
- }
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "box-model",
- name: "Beware of broken box size",
- desc: "Don't use width or height when using padding or border.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- widthProperties = {
- border: 1,
- "border-left": 1,
- "border-right": 1,
- padding: 1,
- "padding-left": 1,
- "padding-right": 1
- },
- heightProperties = {
- border: 1,
- "border-bottom": 1,
- "border-top": 1,
- padding: 1,
- "padding-bottom": 1,
- "padding-top": 1
- },
- properties,
- boxSizing = false;
-
- function startRule(){
- properties = {};
- boxSizing = false;
- }
-
- function endRule(){
- var prop, value;
-
- if (!boxSizing) {
- if (properties.height){
- for (prop in heightProperties){
- if (heightProperties.hasOwnProperty(prop) && properties[prop]){
- value = properties[prop].value;
- if (!(prop == "padding" && value.parts.length === 2 && value.parts[0].value === 0)){
- reporter.report("Using height with " + prop + " can sometimes make elements larger than you expect.", properties[prop].line, properties[prop].col, rule);
- }
- }
- }
- }
-
- if (properties.width){
- for (prop in widthProperties){
- if (widthProperties.hasOwnProperty(prop) && properties[prop]){
- value = properties[prop].value;
-
- if (!(prop == "padding" && value.parts.length === 2 && value.parts[1].value === 0)){
- reporter.report("Using width with " + prop + " can sometimes make elements larger than you expect.", properties[prop].line, properties[prop].col, rule);
- }
- }
- }
- }
- }
- }
-
- parser.addListener("startrule", startRule);
- parser.addListener("startfontface", startRule);
- parser.addListener("startpage", startRule);
- parser.addListener("startpagemargin", startRule);
- parser.addListener("startkeyframerule", startRule);
-
- parser.addListener("property", function(event){
- var name = event.property.text.toLowerCase();
-
- if (heightProperties[name] || widthProperties[name]){
- if (!/^0\S*$/.test(event.value) && !(name == "border" && event.value == "none")){
- properties[name] = { line: event.property.line, col: event.property.col, value: event.value };
- }
- } else {
- if (/^(width|height)/i.test(name) && /^(length|percentage)/.test(event.value.parts[0].type)){
- properties[name] = 1;
- } else if (name == "box-sizing") {
- boxSizing = true;
- }
- }
-
- });
-
- parser.addListener("endrule", endRule);
- parser.addListener("endfontface", endRule);
- parser.addListener("endpage", endRule);
- parser.addListener("endpagemargin", endRule);
- parser.addListener("endkeyframerule", endRule);
- }
-
-});
-CSSLint.addRule({
- id: "box-sizing",
- name: "Disallow use of box-sizing",
- desc: "The box-sizing properties isn't supported in IE6 and IE7.",
- browsers: "IE6, IE7",
- tags: ["Compatibility"],
- init: function(parser, reporter){
- var rule = this;
-
- parser.addListener("property", function(event){
- var name = event.property.text.toLowerCase();
-
- if (name == "box-sizing"){
- reporter.report("The box-sizing property isn't supported in IE6 and IE7.", event.line, event.col, rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "bulletproof-font-face",
- name: "Use the bulletproof @font-face syntax",
- desc: "Use the bulletproof @font-face syntax to avoid 404's in old IE (http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax).",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- count = 0,
- fontFaceRule = false,
- firstSrc = true,
- ruleFailed = false,
- line, col;
- parser.addListener("startfontface", function(event){
- fontFaceRule = true;
- });
-
- parser.addListener("property", function(event){
- if (!fontFaceRule) {
- return;
- }
-
- var propertyName = event.property.toString().toLowerCase(),
- value = event.value.toString();
- line = event.line;
- col = event.col;
- if (propertyName === 'src') {
- var regex = /^\s?url\(['"].+\.eot\?.*['"]\)\s*format\(['"]embedded-opentype['"]\).*$/i;
- if (!value.match(regex) && firstSrc) {
- ruleFailed = true;
- firstSrc = false;
- } else if (value.match(regex) && !firstSrc) {
- ruleFailed = false;
- }
- }
-
-
- });
- parser.addListener("endfontface", function(event){
- fontFaceRule = false;
-
- if (ruleFailed) {
- reporter.report("@font-face declaration doesn't follow the fontspring bulletproof syntax.", line, col, rule);
- }
- });
- }
-});
-CSSLint.addRule({
- id: "compatible-vendor-prefixes",
- name: "Require compatible vendor prefixes",
- desc: "Include all compatible vendor prefixes to reach a wider range of users.",
- browsers: "All",
- init: function (parser, reporter) {
- var rule = this,
- compatiblePrefixes,
- properties,
- prop,
- variations,
- prefixed,
- i,
- len,
- inKeyFrame = false,
- arrayPush = Array.prototype.push,
- applyTo = [];
- compatiblePrefixes = {
- "animation" : "webkit moz",
- "animation-delay" : "webkit moz",
- "animation-direction" : "webkit moz",
- "animation-duration" : "webkit moz",
- "animation-fill-mode" : "webkit moz",
- "animation-iteration-count" : "webkit moz",
- "animation-name" : "webkit moz",
- "animation-play-state" : "webkit moz",
- "animation-timing-function" : "webkit moz",
- "appearance" : "webkit moz",
- "border-end" : "webkit moz",
- "border-end-color" : "webkit moz",
- "border-end-style" : "webkit moz",
- "border-end-width" : "webkit moz",
- "border-image" : "webkit moz o",
- "border-radius" : "webkit",
- "border-start" : "webkit moz",
- "border-start-color" : "webkit moz",
- "border-start-style" : "webkit moz",
- "border-start-width" : "webkit moz",
- "box-align" : "webkit moz ms",
- "box-direction" : "webkit moz ms",
- "box-flex" : "webkit moz ms",
- "box-lines" : "webkit ms",
- "box-ordinal-group" : "webkit moz ms",
- "box-orient" : "webkit moz ms",
- "box-pack" : "webkit moz ms",
- "box-sizing" : "webkit moz",
- "box-shadow" : "webkit moz",
- "column-count" : "webkit moz ms",
- "column-gap" : "webkit moz ms",
- "column-rule" : "webkit moz ms",
- "column-rule-color" : "webkit moz ms",
- "column-rule-style" : "webkit moz ms",
- "column-rule-width" : "webkit moz ms",
- "column-width" : "webkit moz ms",
- "hyphens" : "epub moz",
- "line-break" : "webkit ms",
- "margin-end" : "webkit moz",
- "margin-start" : "webkit moz",
- "marquee-speed" : "webkit wap",
- "marquee-style" : "webkit wap",
- "padding-end" : "webkit moz",
- "padding-start" : "webkit moz",
- "tab-size" : "moz o",
- "text-size-adjust" : "webkit ms",
- "transform" : "webkit moz ms o",
- "transform-origin" : "webkit moz ms o",
- "transition" : "webkit moz o",
- "transition-delay" : "webkit moz o",
- "transition-duration" : "webkit moz o",
- "transition-property" : "webkit moz o",
- "transition-timing-function" : "webkit moz o",
- "user-modify" : "webkit moz",
- "user-select" : "webkit moz ms",
- "word-break" : "epub ms",
- "writing-mode" : "epub ms"
- };
-
-
- for (prop in compatiblePrefixes) {
- if (compatiblePrefixes.hasOwnProperty(prop)) {
- variations = [];
- prefixed = compatiblePrefixes[prop].split(' ');
- for (i = 0, len = prefixed.length; i < len; i++) {
- variations.push('-' + prefixed[i] + '-' + prop);
- }
- compatiblePrefixes[prop] = variations;
- arrayPush.apply(applyTo, variations);
- }
- }
-
- parser.addListener("startrule", function () {
- properties = [];
- });
-
- parser.addListener("startkeyframes", function (event) {
- inKeyFrame = event.prefix || true;
- });
-
- parser.addListener("endkeyframes", function (event) {
- inKeyFrame = false;
- });
-
- parser.addListener("property", function (event) {
- var name = event.property;
- if (CSSLint.Util.indexOf(applyTo, name.text) > -1) {
- if (!inKeyFrame || typeof inKeyFrame != "string" ||
- name.text.indexOf("-" + inKeyFrame + "-") !== 0) {
- properties.push(name);
- }
- }
- });
-
- parser.addListener("endrule", function (event) {
- if (!properties.length) {
- return;
- }
-
- var propertyGroups = {},
- i,
- len,
- name,
- prop,
- variations,
- value,
- full,
- actual,
- item,
- propertiesSpecified;
-
- for (i = 0, len = properties.length; i < len; i++) {
- name = properties[i];
-
- for (prop in compatiblePrefixes) {
- if (compatiblePrefixes.hasOwnProperty(prop)) {
- variations = compatiblePrefixes[prop];
- if (CSSLint.Util.indexOf(variations, name.text) > -1) {
- if (!propertyGroups[prop]) {
- propertyGroups[prop] = {
- full : variations.slice(0),
- actual : [],
- actualNodes: []
- };
- }
- if (CSSLint.Util.indexOf(propertyGroups[prop].actual, name.text) === -1) {
- propertyGroups[prop].actual.push(name.text);
- propertyGroups[prop].actualNodes.push(name);
- }
- }
- }
- }
- }
-
- for (prop in propertyGroups) {
- if (propertyGroups.hasOwnProperty(prop)) {
- value = propertyGroups[prop];
- full = value.full;
- actual = value.actual;
-
- if (full.length > actual.length) {
- for (i = 0, len = full.length; i < len; i++) {
- item = full[i];
- if (CSSLint.Util.indexOf(actual, item) === -1) {
- propertiesSpecified = (actual.length === 1) ? actual[0] : (actual.length == 2) ? actual.join(" and ") : actual.join(", ");
- reporter.report("The property " + item + " is compatible with " + propertiesSpecified + " and should be included as well.", value.actualNodes[0].line, value.actualNodes[0].col, rule);
- }
- }
-
- }
- }
- }
- });
- }
-});
-CSSLint.addRule({
- id: "display-property-grouping",
- name: "Require properties appropriate for display",
- desc: "Certain properties shouldn't be used with certain display property values.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- var propertiesToCheck = {
- display: 1,
- "float": "none",
- height: 1,
- width: 1,
- margin: 1,
- "margin-left": 1,
- "margin-right": 1,
- "margin-bottom": 1,
- "margin-top": 1,
- padding: 1,
- "padding-left": 1,
- "padding-right": 1,
- "padding-bottom": 1,
- "padding-top": 1,
- "vertical-align": 1
- },
- properties;
-
- function reportProperty(name, display, msg){
- if (properties[name]){
- if (typeof propertiesToCheck[name] != "string" || properties[name].value.toLowerCase() != propertiesToCheck[name]){
- reporter.report(msg || name + " can't be used with display: " + display + ".", properties[name].line, properties[name].col, rule);
- }
- }
- }
-
- function startRule(){
- properties = {};
- }
-
- function endRule(){
-
- var display = properties.display ? properties.display.value : null;
- if (display){
- switch(display){
-
- case "inline":
- reportProperty("height", display);
- reportProperty("width", display);
- reportProperty("margin", display);
- reportProperty("margin-top", display);
- reportProperty("margin-bottom", display);
- reportProperty("float", display, "display:inline has no effect on floated elements (but may be used to fix the IE6 double-margin bug).");
- break;
-
- case "block":
- reportProperty("vertical-align", display);
- break;
-
- case "inline-block":
- reportProperty("float", display);
- break;
-
- default:
- if (display.indexOf("table-") === 0){
- reportProperty("margin", display);
- reportProperty("margin-left", display);
- reportProperty("margin-right", display);
- reportProperty("margin-top", display);
- reportProperty("margin-bottom", display);
- reportProperty("float", display);
- }
- }
- }
-
- }
-
- parser.addListener("startrule", startRule);
- parser.addListener("startfontface", startRule);
- parser.addListener("startkeyframerule", startRule);
- parser.addListener("startpagemargin", startRule);
- parser.addListener("startpage", startRule);
-
- parser.addListener("property", function(event){
- var name = event.property.text.toLowerCase();
-
- if (propertiesToCheck[name]){
- properties[name] = { value: event.value.text, line: event.property.line, col: event.property.col };
- }
- });
-
- parser.addListener("endrule", endRule);
- parser.addListener("endfontface", endRule);
- parser.addListener("endkeyframerule", endRule);
- parser.addListener("endpagemargin", endRule);
- parser.addListener("endpage", endRule);
-
- }
-
-});
-CSSLint.addRule({
- id: "duplicate-background-images",
- name: "Disallow duplicate background images",
- desc: "Every background-image should be unique. Use a common class for e.g. sprites.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- stack = {};
-
- parser.addListener("property", function(event){
- var name = event.property.text,
- value = event.value,
- i, len;
-
- if (name.match(/background/i)) {
- for (i=0, len=value.parts.length; i < len; i++) {
- if (value.parts[i].type == 'uri') {
- if (typeof stack[value.parts[i].uri] === 'undefined') {
- stack[value.parts[i].uri] = event;
- }
- else {
- reporter.report("Background image '" + value.parts[i].uri + "' was used multiple times, first declared at line " + stack[value.parts[i].uri].line + ", col " + stack[value.parts[i].uri].col + ".", event.line, event.col, rule);
- }
- }
- }
- }
- });
- }
-});
-CSSLint.addRule({
- id: "duplicate-properties",
- name: "Disallow duplicate properties",
- desc: "Duplicate properties must appear one after the other.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- properties,
- lastProperty;
-
- function startRule(event){
- properties = {};
- }
-
- parser.addListener("startrule", startRule);
- parser.addListener("startfontface", startRule);
- parser.addListener("startpage", startRule);
- parser.addListener("startpagemargin", startRule);
- parser.addListener("startkeyframerule", startRule);
-
- parser.addListener("property", function(event){
- var property = event.property,
- name = property.text.toLowerCase();
-
- if (properties[name] && (lastProperty != name || properties[name] == event.value.text)){
- reporter.report("Duplicate property '" + event.property + "' found.", event.line, event.col, rule);
- }
-
- properties[name] = event.value.text;
- lastProperty = name;
-
- });
-
-
- }
-
-});
-CSSLint.addRule({
- id: "empty-rules",
- name: "Disallow empty rules",
- desc: "Rules without any properties specified should be removed.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- count = 0;
-
- parser.addListener("startrule", function(){
- count=0;
- });
-
- parser.addListener("property", function(){
- count++;
- });
-
- parser.addListener("endrule", function(event){
- var selectors = event.selectors;
- if (count === 0){
- reporter.report("Rule is empty.", selectors[0].line, selectors[0].col, rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "errors",
- name: "Parsing Errors",
- desc: "This rule looks for recoverable syntax errors.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- parser.addListener("error", function(event){
- reporter.error(event.message, event.line, event.col, rule);
- });
-
- }
-
-});
-CSSLint.addRule({
- id: "fallback-colors",
- name: "Require fallback colors",
- desc: "For older browsers that don't support RGBA, HSL, or HSLA, provide a fallback color.",
- browsers: "IE6,IE7,IE8",
- init: function(parser, reporter){
- var rule = this,
- lastProperty,
- propertiesToCheck = {
- color: 1,
- background: 1,
- "border-color": 1,
- "border-top-color": 1,
- "border-right-color": 1,
- "border-bottom-color": 1,
- "border-left-color": 1,
- border: 1,
- "border-top": 1,
- "border-right": 1,
- "border-bottom": 1,
- "border-left": 1,
- "background-color": 1
- },
- properties;
-
- function startRule(event){
- properties = {};
- lastProperty = null;
- }
-
- parser.addListener("startrule", startRule);
- parser.addListener("startfontface", startRule);
- parser.addListener("startpage", startRule);
- parser.addListener("startpagemargin", startRule);
- parser.addListener("startkeyframerule", startRule);
-
- parser.addListener("property", function(event){
- var property = event.property,
- name = property.text.toLowerCase(),
- parts = event.value.parts,
- i = 0,
- colorType = "",
- len = parts.length;
-
- if(propertiesToCheck[name]){
- while(i < len){
- if (parts[i].type == "color"){
- if ("alpha" in parts[i] || "hue" in parts[i]){
-
- if (/([^\)]+)\(/.test(parts[i])){
- colorType = RegExp.$1.toUpperCase();
- }
-
- if (!lastProperty || (lastProperty.property.text.toLowerCase() != name || lastProperty.colorType != "compat")){
- reporter.report("Fallback " + name + " (hex or RGB) should precede " + colorType + " " + name + ".", event.line, event.col, rule);
- }
- } else {
- event.colorType = "compat";
- }
- }
-
- i++;
- }
- }
-
- lastProperty = event;
- });
-
- }
-
-});
-CSSLint.addRule({
- id: "floats",
- name: "Disallow too many floats",
- desc: "This rule tests if the float property is used too many times",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
- var count = 0;
- parser.addListener("property", function(event){
- if (event.property.text.toLowerCase() == "float" &&
- event.value.text.toLowerCase() != "none"){
- count++;
- }
- });
- parser.addListener("endstylesheet", function(){
- reporter.stat("floats", count);
- if (count >= 10){
- reporter.rollupWarn("Too many floats (" + count + "), you're probably using them for layout. Consider using a grid system instead.", rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "font-faces",
- name: "Don't use too many web fonts",
- desc: "Too many different web fonts in the same stylesheet.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- count = 0;
-
-
- parser.addListener("startfontface", function(){
- count++;
- });
-
- parser.addListener("endstylesheet", function(){
- if (count > 5){
- reporter.rollupWarn("Too many @font-face declarations (" + count + ").", rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "font-sizes",
- name: "Disallow too many font sizes",
- desc: "Checks the number of font-size declarations.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- count = 0;
- parser.addListener("property", function(event){
- if (event.property == "font-size"){
- count++;
- }
- });
- parser.addListener("endstylesheet", function(){
- reporter.stat("font-sizes", count);
- if (count >= 10){
- reporter.rollupWarn("Too many font-size declarations (" + count + "), abstraction needed.", rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "gradients",
- name: "Require all gradient definitions",
- desc: "When using a vendor-prefixed gradient, make sure to use them all.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- gradients;
-
- parser.addListener("startrule", function(){
- gradients = {
- moz: 0,
- webkit: 0,
- oldWebkit: 0,
- o: 0
- };
- });
-
- parser.addListener("property", function(event){
-
- if (/\-(moz|o|webkit)(?:\-(?:linear|radial))\-gradient/i.test(event.value)){
- gradients[RegExp.$1] = 1;
- } else if (/\-webkit\-gradient/i.test(event.value)){
- gradients.oldWebkit = 1;
- }
-
- });
-
- parser.addListener("endrule", function(event){
- var missing = [];
-
- if (!gradients.moz){
- missing.push("Firefox 3.6+");
- }
-
- if (!gradients.webkit){
- missing.push("Webkit (Safari 5+, Chrome)");
- }
-
- if (!gradients.oldWebkit){
- missing.push("Old Webkit (Safari 4+, Chrome)");
- }
-
- if (!gradients.o){
- missing.push("Opera 11.1+");
- }
-
- if (missing.length && missing.length < 4){
- reporter.report("Missing vendor-prefixed CSS gradients for " + missing.join(", ") + ".", event.selectors[0].line, event.selectors[0].col, rule);
- }
-
- });
-
- }
-
-});
-CSSLint.addRule({
- id: "ids",
- name: "Disallow IDs in selectors",
- desc: "Selectors should not contain IDs.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
- parser.addListener("startrule", function(event){
- var selectors = event.selectors,
- selector,
- part,
- modifier,
- idCount,
- i, j, k;
-
- for (i=0; i < selectors.length; i++){
- selector = selectors[i];
- idCount = 0;
-
- for (j=0; j < selector.parts.length; j++){
- part = selector.parts[j];
- if (part.type == parser.SELECTOR_PART_TYPE){
- for (k=0; k < part.modifiers.length; k++){
- modifier = part.modifiers[k];
- if (modifier.type == "id"){
- idCount++;
- }
- }
- }
- }
-
- if (idCount == 1){
- reporter.report("Don't use IDs in selectors.", selector.line, selector.col, rule);
- } else if (idCount > 1){
- reporter.report(idCount + " IDs in the selector, really?", selector.line, selector.col, rule);
- }
- }
-
- });
- }
-
-});
-CSSLint.addRule({
- id: "import",
- name: "Disallow @import",
- desc: "Don't use @import, use <link> instead.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- parser.addListener("import", function(event){
- reporter.report("@import prevents parallel downloads, use <link> instead.", event.line, event.col, rule);
- });
-
- }
-
-});
-CSSLint.addRule({
- id: "important",
- name: "Disallow !important",
- desc: "Be careful when using !important declaration",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- count = 0;
- parser.addListener("property", function(event){
- if (event.important === true){
- count++;
- reporter.report("Use of !important", event.line, event.col, rule);
- }
- });
- parser.addListener("endstylesheet", function(){
- reporter.stat("important", count);
- if (count >= 10){
- reporter.rollupWarn("Too many !important declarations (" + count + "), try to use less than 10 to avoid specificity issues.", rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "known-properties",
- name: "Require use of known properties",
- desc: "Properties should be known (listed in CSS3 specification) or be a vendor-prefixed property.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- parser.addListener("property", function(event){
- var name = event.property.text.toLowerCase();
- if (event.invalid) {
- reporter.report(event.invalid.message, event.line, event.col, rule);
- }
-
- });
- }
-
-});
-CSSLint.addRule({
- id: "outline-none",
- name: "Disallow outline: none",
- desc: "Use of outline: none or outline: 0 should be limited to :focus rules.",
- browsers: "All",
- tags: ["Accessibility"],
- init: function(parser, reporter){
- var rule = this,
- lastRule;
-
- function startRule(event){
- if (event.selectors){
- lastRule = {
- line: event.line,
- col: event.col,
- selectors: event.selectors,
- propCount: 0,
- outline: false
- };
- } else {
- lastRule = null;
- }
- }
-
- function endRule(event){
- if (lastRule){
- if (lastRule.outline){
- if (lastRule.selectors.toString().toLowerCase().indexOf(":focus") == -1){
- reporter.report("Outlines should only be modified using :focus.", lastRule.line, lastRule.col, rule);
- } else if (lastRule.propCount == 1) {
- reporter.report("Outlines shouldn't be hidden unless other visual changes are made.", lastRule.line, lastRule.col, rule);
- }
- }
- }
- }
-
- parser.addListener("startrule", startRule);
- parser.addListener("startfontface", startRule);
- parser.addListener("startpage", startRule);
- parser.addListener("startpagemargin", startRule);
- parser.addListener("startkeyframerule", startRule);
-
- parser.addListener("property", function(event){
- var name = event.property.text.toLowerCase(),
- value = event.value;
-
- if (lastRule){
- lastRule.propCount++;
- if (name == "outline" && (value == "none" || value == "0")){
- lastRule.outline = true;
- }
- }
-
- });
-
- parser.addListener("endrule", endRule);
- parser.addListener("endfontface", endRule);
- parser.addListener("endpage", endRule);
- parser.addListener("endpagemargin", endRule);
- parser.addListener("endkeyframerule", endRule);
-
- }
-
-});
-CSSLint.addRule({
- id: "overqualified-elements",
- name: "Disallow overqualified elements",
- desc: "Don't use classes or IDs with elements (a.foo or a#foo).",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- classes = {};
-
- parser.addListener("startrule", function(event){
- var selectors = event.selectors,
- selector,
- part,
- modifier,
- i, j, k;
-
- for (i=0; i < selectors.length; i++){
- selector = selectors[i];
-
- for (j=0; j < selector.parts.length; j++){
- part = selector.parts[j];
- if (part.type == parser.SELECTOR_PART_TYPE){
- for (k=0; k < part.modifiers.length; k++){
- modifier = part.modifiers[k];
- if (part.elementName && modifier.type == "id"){
- reporter.report("Element (" + part + ") is overqualified, just use " + modifier + " without element name.", part.line, part.col, rule);
- } else if (modifier.type == "class"){
-
- if (!classes[modifier]){
- classes[modifier] = [];
- }
- classes[modifier].push({ modifier: modifier, part: part });
- }
- }
- }
- }
- }
- });
-
- parser.addListener("endstylesheet", function(){
-
- var prop;
- for (prop in classes){
- if (classes.hasOwnProperty(prop)){
- if (classes[prop].length == 1 && classes[prop][0].part.elementName){
- reporter.report("Element (" + classes[prop][0].part + ") is overqualified, just use " + classes[prop][0].modifier + " without element name.", classes[prop][0].part.line, classes[prop][0].part.col, rule);
- }
- }
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "qualified-headings",
- name: "Disallow qualified headings",
- desc: "Headings should not be qualified (namespaced).",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- parser.addListener("startrule", function(event){
- var selectors = event.selectors,
- selector,
- part,
- i, j;
-
- for (i=0; i < selectors.length; i++){
- selector = selectors[i];
-
- for (j=0; j < selector.parts.length; j++){
- part = selector.parts[j];
- if (part.type == parser.SELECTOR_PART_TYPE){
- if (part.elementName && /h[1-6]/.test(part.elementName.toString()) && j > 0){
- reporter.report("Heading (" + part.elementName + ") should not be qualified.", part.line, part.col, rule);
- }
- }
- }
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "regex-selectors",
- name: "Disallow selectors that look like regexs",
- desc: "Selectors that look like regular expressions are slow and should be avoided.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- parser.addListener("startrule", function(event){
- var selectors = event.selectors,
- selector,
- part,
- modifier,
- i, j, k;
-
- for (i=0; i < selectors.length; i++){
- selector = selectors[i];
- for (j=0; j < selector.parts.length; j++){
- part = selector.parts[j];
- if (part.type == parser.SELECTOR_PART_TYPE){
- for (k=0; k < part.modifiers.length; k++){
- modifier = part.modifiers[k];
- if (modifier.type == "attribute"){
- if (/([\~\|\^\$\*]=)/.test(modifier)){
- reporter.report("Attribute selectors with " + RegExp.$1 + " are slow!", modifier.line, modifier.col, rule);
- }
- }
-
- }
- }
- }
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "rules-count",
- name: "Rules Count",
- desc: "Track how many rules there are.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- count = 0;
- parser.addListener("startrule", function(){
- count++;
- });
-
- parser.addListener("endstylesheet", function(){
- reporter.stat("rule-count", count);
- });
- }
-
-});
-CSSLint.addRule({
- id: "selector-max-approaching",
- name: "Warn when approaching the 4095 selector limit for IE",
- desc: "Will warn when selector count is >= 3800 selectors.",
- browsers: "IE",
- init: function(parser, reporter) {
- var rule = this, count = 0;
-
- parser.addListener('startrule', function(event) {
- count += event.selectors.length;
- });
-
- parser.addListener("endstylesheet", function() {
- if (count >= 3800) {
- reporter.report("You have " + count + " selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "selector-max",
- name: "Error when past the 4095 selector limit for IE",
- desc: "Will error when selector count is > 4095.",
- browsers: "IE",
- init: function(parser, reporter){
- var rule = this, count = 0;
-
- parser.addListener('startrule',function(event) {
- count += event.selectors.length;
- });
-
- parser.addListener("endstylesheet", function() {
- if (count > 4095) {
- reporter.report("You have " + count + " selectors. Internet Explorer supports a maximum of 4095 selectors per stylesheet. Consider refactoring.",0,0,rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "shorthand",
- name: "Require shorthand properties",
- desc: "Use shorthand properties where possible.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- prop, i, len,
- propertiesToCheck = {},
- properties,
- mapping = {
- "margin": [
- "margin-top",
- "margin-bottom",
- "margin-left",
- "margin-right"
- ],
- "padding": [
- "padding-top",
- "padding-bottom",
- "padding-left",
- "padding-right"
- ]
- };
- for (prop in mapping){
- if (mapping.hasOwnProperty(prop)){
- for (i=0, len=mapping[prop].length; i < len; i++){
- propertiesToCheck[mapping[prop][i]] = prop;
- }
- }
- }
-
- function startRule(event){
- properties = {};
- }
- function endRule(event){
-
- var prop, i, len, total;
- for (prop in mapping){
- if (mapping.hasOwnProperty(prop)){
- total=0;
-
- for (i=0, len=mapping[prop].length; i < len; i++){
- total += properties[mapping[prop][i]] ? 1 : 0;
- }
-
- if (total == mapping[prop].length){
- reporter.report("The properties " + mapping[prop].join(", ") + " can be replaced by " + prop + ".", event.line, event.col, rule);
- }
- }
- }
- }
-
- parser.addListener("startrule", startRule);
- parser.addListener("startfontface", startRule);
- parser.addListener("property", function(event){
- var name = event.property.toString().toLowerCase(),
- value = event.value.parts[0].value;
-
- if (propertiesToCheck[name]){
- properties[name] = 1;
- }
- });
-
- parser.addListener("endrule", endRule);
- parser.addListener("endfontface", endRule);
-
- }
-
-});
-CSSLint.addRule({
- id: "star-property-hack",
- name: "Disallow properties with a star prefix",
- desc: "Checks for the star property hack (targets IE6/7)",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
- parser.addListener("property", function(event){
- var property = event.property;
-
- if (property.hack == "*") {
- reporter.report("Property with star prefix found.", event.property.line, event.property.col, rule);
- }
- });
- }
-});
-CSSLint.addRule({
- id: "text-indent",
- name: "Disallow negative text-indent",
- desc: "Checks for text indent less than -99px",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- textIndent,
- direction;
-
-
- function startRule(event){
- textIndent = false;
- direction = "inherit";
- }
- function endRule(event){
- if (textIndent && direction != "ltr"){
- reporter.report("Negative text-indent doesn't work well with RTL. If you use text-indent for image replacement explicitly set direction for that item to ltr.", textIndent.line, textIndent.col, rule);
- }
- }
-
- parser.addListener("startrule", startRule);
- parser.addListener("startfontface", startRule);
- parser.addListener("property", function(event){
- var name = event.property.toString().toLowerCase(),
- value = event.value;
-
- if (name == "text-indent" && value.parts[0].value < -99){
- textIndent = event.property;
- } else if (name == "direction" && value == "ltr"){
- direction = "ltr";
- }
- });
-
- parser.addListener("endrule", endRule);
- parser.addListener("endfontface", endRule);
-
- }
-
-});
-CSSLint.addRule({
- id: "underscore-property-hack",
- name: "Disallow properties with an underscore prefix",
- desc: "Checks for the underscore property hack (targets IE6)",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
- parser.addListener("property", function(event){
- var property = event.property;
-
- if (property.hack == "_") {
- reporter.report("Property with underscore prefix found.", event.property.line, event.property.col, rule);
- }
- });
- }
-});
-CSSLint.addRule({
- id: "unique-headings",
- name: "Headings should only be defined once",
- desc: "Headings should be defined only once.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- var headings = {
- h1: 0,
- h2: 0,
- h3: 0,
- h4: 0,
- h5: 0,
- h6: 0
- };
-
- parser.addListener("startrule", function(event){
- var selectors = event.selectors,
- selector,
- part,
- pseudo,
- i, j;
-
- for (i=0; i < selectors.length; i++){
- selector = selectors[i];
- part = selector.parts[selector.parts.length-1];
-
- if (part.elementName && /(h[1-6])/i.test(part.elementName.toString())){
-
- for (j=0; j < part.modifiers.length; j++){
- if (part.modifiers[j].type == "pseudo"){
- pseudo = true;
- break;
- }
- }
-
- if (!pseudo){
- headings[RegExp.$1]++;
- if (headings[RegExp.$1] > 1) {
- reporter.report("Heading (" + part.elementName + ") has already been defined.", part.line, part.col, rule);
- }
- }
- }
- }
- });
-
- parser.addListener("endstylesheet", function(event){
- var prop,
- messages = [];
-
- for (prop in headings){
- if (headings.hasOwnProperty(prop)){
- if (headings[prop] > 1){
- messages.push(headings[prop] + " " + prop + "s");
- }
- }
- }
-
- if (messages.length){
- reporter.rollupWarn("You have " + messages.join(", ") + " defined in this stylesheet.", rule);
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "universal-selector",
- name: "Disallow universal selector",
- desc: "The universal selector (*) is known to be slow.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- parser.addListener("startrule", function(event){
- var selectors = event.selectors,
- selector,
- part,
- modifier,
- i, j, k;
-
- for (i=0; i < selectors.length; i++){
- selector = selectors[i];
-
- part = selector.parts[selector.parts.length-1];
- if (part.elementName == "*"){
- reporter.report(rule.desc, part.line, part.col, rule);
- }
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "unqualified-attributes",
- name: "Disallow unqualified attribute selectors",
- desc: "Unqualified attribute selectors are known to be slow.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
-
- parser.addListener("startrule", function(event){
-
- var selectors = event.selectors,
- selector,
- part,
- modifier,
- i, j, k;
-
- for (i=0; i < selectors.length; i++){
- selector = selectors[i];
-
- part = selector.parts[selector.parts.length-1];
- if (part.type == parser.SELECTOR_PART_TYPE){
- for (k=0; k < part.modifiers.length; k++){
- modifier = part.modifiers[k];
- if (modifier.type == "attribute" && (!part.elementName || part.elementName == "*")){
- reporter.report(rule.desc, part.line, part.col, rule);
- }
- }
- }
-
- }
- });
- }
-
-});
-CSSLint.addRule({
- id: "vendor-prefix",
- name: "Require standard property with vendor prefix",
- desc: "When using a vendor-prefixed property, make sure to include the standard one.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this,
- properties,
- num,
- propertiesToCheck = {
- "-webkit-border-radius": "border-radius",
- "-webkit-border-top-left-radius": "border-top-left-radius",
- "-webkit-border-top-right-radius": "border-top-right-radius",
- "-webkit-border-bottom-left-radius": "border-bottom-left-radius",
- "-webkit-border-bottom-right-radius": "border-bottom-right-radius",
-
- "-o-border-radius": "border-radius",
- "-o-border-top-left-radius": "border-top-left-radius",
- "-o-border-top-right-radius": "border-top-right-radius",
- "-o-border-bottom-left-radius": "border-bottom-left-radius",
- "-o-border-bottom-right-radius": "border-bottom-right-radius",
-
- "-moz-border-radius": "border-radius",
- "-moz-border-radius-topleft": "border-top-left-radius",
- "-moz-border-radius-topright": "border-top-right-radius",
- "-moz-border-radius-bottomleft": "border-bottom-left-radius",
- "-moz-border-radius-bottomright": "border-bottom-right-radius",
-
- "-moz-column-count": "column-count",
- "-webkit-column-count": "column-count",
-
- "-moz-column-gap": "column-gap",
- "-webkit-column-gap": "column-gap",
-
- "-moz-column-rule": "column-rule",
- "-webkit-column-rule": "column-rule",
-
- "-moz-column-rule-style": "column-rule-style",
- "-webkit-column-rule-style": "column-rule-style",
-
- "-moz-column-rule-color": "column-rule-color",
- "-webkit-column-rule-color": "column-rule-color",
-
- "-moz-column-rule-width": "column-rule-width",
- "-webkit-column-rule-width": "column-rule-width",
-
- "-moz-column-width": "column-width",
- "-webkit-column-width": "column-width",
-
- "-webkit-column-span": "column-span",
- "-webkit-columns": "columns",
-
- "-moz-box-shadow": "box-shadow",
- "-webkit-box-shadow": "box-shadow",
-
- "-moz-transform" : "transform",
- "-webkit-transform" : "transform",
- "-o-transform" : "transform",
- "-ms-transform" : "transform",
-
- "-moz-transform-origin" : "transform-origin",
- "-webkit-transform-origin" : "transform-origin",
- "-o-transform-origin" : "transform-origin",
- "-ms-transform-origin" : "transform-origin",
-
- "-moz-box-sizing" : "box-sizing",
- "-webkit-box-sizing" : "box-sizing",
-
- "-moz-user-select" : "user-select",
- "-khtml-user-select" : "user-select",
- "-webkit-user-select" : "user-select"
- };
- function startRule(){
- properties = {};
- num=1;
- }
- function endRule(event){
- var prop,
- i, len,
- standard,
- needed,
- actual,
- needsStandard = [];
-
- for (prop in properties){
- if (propertiesToCheck[prop]){
- needsStandard.push({ actual: prop, needed: propertiesToCheck[prop]});
- }
- }
-
- for (i=0, len=needsStandard.length; i < len; i++){
- needed = needsStandard[i].needed;
- actual = needsStandard[i].actual;
-
- if (!properties[needed]){
- reporter.report("Missing standard property '" + needed + "' to go along with '" + actual + "'.", properties[actual][0].name.line, properties[actual][0].name.col, rule);
- } else {
- if (properties[needed][0].pos < properties[actual][0].pos){
- reporter.report("Standard property '" + needed + "' should come after vendor-prefixed property '" + actual + "'.", properties[actual][0].name.line, properties[actual][0].name.col, rule);
- }
- }
- }
-
- }
-
- parser.addListener("startrule", startRule);
- parser.addListener("startfontface", startRule);
- parser.addListener("startpage", startRule);
- parser.addListener("startpagemargin", startRule);
- parser.addListener("startkeyframerule", startRule);
-
- parser.addListener("property", function(event){
- var name = event.property.text.toLowerCase();
-
- if (!properties[name]){
- properties[name] = [];
- }
-
- properties[name].push({ name: event.property, value : event.value, pos:num++ });
- });
-
- parser.addListener("endrule", endRule);
- parser.addListener("endfontface", endRule);
- parser.addListener("endpage", endRule);
- parser.addListener("endpagemargin", endRule);
- parser.addListener("endkeyframerule", endRule);
- }
-
-});
-CSSLint.addRule({
- id: "zero-units",
- name: "Disallow units for 0 values",
- desc: "You don't need to specify units when a value is 0.",
- browsers: "All",
- init: function(parser, reporter){
- var rule = this;
- parser.addListener("property", function(event){
- var parts = event.value.parts,
- i = 0,
- len = parts.length;
-
- while(i < len){
- if ((parts[i].units || parts[i].type == "percentage") && parts[i].value === 0 && parts[i].type != "time"){
- reporter.report("Values of 0 shouldn't have units specified.", parts[i].line, parts[i].col, rule);
- }
- i++;
- }
-
- });
-
- }
-
-});
-(function() {
- var xmlEscape = function(str) {
- if (!str || str.constructor !== String) {
- return "";
- }
-
- return str.replace(/[\"&><]/g, function(match) {
- switch (match) {
- case "\"":
- return "&quot;";
- case "&":
- return "&amp;";
- case "<":
- return "&lt;";
- case ">":
- return "&gt;";
- }
- });
- };
-
- CSSLint.addFormatter({
- id: "checkstyle-xml",
- name: "Checkstyle XML format",
- startFormat: function(){
- return "<?xml version=\"1.0\" encoding=\"utf-8\"?><checkstyle>";
- },
- endFormat: function(){
- return "</checkstyle>";
- },
- readError: function(filename, message) {
- return "<file name=\"" + xmlEscape(filename) + "\"><error line=\"0\" column=\"0\" severty=\"error\" message=\"" + xmlEscape(message) + "\"></error></file>";
- },
- formatResults: function(results, filename, options) {
- var messages = results.messages,
- output = [];
- var generateSource = function(rule) {
- if (!rule || !('name' in rule)) {
- return "";
- }
- return 'net.csslint.' + rule.name.replace(/\s/g,'');
- };
-
-
-
- if (messages.length > 0) {
- output.push("<file name=\""+filename+"\">");
- CSSLint.Util.forEach(messages, function (message, i) {
- if (!message.rollup) {
- output.push("<error line=\"" + message.line + "\" column=\"" + message.col + "\" severity=\"" + message.type + "\"" +
- " message=\"" + xmlEscape(message.message) + "\" source=\"" + generateSource(message.rule) +"\"/>");
- }
- });
- output.push("</file>");
- }
-
- return output.join("");
- }
- });
-
-}());
-CSSLint.addFormatter({
- id: "compact",
- name: "Compact, 'porcelain' format",
- startFormat: function() {
- return "";
- },
- endFormat: function() {
- return "";
- },
- formatResults: function(results, filename, options) {
- var messages = results.messages,
- output = "";
- options = options || {};
- var capitalize = function(str) {
- return str.charAt(0).toUpperCase() + str.slice(1);
- };
-
- if (messages.length === 0) {
- return options.quiet ? "" : filename + ": Lint Free!";
- }
-
- CSSLint.Util.forEach(messages, function(message, i) {
- if (message.rollup) {
- output += filename + ": " + capitalize(message.type) + " - " + message.message + "\n";
- } else {
- output += filename + ": " + "line " + message.line +
- ", col " + message.col + ", " + capitalize(message.type) + " - " + message.message + "\n";
- }
- });
-
- return output;
- }
-});
-CSSLint.addFormatter({
- id: "csslint-xml",
- name: "CSSLint XML format",
- startFormat: function(){
- return "<?xml version=\"1.0\" encoding=\"utf-8\"?><csslint>";
- },
- endFormat: function(){
- return "</csslint>";
- },
- formatResults: function(results, filename, options) {
- var messages = results.messages,
- output = [];
- var escapeSpecialCharacters = function(str) {
- if (!str || str.constructor !== String) {
- return "";
- }
- return str.replace(/\"/g, "'").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
- };
-
- if (messages.length > 0) {
- output.push("<file name=\""+filename+"\">");
- CSSLint.Util.forEach(messages, function (message, i) {
- if (message.rollup) {
- output.push("<issue severity=\"" + message.type + "\" reason=\"" + escapeSpecialCharacters(message.message) + "\" evidence=\"" + escapeSpecialCharacters(message.evidence) + "\"/>");
- } else {
- output.push("<issue line=\"" + message.line + "\" char=\"" + message.col + "\" severity=\"" + message.type + "\"" +
- " reason=\"" + escapeSpecialCharacters(message.message) + "\" evidence=\"" + escapeSpecialCharacters(message.evidence) + "\"/>");
- }
- });
- output.push("</file>");
- }
-
- return output.join("");
- }
-});
-CSSLint.addFormatter({
- id: "junit-xml",
- name: "JUNIT XML format",
- startFormat: function(){
- return "<?xml version=\"1.0\" encoding=\"utf-8\"?><testsuites>";
- },
- endFormat: function() {
- return "</testsuites>";
- },
- formatResults: function(results, filename, options) {
-
- var messages = results.messages,
- output = [],
- tests = {
- 'error': 0,
- 'failure': 0
- };
- var generateSource = function(rule) {
- if (!rule || !('name' in rule)) {
- return "";
- }
- return 'net.csslint.' + rule.name.replace(/\s/g,'');
- };
- var escapeSpecialCharacters = function(str) {
-
- if (!str || str.constructor !== String) {
- return "";
- }
-
- return str.replace(/\"/g, "'").replace(/</g, "&lt;").replace(/>/g, "&gt;");
-
- };
-
- if (messages.length > 0) {
-
- messages.forEach(function (message, i) {
- var type = message.type === 'warning' ? 'error' : message.type;
- if (!message.rollup) {
- output.push("<testcase time=\"0\" name=\"" + generateSource(message.rule) + "\">");
- output.push("<" + type + " message=\"" + escapeSpecialCharacters(message.message) + "\"><![CDATA[" + message.line + ':' + message.col + ':' + escapeSpecialCharacters(message.evidence) + "]]></" + type + ">");
- output.push("</testcase>");
-
- tests[type] += 1;
-
- }
-
- });
-
- output.unshift("<testsuite time=\"0\" tests=\"" + messages.length + "\" skipped=\"0\" errors=\"" + tests.error + "\" failures=\"" + tests.failure + "\" package=\"net.csslint\" name=\"" + filename + "\">");
- output.push("</testsuite>");
-
- }
-
- return output.join("");
-
- }
-});
-CSSLint.addFormatter({
- id: "lint-xml",
- name: "Lint XML format",
- startFormat: function(){
- return "<?xml version=\"1.0\" encoding=\"utf-8\"?><lint>";
- },
- endFormat: function(){
- return "</lint>";
- },
- formatResults: function(results, filename, options) {
- var messages = results.messages,
- output = [];
- var escapeSpecialCharacters = function(str) {
- if (!str || str.constructor !== String) {
- return "";
- }
- return str.replace(/\"/g, "'").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
- };
-
- if (messages.length > 0) {
-
- output.push("<file name=\""+filename+"\">");
- CSSLint.Util.forEach(messages, function (message, i) {
- if (message.rollup) {
- output.push("<issue severity=\"" + message.type + "\" reason=\"" + escapeSpecialCharacters(message.message) + "\" evidence=\"" + escapeSpecialCharacters(message.evidence) + "\"/>");
- } else {
- output.push("<issue line=\"" + message.line + "\" char=\"" + message.col + "\" severity=\"" + message.type + "\"" +
- " reason=\"" + escapeSpecialCharacters(message.message) + "\" evidence=\"" + escapeSpecialCharacters(message.evidence) + "\"/>");
- }
- });
- output.push("</file>");
- }
-
- return output.join("");
- }
-});
-CSSLint.addFormatter({
- id: "text",
- name: "Plain Text",
- startFormat: function() {
- return "";
- },
- endFormat: function() {
- return "";
- },
- formatResults: function(results, filename, options) {
- var messages = results.messages,
- output = "";
- options = options || {};
-
- if (messages.length === 0) {
- return options.quiet ? "" : "\n\ncsslint: No errors in " + filename + ".";
- }
-
- output = "\n\ncsslint: There are " + messages.length + " problems in " + filename + ".";
- var pos = filename.lastIndexOf("/"),
- shortFilename = filename;
-
- if (pos === -1){
- pos = filename.lastIndexOf("\\");
- }
- if (pos > -1){
- shortFilename = filename.substring(pos+1);
- }
-
- CSSLint.Util.forEach(messages, function (message, i) {
- output = output + "\n\n" + shortFilename;
- if (message.rollup) {
- output += "\n" + (i+1) + ": " + message.type;
- output += "\n" + message.message;
- } else {
- output += "\n" + (i+1) + ": " + message.type + " at line " + message.line + ", col " + message.col;
- output += "\n" + message.message;
- output += "\n" + message.evidence;
- }
- });
-
- return output;
- }
-});
-
-exports.CSSLint = CSSLint;
-
-}); \ No newline at end of file
diff --git a/js/vendor/ace/src-noconflict/worker-javascript.js b/js/vendor/ace/src-noconflict/worker-javascript.js
deleted file mode 100644
index 8beac73..0000000
--- a/js/vendor/ace/src-noconflict/worker-javascript.js
+++ /dev/null
@@ -1,9980 +0,0 @@
-"no use strict";
-;(function(window) {
-if (typeof window.window != "undefined" && window.document) {
- return;
-}
-
-window.console = function() {
- var msgs = Array.prototype.slice.call(arguments, 0);
- postMessage({type: "log", data: msgs});
-};
-window.console.error =
-window.console.warn =
-window.console.log =
-window.console.trace = window.console;
-
-window.window = window;
-window.ace = window;
-
-window.normalizeModule = function(parentId, moduleName) {
- if (moduleName.indexOf("!") !== -1) {
- var chunks = moduleName.split("!");
- return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
- }
- if (moduleName.charAt(0) == ".") {
- var base = parentId.split("/").slice(0, -1).join("/");
- moduleName = base + "/" + moduleName;
-
- while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
- var previous = moduleName;
- moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
- }
- }
-
- return moduleName;
-};
-
-window.require = function(parentId, id) {
- if (!id) {
- id = parentId
- parentId = null;
- }
- if (!id.charAt)
- throw new Error("worker.js require() accepts only (parentId, id) as arguments");
-
- id = normalizeModule(parentId, id);
-
- var module = require.modules[id];
- if (module) {
- if (!module.initialized) {
- module.initialized = true;
- module.exports = module.factory().exports;
- }
- return module.exports;
- }
-
- var chunks = id.split("/");
- chunks[0] = require.tlns[chunks[0]] || chunks[0];
- var path = chunks.join("/") + ".js";
-
- require.id = id;
- importScripts(path);
- return require(parentId, id);
-};
-
-require.modules = {};
-require.tlns = {};
-
-window.define = function(id, deps, factory) {
- if (arguments.length == 2) {
- factory = deps;
- if (typeof id != "string") {
- deps = id;
- id = require.id;
- }
- } else if (arguments.length == 1) {
- factory = id;
- id = require.id;
- }
-
- if (id.indexOf("text!") === 0)
- return;
-
- var req = function(deps, factory) {
- return require(id, deps, factory);
- };
-
- require.modules[id] = {
- exports: {},
- factory: function() {
- var module = this;
- var returnExports = factory(req, module.exports, module);
- if (returnExports)
- module.exports = returnExports;
- return module;
- }
- };
-};
-
-window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
- require.tlns = topLevelNamespaces;
-}
-
-window.initSender = function initSender() {
-
- var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
- var oop = require("ace/lib/oop");
-
- var Sender = function() {};
-
- (function() {
-
- oop.implement(this, EventEmitter);
-
- this.callback = function(data, callbackId) {
- postMessage({
- type: "call",
- id: callbackId,
- data: data
- });
- };
-
- this.emit = function(name, data) {
- postMessage({
- type: "event",
- name: name,
- data: data
- });
- };
-
- }).call(Sender.prototype);
-
- return new Sender();
-}
-
-window.main = null;
-window.sender = null;
-
-window.onmessage = function(e) {
- var msg = e.data;
- if (msg.command) {
- if (main[msg.command])
- main[msg.command].apply(main, msg.args);
- else
- throw new Error("Unknown command:" + msg.command);
- }
- else if (msg.init) {
- initBaseUrls(msg.tlns);
- require("ace/lib/es5-shim");
- sender = initSender();
- var clazz = require(msg.module)[msg.classname];
- main = new clazz(sender);
- }
- else if (msg.event && sender) {
- sender._emit(msg.event, msg.data);
- }
-};
-})(this);
-
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-var EventEmitter = {};
-var stopPropagation = function() { this.propagationStopped = true; };
-var preventDefault = function() { this.defaultPrevented = true; };
-
-EventEmitter._emit =
-EventEmitter._dispatchEvent = function(eventName, e) {
- this._eventRegistry || (this._eventRegistry = {});
- this._defaultHandlers || (this._defaultHandlers = {});
-
- var listeners = this._eventRegistry[eventName] || [];
- var defaultHandler = this._defaultHandlers[eventName];
- if (!listeners.length && !defaultHandler)
- return;
-
- if (typeof e != "object" || !e)
- e = {};
-
- if (!e.type)
- e.type = eventName;
- if (!e.stopPropagation)
- e.stopPropagation = stopPropagation;
- if (!e.preventDefault)
- e.preventDefault = preventDefault;
-
- for (var i=0; i<listeners.length; i++) {
- listeners[i](e, this);
- if (e.propagationStopped)
- break;
- }
-
- if (defaultHandler && !e.defaultPrevented)
- return defaultHandler(e, this);
-};
-
-
-EventEmitter._signal = function(eventName, e) {
- var listeners = (this._eventRegistry || {})[eventName];
- if (!listeners)
- return;
-
- for (var i=0; i<listeners.length; i++)
- listeners[i](e, this);
-};
-
-EventEmitter.once = function(eventName, callback) {
- var _self = this;
- callback && this.addEventListener(eventName, function newCallback() {
- _self.removeEventListener(eventName, newCallback);
- callback.apply(null, arguments);
- });
-};
-
-
-EventEmitter.setDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- handlers = this._defaultHandlers = {_disabled_: {}};
-
- if (handlers[eventName]) {
- var old = handlers[eventName];
- var disabled = handlers._disabled_[eventName];
- if (!disabled)
- handlers._disabled_[eventName] = disabled = [];
- disabled.push(old);
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
- handlers[eventName] = callback;
-};
-EventEmitter.removeDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- return;
- var disabled = handlers._disabled_[eventName];
-
- if (handlers[eventName] == callback) {
- var old = handlers[eventName];
- if (disabled)
- this.setDefaultHandler(eventName, disabled.pop());
- } else if (disabled) {
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
-};
-
-EventEmitter.on =
-EventEmitter.addEventListener = function(eventName, callback, capturing) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- listeners = this._eventRegistry[eventName] = [];
-
- if (listeners.indexOf(callback) == -1)
- listeners[capturing ? "unshift" : "push"](callback);
- return callback;
-};
-
-EventEmitter.off =
-EventEmitter.removeListener =
-EventEmitter.removeEventListener = function(eventName, callback) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- return;
-
- var index = listeners.indexOf(callback);
- if (index !== -1)
- listeners.splice(index, 1);
-};
-
-EventEmitter.removeAllListeners = function(eventName) {
- if (this._eventRegistry) this._eventRegistry[eventName] = [];
-};
-
-exports.EventEmitter = EventEmitter;
-
-});
-
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.inherits = (function() {
- var tempCtor = function() {};
- return function(ctor, superCtor) {
- tempCtor.prototype = superCtor.prototype;
- ctor.super_ = superCtor.prototype;
- ctor.prototype = new tempCtor();
- ctor.prototype.constructor = ctor;
- };
-}());
-
-exports.mixin = function(obj, mixin) {
- for (var key in mixin) {
- obj[key] = mixin[key];
- }
- return obj;
-};
-
-exports.implement = function(proto, mixin) {
- exports.mixin(proto, mixin);
-};
-
-});
-
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-function Empty() {}
-
-if (!Function.prototype.bind) {
- Function.prototype.bind = function bind(that) { // .length is 1
- var target = this;
- if (typeof target != "function") {
- throw new TypeError("Function.prototype.bind called on incompatible " + target);
- }
- var args = slice.call(arguments, 1); // for normal call
- var bound = function () {
-
- if (this instanceof bound) {
-
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
-
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
-
- }
-
- };
- if(target.prototype) {
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
-}
-var call = Function.prototype.call;
-var prototypeOfArray = Array.prototype;
-var prototypeOfObject = Object.prototype;
-var slice = prototypeOfArray.slice;
-var _toString = call.bind(prototypeOfObject.toString);
-var owns = call.bind(prototypeOfObject.hasOwnProperty);
-var defineGetter;
-var defineSetter;
-var lookupGetter;
-var lookupSetter;
-var supportsAccessors;
-if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
- defineGetter = call.bind(prototypeOfObject.__defineGetter__);
- defineSetter = call.bind(prototypeOfObject.__defineSetter__);
- lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
- lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
-}
-if ([1,2].splice(0).length != 2) {
- if(function() { // test IE < 9 to splice bug - see issue #138
- function makeArray(l) {
- var a = new Array(l+2);
- a[0] = a[1] = 0;
- return a;
- }
- var array = [], lengthBefore;
-
- array.splice.apply(array, makeArray(20));
- array.splice.apply(array, makeArray(26));
-
- lengthBefore = array.length; //46
- array.splice(5, 0, "XXX"); // add one element
-
- lengthBefore + 1 == array.length
-
- if (lengthBefore + 1 == array.length) {
- return true;// has right splice implementation without bugs
- }
- }()) {//IE 6/7
- var array_splice = Array.prototype.splice;
- Array.prototype.splice = function(start, deleteCount) {
- if (!arguments.length) {
- return [];
- } else {
- return array_splice.apply(this, [
- start === void 0 ? 0 : start,
- deleteCount === void 0 ? (this.length - start) : deleteCount
- ].concat(slice.call(arguments, 2)))
- }
- };
- } else {//IE8
- Array.prototype.splice = function(pos, removeCount){
- var length = this.length;
- if (pos > 0) {
- if (pos > length)
- pos = length;
- } else if (pos == void 0) {
- pos = 0;
- } else if (pos < 0) {
- pos = Math.max(length + pos, 0);
- }
-
- if (!(pos+removeCount < length))
- removeCount = length - pos;
-
- var removed = this.slice(pos, pos+removeCount);
- var insert = slice.call(arguments, 2);
- var add = insert.length;
- if (pos === length) {
- if (add) {
- this.push.apply(this, insert);
- }
- } else {
- var remove = Math.min(removeCount, length - pos);
- var tailOldPos = pos + remove;
- var tailNewPos = tailOldPos + add - remove;
- var tailCount = length - tailOldPos;
- var lengthAfterRemove = length - remove;
-
- if (tailNewPos < tailOldPos) { // case A
- for (var i = 0; i < tailCount; ++i) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } else if (tailNewPos > tailOldPos) { // case B
- for (i = tailCount; i--; ) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } // else, add == remove (nothing to do)
-
- if (add && pos === lengthAfterRemove) {
- this.length = lengthAfterRemove; // truncate array
- this.push.apply(this, insert);
- } else {
- this.length = lengthAfterRemove + add; // reserves space
- for (i = 0; i < add; ++i) {
- this[pos+i] = insert[i];
- }
- }
- }
- return removed;
- };
- }
-}
-if (!Array.isArray) {
- Array.isArray = function isArray(obj) {
- return _toString(obj) == "[object Array]";
- };
-}
-var boxedString = Object("a"),
- splitString = boxedString[0] != "a" || !(0 in boxedString);
-
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function forEach(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- thisp = arguments[1],
- i = -1,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(); // TODO message
- }
-
- while (++i < length) {
- if (i in self) {
- fun.call(thisp, self[i], i, object);
- }
- }
- };
-}
-if (!Array.prototype.map) {
- Array.prototype.map = function map(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = Array(length),
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self)
- result[i] = fun.call(thisp, self[i], i, object);
- }
- return result;
- };
-}
-if (!Array.prototype.filter) {
- Array.prototype.filter = function filter(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = [],
- value,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self) {
- value = self[i];
- if (fun.call(thisp, value, i, object)) {
- result.push(value);
- }
- }
- }
- return result;
- };
-}
-if (!Array.prototype.every) {
- Array.prototype.every = function every(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && !fun.call(thisp, self[i], i, object)) {
- return false;
- }
- }
- return true;
- };
-}
-if (!Array.prototype.some) {
- Array.prototype.some = function some(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && fun.call(thisp, self[i], i, object)) {
- return true;
- }
- }
- return false;
- };
-}
-if (!Array.prototype.reduce) {
- Array.prototype.reduce = function reduce(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduce of empty array with no initial value");
- }
-
- var i = 0;
- var result;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i++];
- break;
- }
- if (++i >= length) {
- throw new TypeError("reduce of empty array with no initial value");
- }
- } while (true);
- }
-
- for (; i < length; i++) {
- if (i in self) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- }
-
- return result;
- };
-}
-if (!Array.prototype.reduceRight) {
- Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
-
- var result, i = length - 1;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i--];
- break;
- }
- if (--i < 0) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
- } while (true);
- }
-
- do {
- if (i in this) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- } while (i--);
-
- return result;
- };
-}
-if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
- Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
-
- var i = 0;
- if (arguments.length > 1) {
- i = toInteger(arguments[1]);
- }
- i = i >= 0 ? i : Math.max(0, length + i);
- for (; i < length; i++) {
- if (i in self && self[i] === sought) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
- Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
- var i = length - 1;
- if (arguments.length > 1) {
- i = Math.min(i, toInteger(arguments[1]));
- }
- i = i >= 0 ? i : length - Math.abs(i);
- for (; i >= 0; i--) {
- if (i in self && sought === self[i]) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Object.getPrototypeOf) {
- Object.getPrototypeOf = function getPrototypeOf(object) {
- return object.__proto__ || (
- object.constructor ?
- object.constructor.prototype :
- prototypeOfObject
- );
- };
-}
-if (!Object.getOwnPropertyDescriptor) {
- var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
- "non-object: ";
- Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT + object);
- if (!owns(object, property))
- return;
-
- var descriptor, getter, setter;
- descriptor = { enumerable: true, configurable: true };
- if (supportsAccessors) {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
-
- var getter = lookupGetter(object, property);
- var setter = lookupSetter(object, property);
- object.__proto__ = prototype;
-
- if (getter || setter) {
- if (getter) descriptor.get = getter;
- if (setter) descriptor.set = setter;
- return descriptor;
- }
- }
- descriptor.value = object[property];
- return descriptor;
- };
-}
-if (!Object.getOwnPropertyNames) {
- Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
- return Object.keys(object);
- };
-}
-if (!Object.create) {
- var createEmpty;
- if (Object.prototype.__proto__ === null) {
- createEmpty = function () {
- return { "__proto__": null };
- };
- } else {
- createEmpty = function () {
- var empty = {};
- for (var i in empty)
- empty[i] = null;
- empty.constructor =
- empty.hasOwnProperty =
- empty.propertyIsEnumerable =
- empty.isPrototypeOf =
- empty.toLocaleString =
- empty.toString =
- empty.valueOf =
- empty.__proto__ = null;
- return empty;
- }
- }
-
- Object.create = function create(prototype, properties) {
- var object;
- if (prototype === null) {
- object = createEmpty();
- } else {
- if (typeof prototype != "object")
- throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
- var Type = function () {};
- Type.prototype = prototype;
- object = new Type();
- object.__proto__ = prototype;
- }
- if (properties !== void 0)
- Object.defineProperties(object, properties);
- return object;
- };
-}
-
-function doesDefinePropertyWork(object) {
- try {
- Object.defineProperty(object, "sentinel", {});
- return "sentinel" in object;
- } catch (exception) {
- }
-}
-if (Object.defineProperty) {
- var definePropertyWorksOnObject = doesDefinePropertyWork({});
- var definePropertyWorksOnDom = typeof document == "undefined" ||
- doesDefinePropertyWork(document.createElement("div"));
- if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
- var definePropertyFallback = Object.defineProperty;
- }
-}
-
-if (!Object.defineProperty || definePropertyFallback) {
- var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
- var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
- var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
- "on this javascript engine";
-
- Object.defineProperty = function defineProperty(object, property, descriptor) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT_TARGET + object);
- if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
- throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
- if (definePropertyFallback) {
- try {
- return definePropertyFallback.call(Object, object, property, descriptor);
- } catch (exception) {
- }
- }
- if (owns(descriptor, "value")) {
-
- if (supportsAccessors && (lookupGetter(object, property) ||
- lookupSetter(object, property)))
- {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
- delete object[property];
- object[property] = descriptor.value;
- object.__proto__ = prototype;
- } else {
- object[property] = descriptor.value;
- }
- } else {
- if (!supportsAccessors)
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
- if (owns(descriptor, "get"))
- defineGetter(object, property, descriptor.get);
- if (owns(descriptor, "set"))
- defineSetter(object, property, descriptor.set);
- }
-
- return object;
- };
-}
-if (!Object.defineProperties) {
- Object.defineProperties = function defineProperties(object, properties) {
- for (var property in properties) {
- if (owns(properties, property))
- Object.defineProperty(object, property, properties[property]);
- }
- return object;
- };
-}
-if (!Object.seal) {
- Object.seal = function seal(object) {
- return object;
- };
-}
-if (!Object.freeze) {
- Object.freeze = function freeze(object) {
- return object;
- };
-}
-try {
- Object.freeze(function () {});
-} catch (exception) {
- Object.freeze = (function freeze(freezeObject) {
- return function freeze(object) {
- if (typeof object == "function") {
- return object;
- } else {
- return freezeObject(object);
- }
- };
- })(Object.freeze);
-}
-if (!Object.preventExtensions) {
- Object.preventExtensions = function preventExtensions(object) {
- return object;
- };
-}
-if (!Object.isSealed) {
- Object.isSealed = function isSealed(object) {
- return false;
- };
-}
-if (!Object.isFrozen) {
- Object.isFrozen = function isFrozen(object) {
- return false;
- };
-}
-if (!Object.isExtensible) {
- Object.isExtensible = function isExtensible(object) {
- if (Object(object) === object) {
- throw new TypeError(); // TODO message
- }
- var name = '';
- while (owns(object, name)) {
- name += '?';
- }
- object[name] = true;
- var returnValue = owns(object, name);
- delete object[name];
- return returnValue;
- };
-}
-if (!Object.keys) {
- var hasDontEnumBug = true,
- dontEnums = [
- "toString",
- "toLocaleString",
- "valueOf",
- "hasOwnProperty",
- "isPrototypeOf",
- "propertyIsEnumerable",
- "constructor"
- ],
- dontEnumsLength = dontEnums.length;
-
- for (var key in {"toString": null}) {
- hasDontEnumBug = false;
- }
-
- Object.keys = function keys(object) {
-
- if (
- (typeof object != "object" && typeof object != "function") ||
- object === null
- ) {
- throw new TypeError("Object.keys called on a non-object");
- }
-
- var keys = [];
- for (var name in object) {
- if (owns(object, name)) {
- keys.push(name);
- }
- }
-
- if (hasDontEnumBug) {
- for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
- var dontEnum = dontEnums[i];
- if (owns(object, dontEnum)) {
- keys.push(dontEnum);
- }
- }
- }
- return keys;
- };
-
-}
-if (!Date.now) {
- Date.now = function now() {
- return new Date().getTime();
- };
-}
-var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
- "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
- "\u2029\uFEFF";
-if (!String.prototype.trim || ws.trim()) {
- ws = "[" + ws + "]";
- var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
- trimEndRegexp = new RegExp(ws + ws + "*$");
- String.prototype.trim = function trim() {
- return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
- };
-}
-
-function toInteger(n) {
- n = +n;
- if (n !== n) { // isNaN
- n = 0;
- } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- return n;
-}
-
-function isPrimitive(input) {
- var type = typeof input;
- return (
- input === null ||
- type === "undefined" ||
- type === "boolean" ||
- type === "number" ||
- type === "string"
- );
-}
-
-function toPrimitive(input) {
- var val, valueOf, toString;
- if (isPrimitive(input)) {
- return input;
- }
- valueOf = input.valueOf;
- if (typeof valueOf === "function") {
- val = valueOf.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- toString = input.toString;
- if (typeof toString === "function") {
- val = toString.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- throw new TypeError();
-}
-var toObject = function (o) {
- if (o == null) { // this matches both null and undefined
- throw new TypeError("can't convert "+o+" to object");
- }
- return Object(o);
-};
-
-});
-
-ace.define('ace/mode/javascript_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/javascript/jshint'], function(require, exports, module) {
-
-
-var oop = require("../lib/oop");
-var Mirror = require("../worker/mirror").Mirror;
-var lint = require("./javascript/jshint").JSHINT;
-
-function startRegex(arr) {
- return RegExp("^(" + arr.join("|") + ")");
-}
-
-var disabledWarningsRe = startRegex([
- "Bad for in variable '(.+)'.",
- 'Missing "use strict"'
-]);
-var errorsRe = startRegex([
- "Unexpected",
- "Expected ",
- "Confusing (plus|minus)",
- "\\{a\\} unterminated regular expression",
- "Unclosed ",
- "Unmatched ",
- "Unbegun comment",
- "Bad invocation",
- "Missing space after",
- "Missing operator at"
-]);
-var infoRe = startRegex([
- "Expected an assignment",
- "Bad escapement of EOL",
- "Unexpected comma",
- "Unexpected space",
- "Missing radix parameter.",
- "A leading decimal point can",
- "\\['{a}'\\] is better written in dot notation.",
- "'{a}' used out of scope"
-]);
-
-var JavaScriptWorker = exports.JavaScriptWorker = function(sender) {
- Mirror.call(this, sender);
- this.setTimeout(500);
- this.setOptions();
-};
-
-oop.inherits(JavaScriptWorker, Mirror);
-
-(function() {
- this.setOptions = function(options) {
- this.options = options || {
- esnext: true,
- moz: true,
- devel: true,
- browser: true,
- node: true,
- laxcomma: true,
- laxbreak: true,
- lastsemic: true,
- onevar: false,
- passfail: false,
- maxerr: 100,
- expr: true,
- multistr: true,
- globalstrict: true
- };
- this.doc.getValue() && this.deferredUpdate.schedule(100);
- };
-
- this.changeOptions = function(newOptions) {
- oop.mixin(this.options, newOptions);
- this.doc.getValue() && this.deferredUpdate.schedule(100);
- };
-
- this.isValidJS = function(str) {
- try {
- eval("throw 0;" + str);
- } catch(e) {
- if (e === 0)
- return true;
- }
- return false
- };
-
- this.onUpdate = function() {
- var value = this.doc.getValue();
- value = value.replace(/^#!.*\n/, "\n");
- if (!value) {
- this.sender.emit("jslint", []);
- return;
- }
- var errors = [];
- var maxErrorLevel = this.isValidJS(value) ? "warning" : "error";
- lint(value, this.options);
- var results = lint.errors;
-
- var errorAdded = false
- for (var i = 0; i < results.length; i++) {
- var error = results[i];
- if (!error)
- continue;
- var raw = error.raw;
- var type = "warning";
-
- if (raw == "Missing semicolon.") {
- var str = error.evidence.substr(error.character);
- str = str.charAt(str.search(/\S/));
- if (maxErrorLevel == "error" && str && /[\w\d{(['"]/.test(str)) {
- error.reason = 'Missing ";" before statement';
- type = "error";
- } else {
- type = "info";
- }
- }
- else if (disabledWarningsRe.test(raw)) {
- continue;
- }
- else if (infoRe.test(raw)) {
- type = "info"
- }
- else if (errorsRe.test(raw)) {
- errorAdded = true;
- type = maxErrorLevel;
- }
- else if (raw == "'{a}' is not defined.") {
- type = "warning";
- }
- else if (raw == "'{a}' is defined but never used.") {
- type = "info";
- }
-
- errors.push({
- row: error.line-1,
- column: error.character-1,
- text: error.reason,
- type: type,
- raw: raw
- });
-
- if (errorAdded) {
- }
- }
-
- this.sender.emit("jslint", errors);
- };
-
-}).call(JavaScriptWorker.prototype);
-
-});
-ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
-
-
-var Document = require("../document").Document;
-var lang = require("../lib/lang");
-
-var Mirror = exports.Mirror = function(sender) {
- this.sender = sender;
- var doc = this.doc = new Document("");
-
- var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
-
- var _self = this;
- sender.on("change", function(e) {
- doc.applyDeltas(e.data);
- deferredUpdate.schedule(_self.$timeout);
- });
-};
-
-(function() {
-
- this.$timeout = 500;
-
- this.setTimeout = function(timeout) {
- this.$timeout = timeout;
- };
-
- this.setValue = function(value) {
- this.doc.setValue(value);
- this.deferredUpdate.schedule(this.$timeout);
- };
-
- this.getValue = function(callbackId) {
- this.sender.callback(this.doc.getValue(), callbackId);
- };
-
- this.onUpdate = function() {
- };
-
-}).call(Mirror.prototype);
-
-});
-
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-var Range = require("./range").Range;
-var Anchor = require("./anchor").Anchor;
-
-var Document = function(text) {
- this.$lines = [];
- if (text.length == 0) {
- this.$lines = [""];
- } else if (Array.isArray(text)) {
- this._insertLines(0, text);
- } else {
- this.insert({row: 0, column:0}, text);
- }
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.setValue = function(text) {
- var len = this.getLength();
- this.remove(new Range(0, 0, len, this.getLine(len-1).length));
- this.insert({row: 0, column:0}, text);
- };
- this.getValue = function() {
- return this.getAllLines().join(this.getNewLineCharacter());
- };
- this.createAnchor = function(row, column) {
- return new Anchor(this, row, column);
- };
- if ("aaa".split(/a/).length == 0)
- this.$split = function(text) {
- return text.replace(/\r\n|\r/g, "\n").split("\n");
- }
- else
- this.$split = function(text) {
- return text.split(/\r\n|\r|\n/);
- };
-
-
- this.$detectNewLine = function(text) {
- var match = text.match(/^.*?(\r\n|\r|\n)/m);
- this.$autoNewLine = match ? match[1] : "\n";
- };
- this.getNewLineCharacter = function() {
- switch (this.$newLineMode) {
- case "windows":
- return "\r\n";
- case "unix":
- return "\n";
- default:
- return this.$autoNewLine;
- }
- };
-
- this.$autoNewLine = "\n";
- this.$newLineMode = "auto";
- this.setNewLineMode = function(newLineMode) {
- if (this.$newLineMode === newLineMode)
- return;
-
- this.$newLineMode = newLineMode;
- };
- this.getNewLineMode = function() {
- return this.$newLineMode;
- };
- this.isNewLine = function(text) {
- return (text == "\r\n" || text == "\r" || text == "\n");
- };
- this.getLine = function(row) {
- return this.$lines[row] || "";
- };
- this.getLines = function(firstRow, lastRow) {
- return this.$lines.slice(firstRow, lastRow + 1);
- };
- this.getAllLines = function() {
- return this.getLines(0, this.getLength());
- };
- this.getLength = function() {
- return this.$lines.length;
- };
- this.getTextRange = function(range) {
- if (range.start.row == range.end.row) {
- return this.getLine(range.start.row)
- .substring(range.start.column, range.end.column);
- }
- var lines = this.getLines(range.start.row, range.end.row);
- lines[0] = (lines[0] || "").substring(range.start.column);
- var l = lines.length - 1;
- if (range.end.row - range.start.row == l)
- lines[l] = lines[l].substring(0, range.end.column);
- return lines.join(this.getNewLineCharacter());
- };
-
- this.$clipPosition = function(position) {
- var length = this.getLength();
- if (position.row >= length) {
- position.row = Math.max(0, length - 1);
- position.column = this.getLine(length-1).length;
- } else if (position.row < 0)
- position.row = 0;
- return position;
- };
- this.insert = function(position, text) {
- if (!text || text.length === 0)
- return position;
-
- position = this.$clipPosition(position);
- if (this.getLength() <= 1)
- this.$detectNewLine(text);
-
- var lines = this.$split(text);
- var firstLine = lines.splice(0, 1)[0];
- var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
-
- position = this.insertInLine(position, firstLine);
- if (lastLine !== null) {
- position = this.insertNewLine(position); // terminate first line
- position = this._insertLines(position.row, lines);
- position = this.insertInLine(position, lastLine || "");
- }
- return position;
- };
- this.insertLines = function(row, lines) {
- if (row >= this.getLength())
- return this.insert({row: row, column: 0}, "\n" + lines.join("\n"));
- return this._insertLines(Math.max(row, 0), lines);
- };
- this._insertLines = function(row, lines) {
- if (lines.length == 0)
- return {row: row, column: 0};
- if (lines.length > 0xFFFF) {
- var end = this._insertLines(row, lines.slice(0xFFFF));
- lines = lines.slice(0, 0xFFFF);
- }
-
- var args = [row, 0];
- args.push.apply(args, lines);
- this.$lines.splice.apply(this.$lines, args);
-
- var range = new Range(row, 0, row + lines.length, 0);
- var delta = {
- action: "insertLines",
- range: range,
- lines: lines
- };
- this._emit("change", { data: delta });
- return end || range.end;
- };
- this.insertNewLine = function(position) {
- position = this.$clipPosition(position);
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column);
- this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
-
- var end = {
- row : position.row + 1,
- column : 0
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.insertInLine = function(position, text) {
- if (text.length == 0)
- return position;
-
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column) + text
- + line.substring(position.column);
-
- var end = {
- row : position.row,
- column : position.column + text.length
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: text
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.remove = function(range) {
- range.start = this.$clipPosition(range.start);
- range.end = this.$clipPosition(range.end);
-
- if (range.isEmpty())
- return range.start;
-
- var firstRow = range.start.row;
- var lastRow = range.end.row;
-
- if (range.isMultiLine()) {
- var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
- var lastFullRow = lastRow - 1;
-
- if (range.end.column > 0)
- this.removeInLine(lastRow, 0, range.end.column);
-
- if (lastFullRow >= firstFullRow)
- this._removeLines(firstFullRow, lastFullRow);
-
- if (firstFullRow != firstRow) {
- this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
- this.removeNewLine(range.start.row);
- }
- }
- else {
- this.removeInLine(firstRow, range.start.column, range.end.column);
- }
- return range.start;
- };
- this.removeInLine = function(row, startColumn, endColumn) {
- if (startColumn == endColumn)
- return;
-
- var range = new Range(row, startColumn, row, endColumn);
- var line = this.getLine(row);
- var removed = line.substring(startColumn, endColumn);
- var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
- this.$lines.splice(row, 1, newLine);
-
- var delta = {
- action: "removeText",
- range: range,
- text: removed
- };
- this._emit("change", { data: delta });
- return range.start;
- };
- this.removeLines = function(firstRow, lastRow) {
- if (firstRow < 0 || lastRow >= this.getLength())
- return this.remove(new Range(firstRow, 0, lastRow + 1, 0));
- return this._removeLines(firstRow, lastRow);
- };
-
- this._removeLines = function(firstRow, lastRow) {
- var range = new Range(firstRow, 0, lastRow + 1, 0);
- var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
-
- var delta = {
- action: "removeLines",
- range: range,
- nl: this.getNewLineCharacter(),
- lines: removed
- };
- this._emit("change", { data: delta });
- return removed;
- };
- this.removeNewLine = function(row) {
- var firstLine = this.getLine(row);
- var secondLine = this.getLine(row+1);
-
- var range = new Range(row, firstLine.length, row+1, 0);
- var line = firstLine + secondLine;
-
- this.$lines.splice(row, 2, line);
-
- var delta = {
- action: "removeText",
- range: range,
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
- };
- this.replace = function(range, text) {
- if (text.length == 0 && range.isEmpty())
- return range.start;
- if (text == this.getTextRange(range))
- return range.end;
-
- this.remove(range);
- if (text) {
- var end = this.insert(range.start, text);
- }
- else {
- end = range.start;
- }
-
- return end;
- };
- this.applyDeltas = function(deltas) {
- for (var i=0; i<deltas.length; i++) {
- var delta = deltas[i];
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this.insertLines(range.start.row, delta.lines);
- else if (delta.action == "insertText")
- this.insert(range.start, delta.text);
- else if (delta.action == "removeLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "removeText")
- this.remove(range);
- }
- };
- this.revertDeltas = function(deltas) {
- for (var i=deltas.length-1; i>=0; i--) {
- var delta = deltas[i];
-
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "insertText")
- this.remove(range);
- else if (delta.action == "removeLines")
- this._insertLines(range.start.row, delta.lines);
- else if (delta.action == "removeText")
- this.insert(range.start, delta.text);
- }
- };
- this.indexToPosition = function(index, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- for (var i = startRow || 0, l = lines.length; i < l; i++) {
- index -= lines[i].length + newlineLength;
- if (index < 0)
- return {row: i, column: index + lines[i].length + newlineLength};
- }
- return {row: l-1, column: lines[l-1].length};
- };
- this.positionToIndex = function(pos, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- var index = 0;
- var row = Math.min(pos.row, lines.length);
- for (var i = startRow || 0; i < row; ++i)
- index += lines[i].length + newlineLength;
-
- return index + pos.column;
- };
-
-}).call(Document.prototype);
-
-exports.Document = Document;
-});
-
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-var Range = function(startRow, startColumn, endRow, endColumn) {
- this.start = {
- row: startRow,
- column: startColumn
- };
-
- this.end = {
- row: endRow,
- column: endColumn
- };
-};
-
-(function() {
- this.isEqual = function(range) {
- return this.start.row === range.start.row &&
- this.end.row === range.end.row &&
- this.start.column === range.start.column &&
- this.end.column === range.end.column;
- };
- this.toString = function() {
- return ("Range: [" + this.start.row + "/" + this.start.column +
- "] -> [" + this.end.row + "/" + this.end.column + "]");
- };
-
- this.contains = function(row, column) {
- return this.compare(row, column) == 0;
- };
- this.compareRange = function(range) {
- var cmp,
- end = range.end,
- start = range.start;
-
- cmp = this.compare(end.row, end.column);
- if (cmp == 1) {
- cmp = this.compare(start.row, start.column);
- if (cmp == 1) {
- return 2;
- } else if (cmp == 0) {
- return 1;
- } else {
- return 0;
- }
- } else if (cmp == -1) {
- return -2;
- } else {
- cmp = this.compare(start.row, start.column);
- if (cmp == -1) {
- return -1;
- } else if (cmp == 1) {
- return 42;
- } else {
- return 0;
- }
- }
- };
- this.comparePoint = function(p) {
- return this.compare(p.row, p.column);
- };
- this.containsRange = function(range) {
- return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
- };
- this.intersects = function(range) {
- var cmp = this.compareRange(range);
- return (cmp == -1 || cmp == 0 || cmp == 1);
- };
- this.isEnd = function(row, column) {
- return this.end.row == row && this.end.column == column;
- };
- this.isStart = function(row, column) {
- return this.start.row == row && this.start.column == column;
- };
- this.setStart = function(row, column) {
- if (typeof row == "object") {
- this.start.column = row.column;
- this.start.row = row.row;
- } else {
- this.start.row = row;
- this.start.column = column;
- }
- };
- this.setEnd = function(row, column) {
- if (typeof row == "object") {
- this.end.column = row.column;
- this.end.row = row.row;
- } else {
- this.end.row = row;
- this.end.column = column;
- }
- };
- this.inside = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column) || this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideStart = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideEnd = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.compare = function(row, column) {
- if (!this.isMultiLine()) {
- if (row === this.start.row) {
- return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
- };
- }
-
- if (row < this.start.row)
- return -1;
-
- if (row > this.end.row)
- return 1;
-
- if (this.start.row === row)
- return column >= this.start.column ? 0 : -1;
-
- if (this.end.row === row)
- return column <= this.end.column ? 0 : 1;
-
- return 0;
- };
- this.compareStart = function(row, column) {
- if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareEnd = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareInside = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.clipRows = function(firstRow, lastRow) {
- if (this.end.row > lastRow)
- var end = {row: lastRow + 1, column: 0};
- else if (this.end.row < firstRow)
- var end = {row: firstRow, column: 0};
-
- if (this.start.row > lastRow)
- var start = {row: lastRow + 1, column: 0};
- else if (this.start.row < firstRow)
- var start = {row: firstRow, column: 0};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
- this.extend = function(row, column) {
- var cmp = this.compare(row, column);
-
- if (cmp == 0)
- return this;
- else if (cmp == -1)
- var start = {row: row, column: column};
- else
- var end = {row: row, column: column};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
-
- this.isEmpty = function() {
- return (this.start.row === this.end.row && this.start.column === this.end.column);
- };
- this.isMultiLine = function() {
- return (this.start.row !== this.end.row);
- };
- this.clone = function() {
- return Range.fromPoints(this.start, this.end);
- };
- this.collapseRows = function() {
- if (this.end.column == 0)
- return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
- else
- return new Range(this.start.row, 0, this.end.row, 0)
- };
- this.toScreenRange = function(session) {
- var screenPosStart = session.documentToScreenPosition(this.start);
- var screenPosEnd = session.documentToScreenPosition(this.end);
-
- return new Range(
- screenPosStart.row, screenPosStart.column,
- screenPosEnd.row, screenPosEnd.column
- );
- };
- this.moveBy = function(row, column) {
- this.start.row += row;
- this.start.column += column;
- this.end.row += row;
- this.end.column += column;
- };
-
-}).call(Range.prototype);
-Range.fromPoints = function(start, end) {
- return new Range(start.row, start.column, end.row, end.column);
-};
-Range.comparePoints = comparePoints;
-
-Range.comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-
-
-exports.Range = Range;
-});
-
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-
-var Anchor = exports.Anchor = function(doc, row, column) {
- this.$onChange = this.onChange.bind(this);
- this.attach(doc);
-
- if (typeof column == "undefined")
- this.setPosition(row.row, row.column);
- else
- this.setPosition(row, column);
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.getPosition = function() {
- return this.$clipPositionToDocument(this.row, this.column);
- };
- this.getDocument = function() {
- return this.document;
- };
- this.onChange = function(e) {
- var delta = e.data;
- var range = delta.range;
-
- if (range.start.row == range.end.row && range.start.row != this.row)
- return;
-
- if (range.start.row > this.row)
- return;
-
- if (range.start.row == this.row && range.start.column > this.column)
- return;
-
- var row = this.row;
- var column = this.column;
- var start = range.start;
- var end = range.end;
-
- if (delta.action === "insertText") {
- if (start.row === row && start.column <= column) {
- if (start.row === end.row) {
- column += end.column - start.column;
- } else {
- column -= start.column;
- row += end.row - start.row;
- }
- } else if (start.row !== end.row && start.row < row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "insertLines") {
- if (start.row <= row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "removeText") {
- if (start.row === row && start.column < column) {
- if (end.column >= column)
- column = start.column;
- else
- column = Math.max(0, column - (end.column - start.column));
-
- } else if (start.row !== end.row && start.row < row) {
- if (end.row === row)
- column = Math.max(0, column - end.column) + start.column;
- row -= (end.row - start.row);
- } else if (end.row === row) {
- row -= end.row - start.row;
- column = Math.max(0, column - end.column) + start.column;
- }
- } else if (delta.action == "removeLines") {
- if (start.row <= row) {
- if (end.row <= row)
- row -= end.row - start.row;
- else {
- row = start.row;
- column = 0;
- }
- }
- }
-
- this.setPosition(row, column, true);
- };
- this.setPosition = function(row, column, noClip) {
- var pos;
- if (noClip) {
- pos = {
- row: row,
- column: column
- };
- } else {
- pos = this.$clipPositionToDocument(row, column);
- }
-
- if (this.row == pos.row && this.column == pos.column)
- return;
-
- var old = {
- row: this.row,
- column: this.column
- };
-
- this.row = pos.row;
- this.column = pos.column;
- this._emit("change", {
- old: old,
- value: pos
- });
- };
- this.detach = function() {
- this.document.removeEventListener("change", this.$onChange);
- };
- this.attach = function(doc) {
- this.document = doc || this.document;
- this.document.on("change", this.$onChange);
- };
- this.$clipPositionToDocument = function(row, column) {
- var pos = {};
-
- if (row >= this.document.getLength()) {
- pos.row = Math.max(0, this.document.getLength() - 1);
- pos.column = this.document.getLine(pos.row).length;
- }
- else if (row < 0) {
- pos.row = 0;
- pos.column = 0;
- }
- else {
- pos.row = row;
- pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
- }
-
- if (column < 0)
- pos.column = 0;
-
- return pos;
- };
-
-}).call(Anchor.prototype);
-
-});
-
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.stringReverse = function(string) {
- return string.split("").reverse().join("");
-};
-
-exports.stringRepeat = function (string, count) {
- var result = '';
- while (count > 0) {
- if (count & 1)
- result += string;
-
- if (count >>= 1)
- string += string;
- }
- return result;
-};
-
-var trimBeginRegexp = /^\s\s*/;
-var trimEndRegexp = /\s\s*$/;
-
-exports.stringTrimLeft = function (string) {
- return string.replace(trimBeginRegexp, '');
-};
-
-exports.stringTrimRight = function (string) {
- return string.replace(trimEndRegexp, '');
-};
-
-exports.copyObject = function(obj) {
- var copy = {};
- for (var key in obj) {
- copy[key] = obj[key];
- }
- return copy;
-};
-
-exports.copyArray = function(array){
- var copy = [];
- for (var i=0, l=array.length; i<l; i++) {
- if (array[i] && typeof array[i] == "object")
- copy[i] = this.copyObject( array[i] );
- else
- copy[i] = array[i];
- }
- return copy;
-};
-
-exports.deepCopy = function (obj) {
- if (typeof obj != "object") {
- return obj;
- }
-
- var copy = obj.constructor();
- for (var key in obj) {
- if (typeof obj[key] == "object") {
- copy[key] = this.deepCopy(obj[key]);
- } else {
- copy[key] = obj[key];
- }
- }
- return copy;
-};
-
-exports.arrayToMap = function(arr) {
- var map = {};
- for (var i=0; i<arr.length; i++) {
- map[arr[i]] = 1;
- }
- return map;
-
-};
-
-exports.createMap = function(props) {
- var map = Object.create(null);
- for (var i in props) {
- map[i] = props[i];
- }
- return map;
-};
-exports.arrayRemove = function(array, value) {
- for (var i = 0; i <= array.length; i++) {
- if (value === array[i]) {
- array.splice(i, 1);
- }
- }
-};
-
-exports.escapeRegExp = function(str) {
- return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
-};
-
-exports.escapeHTML = function(str) {
- return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
-};
-
-exports.getMatchOffsets = function(string, regExp) {
- var matches = [];
-
- string.replace(regExp, function(str) {
- matches.push({
- offset: arguments[arguments.length-2],
- length: str.length
- });
- });
-
- return matches;
-};
-exports.deferredCall = function(fcn) {
-
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var deferred = function(timeout) {
- deferred.cancel();
- timer = setTimeout(callback, timeout || 0);
- return deferred;
- };
-
- deferred.schedule = deferred;
-
- deferred.call = function() {
- this.cancel();
- fcn();
- return deferred;
- };
-
- deferred.cancel = function() {
- clearTimeout(timer);
- timer = null;
- return deferred;
- };
-
- return deferred;
-};
-
-
-exports.delayedCall = function(fcn, defaultTimeout) {
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var _self = function(timeout) {
- timer && clearTimeout(timer);
- timer = setTimeout(callback, timeout || defaultTimeout);
- };
-
- _self.delay = _self;
- _self.schedule = function(timeout) {
- if (timer == null)
- timer = setTimeout(callback, timeout || 0);
- };
-
- _self.call = function() {
- this.cancel();
- fcn();
- };
-
- _self.cancel = function() {
- timer && clearTimeout(timer);
- timer = null;
- };
-
- _self.isPending = function() {
- return timer;
- };
-
- return _self;
-};
-});
-ace.define('ace/mode/javascript/jshint', ['require', 'exports', 'module' ], function(require, exports, module) {
-var require;
-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})({
-1:[function(req,module,exports){
-
-var process = module.exports = {};
-
-process.nextTick = (function () {
- var canSetImmediate = typeof window !== 'undefined'
- && window.setImmediate;
- var canPost = typeof window !== 'undefined'
- && window.postMessage && window.addEventListener
- ;
-
- if (canSetImmediate) {
- return function (f) { return window.setImmediate(f) };
- }
-
- if (canPost) {
- var queue = [];
- window.addEventListener('message', function (ev) {
- if (ev.source === window && ev.data === 'process-tick') {
- ev.stopPropagation();
- if (queue.length > 0) {
- var fn = queue.shift();
- fn();
- }
- }
- }, true);
-
- return function nextTick(fn) {
- queue.push(fn);
- window.postMessage('process-tick', '*');
- };
- }
-
- return function nextTick(fn) {
- setTimeout(fn, 0);
- };
-})();
-
-process.title = 'browser';
-process.browser = true;
-process.env = {};
-process.argv = [];
-
-process.binding = function (name) {
- throw new Error('process.binding is not supported');
-}
-process.cwd = function () { return '/' };
-process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
-};
-
-},
-{}],
-2:[function(req,module,exports){
-(function(process){if (!process.EventEmitter) process.EventEmitter = function () {};
-
-var EventEmitter = exports.EventEmitter = process.EventEmitter;
-var isArray = typeof Array.isArray === 'function'
- ? Array.isArray
- : function (xs) {
- return Object.prototype.toString.call(xs) === '[object Array]'
- }
-;
-function indexOf (xs, x) {
- if (xs.indexOf) return xs.indexOf(x);
- for (var i = 0; i < xs.length; i++) {
- if (x === xs[i]) return i;
- }
- return -1;
-}
-var defaultMaxListeners = 200;
-EventEmitter.prototype.setMaxListeners = function(n) {
- if (!this._events) this._events = {};
- this._events.maxListeners = n;
-};
-
-
-EventEmitter.prototype.emit = function(type) {
- if (type === 'error') {
- if (!this._events || !this._events.error ||
- (isArray(this._events.error) && !this._events.error.length))
- {
- if (arguments[1] instanceof Error) {
- throw arguments[1]; // Unhandled 'error' event
- } else {
- throw new Error("Uncaught, unspecified 'error' event.");
- }
- return false;
- }
- }
-
- if (!this._events) return false;
- var handler = this._events[type];
- if (!handler) return false;
-
- if (typeof handler == 'function') {
- switch (arguments.length) {
- case 1:
- handler.call(this);
- break;
- case 2:
- handler.call(this, arguments[1]);
- break;
- case 3:
- handler.call(this, arguments[1], arguments[2]);
- break;
- default:
- var args = Array.prototype.slice.call(arguments, 1);
- handler.apply(this, args);
- }
- return true;
-
- } else if (isArray(handler)) {
- var args = Array.prototype.slice.call(arguments, 1);
-
- var listeners = handler.slice();
- for (var i = 0, l = listeners.length; i < l; i++) {
- listeners[i].apply(this, args);
- }
- return true;
-
- } else {
- return false;
- }
-};
-EventEmitter.prototype.addListener = function(type, listener) {
- if ('function' !== typeof listener) {
- throw new Error('addListener only takes instances of Function');
- }
-
- if (!this._events) this._events = {};
- this.emit('newListener', type, listener);
-
- if (!this._events[type]) {
- this._events[type] = listener;
- } else if (isArray(this._events[type])) {
- if (!this._events[type].warned) {
- var m;
- if (this._events.maxListeners !== undefined) {
- m = this._events.maxListeners;
- } else {
- m = defaultMaxListeners;
- }
-
- if (m && m > 0 && this._events[type].length > m) {
- this._events[type].warned = true;
- console.error('(node) warning: possible EventEmitter memory ' +
- 'leak detected. %d listeners added. ' +
- 'Use emitter.setMaxListeners() to increase limit.',
- this._events[type].length);
- console.trace();
- }
- }
- this._events[type].push(listener);
- } else {
- this._events[type] = [this._events[type], listener];
- }
-
- return this;
-};
-
-EventEmitter.prototype.on = EventEmitter.prototype.addListener;
-
-EventEmitter.prototype.once = function(type, listener) {
- var self = this;
- self.on(type, function g() {
- self.removeListener(type, g);
- listener.apply(this, arguments);
- });
-
- return this;
-};
-
-EventEmitter.prototype.removeListener = function(type, listener) {
- if ('function' !== typeof listener) {
- throw new Error('removeListener only takes instances of Function');
- }
- if (!this._events || !this._events[type]) return this;
-
- var list = this._events[type];
-
- if (isArray(list)) {
- var i = indexOf(list, listener);
- if (i < 0) return this;
- list.splice(i, 1);
- if (list.length == 0)
- delete this._events[type];
- } else if (this._events[type] === listener) {
- delete this._events[type];
- }
-
- return this;
-};
-
-EventEmitter.prototype.removeAllListeners = function(type) {
- if (arguments.length === 0) {
- this._events = {};
- return this;
- }
- if (type && this._events && this._events[type]) this._events[type] = null;
- return this;
-};
-
-EventEmitter.prototype.listeners = function(type) {
- if (!this._events) this._events = {};
- if (!this._events[type]) this._events[type] = [];
- if (!isArray(this._events[type])) {
- this._events[type] = [this._events[type]];
- }
- return this._events[type];
-};
-
-})(req("__browserify_process"))
-},
-{"__browserify_process":1}],
-3:[function(req,module,exports){
-(function(){// jshint -W001
-
-exports.reservedVars = {
- arguments : false,
- NaN : false
-};
-
-exports.ecmaIdentifiers = {
- Array : false,
- Boolean : false,
- Date : false,
- decodeURI : false,
- decodeURIComponent : false,
- encodeURI : false,
- encodeURIComponent : false,
- Error : false,
- "eval" : false,
- EvalError : false,
- Function : false,
- hasOwnProperty : false,
- isFinite : false,
- isNaN : false,
- JSON : false,
- Math : false,
- Map : false,
- Number : false,
- Object : false,
- parseInt : false,
- parseFloat : false,
- RangeError : false,
- ReferenceError : false,
- RegExp : false,
- Set : false,
- String : false,
- SyntaxError : false,
- TypeError : false,
- URIError : false,
- WeakMap : false
-};
-
-exports.browser = {
- ArrayBuffer : false,
- ArrayBufferView : false,
- Audio : false,
- Blob : false,
- addEventListener : false,
- applicationCache : false,
- atob : false,
- blur : false,
- btoa : false,
- clearInterval : false,
- clearTimeout : false,
- close : false,
- closed : false,
- DataView : false,
- DOMParser : false,
- defaultStatus : false,
- document : false,
- Element : false,
- ElementTimeControl : false,
- event : false,
- FileReader : false,
- Float32Array : false,
- Float64Array : false,
- FormData : false,
- focus : false,
- frames : false,
- getComputedStyle : false,
- HTMLElement : false,
- HTMLAnchorElement : false,
- HTMLBaseElement : false,
- HTMLBlockquoteElement: false,
- HTMLBodyElement : false,
- HTMLBRElement : false,
- HTMLButtonElement : false,
- HTMLCanvasElement : false,
- HTMLDirectoryElement : false,
- HTMLDivElement : false,
- HTMLDListElement : false,
- HTMLFieldSetElement : false,
- HTMLFontElement : false,
- HTMLFormElement : false,
- HTMLFrameElement : false,
- HTMLFrameSetElement : false,
- HTMLHeadElement : false,
- HTMLHeadingElement : false,
- HTMLHRElement : false,
- HTMLHtmlElement : false,
- HTMLIFrameElement : false,
- HTMLImageElement : false,
- HTMLInputElement : false,
- HTMLIsIndexElement : false,
- HTMLLabelElement : false,
- HTMLLayerElement : false,
- HTMLLegendElement : false,
- HTMLLIElement : false,
- HTMLLinkElement : false,
- HTMLMapElement : false,
- HTMLMenuElement : false,
- HTMLMetaElement : false,
- HTMLModElement : false,
- HTMLObjectElement : false,
- HTMLOListElement : false,
- HTMLOptGroupElement : false,
- HTMLOptionElement : false,
- HTMLParagraphElement : false,
- HTMLParamElement : false,
- HTMLPreElement : false,
- HTMLQuoteElement : false,
- HTMLScriptElement : false,
- HTMLSelectElement : false,
- HTMLStyleElement : false,
- HTMLTableCaptionElement: false,
- HTMLTableCellElement : false,
- HTMLTableColElement : false,
- HTMLTableElement : false,
- HTMLTableRowElement : false,
- HTMLTableSectionElement: false,
- HTMLTextAreaElement : false,
- HTMLTitleElement : false,
- HTMLUListElement : false,
- HTMLVideoElement : false,
- history : false,
- Int16Array : false,
- Int32Array : false,
- Int8Array : false,
- Image : false,
- length : false,
- localStorage : false,
- location : false,
- MessageChannel : false,
- MessageEvent : false,
- MessagePort : false,
- moveBy : false,
- moveTo : false,
- MutationObserver : false,
- name : false,
- Node : false,
- NodeFilter : false,
- navigator : false,
- onbeforeunload : true,
- onblur : true,
- onerror : true,
- onfocus : true,
- onload : true,
- onresize : true,
- onunload : true,
- open : false,
- openDatabase : false,
- opener : false,
- Option : false,
- parent : false,
- print : false,
- removeEventListener : false,
- resizeBy : false,
- resizeTo : false,
- screen : false,
- scroll : false,
- scrollBy : false,
- scrollTo : false,
- sessionStorage : false,
- setInterval : false,
- setTimeout : false,
- SharedWorker : false,
- status : false,
- SVGAElement : false,
- SVGAltGlyphDefElement: false,
- SVGAltGlyphElement : false,
- SVGAltGlyphItemElement: false,
- SVGAngle : false,
- SVGAnimateColorElement: false,
- SVGAnimateElement : false,
- SVGAnimateMotionElement: false,
- SVGAnimateTransformElement: false,
- SVGAnimatedAngle : false,
- SVGAnimatedBoolean : false,
- SVGAnimatedEnumeration: false,
- SVGAnimatedInteger : false,
- SVGAnimatedLength : false,
- SVGAnimatedLengthList: false,
- SVGAnimatedNumber : false,
- SVGAnimatedNumberList: false,
- SVGAnimatedPathData : false,
- SVGAnimatedPoints : false,
- SVGAnimatedPreserveAspectRatio: false,
- SVGAnimatedRect : false,
- SVGAnimatedString : false,
- SVGAnimatedTransformList: false,
- SVGAnimationElement : false,
- SVGCSSRule : false,
- SVGCircleElement : false,
- SVGClipPathElement : false,
- SVGColor : false,
- SVGColorProfileElement: false,
- SVGColorProfileRule : false,
- SVGComponentTransferFunctionElement: false,
- SVGCursorElement : false,
- SVGDefsElement : false,
- SVGDescElement : false,
- SVGDocument : false,
- SVGElement : false,
- SVGElementInstance : false,
- SVGElementInstanceList: false,
- SVGEllipseElement : false,
- SVGExternalResourcesRequired: false,
- SVGFEBlendElement : false,
- SVGFEColorMatrixElement: false,
- SVGFEComponentTransferElement: false,
- SVGFECompositeElement: false,
- SVGFEConvolveMatrixElement: false,
- SVGFEDiffuseLightingElement: false,
- SVGFEDisplacementMapElement: false,
- SVGFEDistantLightElement: false,
- SVGFEFloodElement : false,
- SVGFEFuncAElement : false,
- SVGFEFuncBElement : false,
- SVGFEFuncGElement : false,
- SVGFEFuncRElement : false,
- SVGFEGaussianBlurElement: false,
- SVGFEImageElement : false,
- SVGFEMergeElement : false,
- SVGFEMergeNodeElement: false,
- SVGFEMorphologyElement: false,
- SVGFEOffsetElement : false,
- SVGFEPointLightElement: false,
- SVGFESpecularLightingElement: false,
- SVGFESpotLightElement: false,
- SVGFETileElement : false,
- SVGFETurbulenceElement: false,
- SVGFilterElement : false,
- SVGFilterPrimitiveStandardAttributes: false,
- SVGFitToViewBox : false,
- SVGFontElement : false,
- SVGFontFaceElement : false,
- SVGFontFaceFormatElement: false,
- SVGFontFaceNameElement: false,
- SVGFontFaceSrcElement: false,
- SVGFontFaceUriElement: false,
- SVGForeignObjectElement: false,
- SVGGElement : false,
- SVGGlyphElement : false,
- SVGGlyphRefElement : false,
- SVGGradientElement : false,
- SVGHKernElement : false,
- SVGICCColor : false,
- SVGImageElement : false,
- SVGLangSpace : false,
- SVGLength : false,
- SVGLengthList : false,
- SVGLineElement : false,
- SVGLinearGradientElement: false,
- SVGLocatable : false,
- SVGMPathElement : false,
- SVGMarkerElement : false,
- SVGMaskElement : false,
- SVGMatrix : false,
- SVGMetadataElement : false,
- SVGMissingGlyphElement: false,
- SVGNumber : false,
- SVGNumberList : false,
- SVGPaint : false,
- SVGPathElement : false,
- SVGPathSeg : false,
- SVGPathSegArcAbs : false,
- SVGPathSegArcRel : false,
- SVGPathSegClosePath : false,
- SVGPathSegCurvetoCubicAbs: false,
- SVGPathSegCurvetoCubicRel: false,
- SVGPathSegCurvetoCubicSmoothAbs: false,
- SVGPathSegCurvetoCubicSmoothRel: false,
- SVGPathSegCurvetoQuadraticAbs: false,
- SVGPathSegCurvetoQuadraticRel: false,
- SVGPathSegCurvetoQuadraticSmoothAbs: false,
- SVGPathSegCurvetoQuadraticSmoothRel: false,
- SVGPathSegLinetoAbs : false,
- SVGPathSegLinetoHorizontalAbs: false,
- SVGPathSegLinetoHorizontalRel: false,
- SVGPathSegLinetoRel : false,
- SVGPathSegLinetoVerticalAbs: false,
- SVGPathSegLinetoVerticalRel: false,
- SVGPathSegList : false,
- SVGPathSegMovetoAbs : false,
- SVGPathSegMovetoRel : false,
- SVGPatternElement : false,
- SVGPoint : false,
- SVGPointList : false,
- SVGPolygonElement : false,
- SVGPolylineElement : false,
- SVGPreserveAspectRatio: false,
- SVGRadialGradientElement: false,
- SVGRect : false,
- SVGRectElement : false,
- SVGRenderingIntent : false,
- SVGSVGElement : false,
- SVGScriptElement : false,
- SVGSetElement : false,
- SVGStopElement : false,
- SVGStringList : false,
- SVGStylable : false,
- SVGStyleElement : false,
- SVGSwitchElement : false,
- SVGSymbolElement : false,
- SVGTRefElement : false,
- SVGTSpanElement : false,
- SVGTests : false,
- SVGTextContentElement: false,
- SVGTextElement : false,
- SVGTextPathElement : false,
- SVGTextPositioningElement: false,
- SVGTitleElement : false,
- SVGTransform : false,
- SVGTransformList : false,
- SVGTransformable : false,
- SVGURIReference : false,
- SVGUnitTypes : false,
- SVGUseElement : false,
- SVGVKernElement : false,
- SVGViewElement : false,
- SVGViewSpec : false,
- SVGZoomAndPan : false,
- TimeEvent : false,
- top : false,
- Uint16Array : false,
- Uint32Array : false,
- Uint8Array : false,
- Uint8ClampedArray : false,
- WebSocket : false,
- window : false,
- Worker : false,
- XMLHttpRequest : false,
- XMLSerializer : false,
- XPathEvaluator : false,
- XPathException : false,
- XPathExpression : false,
- XPathNamespace : false,
- XPathNSResolver : false,
- XPathResult : false
-};
-
-exports.devel = {
- alert : false,
- confirm: false,
- console: false,
- Debug : false,
- opera : false,
- prompt : false
-};
-
-exports.worker = {
- importScripts: true,
- postMessage : true,
- self : true
-};
-exports.nonstandard = {
- escape : false,
- unescape: false
-};
-
-exports.couch = {
- "require" : false,
- respond : false,
- getRow : false,
- emit : false,
- send : false,
- start : false,
- sum : false,
- log : false,
- exports : false,
- module : false,
- provides : false
-};
-
-exports.node = {
- __filename : false,
- __dirname : false,
- Buffer : false,
- DataView : false,
- console : false,
- exports : true, // In Node it is ok to exports = module.exports = foo();
- GLOBAL : false,
- global : false,
- module : false,
- process : false,
- require : false,
- setTimeout : false,
- clearTimeout : false,
- setInterval : false,
- clearInterval : false,
- setImmediate : false, // v0.9.1+
- clearImmediate: false // v0.9.1+
-};
-
-exports.phantom = {
- phantom : true,
- require : true,
- WebPage : true
-};
-
-exports.rhino = {
- defineClass : false,
- deserialize : false,
- gc : false,
- help : false,
- importPackage: false,
- "java" : false,
- load : false,
- loadClass : false,
- print : false,
- quit : false,
- readFile : false,
- readUrl : false,
- runCommand : false,
- seal : false,
- serialize : false,
- spawn : false,
- sync : false,
- toint32 : false,
- version : false
-};
-
-exports.shelljs = {
- target : false,
- echo : false,
- exit : false,
- cd : false,
- pwd : false,
- ls : false,
- find : false,
- cp : false,
- rm : false,
- mv : false,
- mkdir : false,
- test : false,
- cat : false,
- sed : false,
- grep : false,
- which : false,
- dirs : false,
- pushd : false,
- popd : false,
- env : false,
- exec : false,
- chmod : false,
- config : false,
- error : false,
- tempdir : false
-};
-
-exports.wsh = {
- ActiveXObject : true,
- Enumerator : true,
- GetObject : true,
- ScriptEngine : true,
- ScriptEngineBuildVersion : true,
- ScriptEngineMajorVersion : true,
- ScriptEngineMinorVersion : true,
- VBArray : true,
- WSH : true,
- WScript : true,
- XDomainRequest : true
-};
-
-exports.dojo = {
- dojo : false,
- dijit : false,
- dojox : false,
- define : false,
- "require": false
-};
-
-exports.jquery = {
- "$" : false,
- jQuery : false
-};
-
-exports.mootools = {
- "$" : false,
- "$$" : false,
- Asset : false,
- Browser : false,
- Chain : false,
- Class : false,
- Color : false,
- Cookie : false,
- Core : false,
- Document : false,
- DomReady : false,
- DOMEvent : false,
- DOMReady : false,
- Drag : false,
- Element : false,
- Elements : false,
- Event : false,
- Events : false,
- Fx : false,
- Group : false,
- Hash : false,
- HtmlTable : false,
- Iframe : false,
- IframeShim : false,
- InputValidator: false,
- instanceOf : false,
- Keyboard : false,
- Locale : false,
- Mask : false,
- MooTools : false,
- Native : false,
- Options : false,
- OverText : false,
- Request : false,
- Scroller : false,
- Slick : false,
- Slider : false,
- Sortables : false,
- Spinner : false,
- Swiff : false,
- Tips : false,
- Type : false,
- typeOf : false,
- URI : false,
- Window : false
-};
-
-exports.prototypejs = {
- "$" : false,
- "$$" : false,
- "$A" : false,
- "$F" : false,
- "$H" : false,
- "$R" : false,
- "$break" : false,
- "$continue" : false,
- "$w" : false,
- Abstract : false,
- Ajax : false,
- Class : false,
- Enumerable : false,
- Element : false,
- Event : false,
- Field : false,
- Form : false,
- Hash : false,
- Insertion : false,
- ObjectRange : false,
- PeriodicalExecuter: false,
- Position : false,
- Prototype : false,
- Selector : false,
- Template : false,
- Toggle : false,
- Try : false,
- Autocompleter : false,
- Builder : false,
- Control : false,
- Draggable : false,
- Draggables : false,
- Droppables : false,
- Effect : false,
- Sortable : false,
- SortableObserver : false,
- Sound : false,
- Scriptaculous : false
-};
-
-exports.yui = {
- YUI : false,
- Y : false,
- YUI_config: false
-};
-
-
-})()
-},
-{}],
-4:[function(req,module,exports){
-
-"use string";
-exports.unsafeString =
- /@cc|<\/?|script|\]\s*\]|<\s*!|&lt/i;
-exports.unsafeChars =
- /[\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/;
-exports.needEsc =
- /[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/;
-
-exports.needEscGlobal =
- /[\u0000-\u001f&<"\/\\\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
-exports.starSlash = /\*\//;
-exports.identifier = /^([a-zA-Z_$][a-zA-Z0-9_$]*)$/;
-exports.javascriptURL = /^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i;
-exports.fallsThrough = /^\s*\/\*\s*falls?\sthrough\s*\*\/\s*$/;
-
-},
-{}],
-5:[function(req,module,exports){
-
-
-var state = {
- syntax: {},
-
- reset: function () {
- this.tokens = {
- prev: null,
- next: null,
- curr: null
- };
-
- this.option = {};
- this.ignored = {};
- this.directive = {};
- this.jsonMode = false;
- this.jsonWarnings = [];
- this.lines = [];
- this.tab = "";
- this.cache = {}; // Node.JS doesn't have Map. Sniff.
- }
-};
-
-exports.state = state;
-
-},
-{}],
-6:[function(req,module,exports){
-(function(){
-
-exports.register = function (linter) {
-
- linter.on("Identifier", function style_scanProto(data) {
- if (linter.getOption("proto")) {
- return;
- }
-
- if (data.name === "__proto__") {
- linter.warn("W103", {
- line: data.line,
- char: data.char,
- data: [ data.name ]
- });
- }
- });
-
- linter.on("Identifier", function style_scanIterator(data) {
- if (linter.getOption("iterator")) {
- return;
- }
-
- if (data.name === "__iterator__") {
- linter.warn("W104", {
- line: data.line,
- char: data.char,
- data: [ data.name ]
- });
- }
- });
-
- linter.on("Identifier", function style_scanDangling(data) {
- if (!linter.getOption("nomen")) {
- return;
- }
- if (data.name === "_") {
- return;
- }
- if (linter.getOption("node")) {
- if (/^(__dirname|__filename)$/.test(data.name) && !data.isProperty) {
- return;
- }
- }
-
- if (/^(_+.*|.*_+)$/.test(data.name)) {
- linter.warn("W105", {
- line: data.line,
- char: data.from,
- data: [ "dangling '_'", data.name ]
- });
- }
- });
-
- linter.on("Identifier", function style_scanCamelCase(data) {
- if (!linter.getOption("camelcase")) {
- return;
- }
-
- if (data.name.replace(/^_+/, "").indexOf("_") > -1 && !data.name.match(/^[A-Z0-9_]*$/)) {
- linter.warn("W106", {
- line: data.line,
- char: data.from,
- data: [ data.name ]
- });
- }
- });
-
- linter.on("String", function style_scanQuotes(data) {
- var quotmark = linter.getOption("quotmark");
- var code;
-
- if (!quotmark) {
- return;
- }
-
- if (quotmark === "single" && data.quote !== "'") {
- code = "W109";
- }
-
- if (quotmark === "double" && data.quote !== "\"") {
- code = "W108";
- }
-
- if (quotmark === true) {
- if (!linter.getCache("quotmark")) {
- linter.setCache("quotmark", data.quote);
- }
-
- if (linter.getCache("quotmark") !== data.quote) {
- code = "W110";
- }
- }
-
- if (code) {
- linter.warn(code, {
- line: data.line,
- char: data.char,
- });
- }
- });
-
- linter.on("Number", function style_scanNumbers(data) {
- if (data.value.charAt(0) === ".") {
- linter.warn("W008", {
- line: data.line,
- char: data.char,
- data: [ data.value ]
- });
- }
-
- if (data.value.substr(data.value.length - 1) === ".") {
- linter.warn("W047", {
- line: data.line,
- char: data.char,
- data: [ data.value ]
- });
- }
-
- if (/^00+/.test(data.value)) {
- linter.warn("W046", {
- line: data.line,
- char: data.char,
- data: [ data.value ]
- });
- }
- });
-
- linter.on("String", function style_scanJavaScriptURLs(data) {
- var re = /^(?:javascript|jscript|ecmascript|vbscript|mocha|livescript)\s*:/i;
-
- if (linter.getOption("scripturl")) {
- return;
- }
-
- if (re.test(data.value)) {
- linter.warn("W107", {
- line: data.line,
- char: data.char
- });
- }
- });
-};
-})()
-},
-{}],
-7:[function(req,module,exports){
-(function(global){/*global window, global*/
-var functions = [
- [log, "log"]
- , [info, "info"]
- , [warn, "warn"]
- , [error, "error"]
- , [time, "time"]
- , [timeEnd, "timeEnd"]
- , [trace, "trace"]
- , [dir, "dir"]
- , [assert, "assert"]
-]
-
-for (var i = 0; i < functions.length; i++) {
- var tuple = functions[i]
- var f = tuple[0]
- var name = tuple[1]
-
- if (!console[name]) {
- console[name] = f
- }
-}
-
-module.exports = console
-
-function log() {}
-
-function info() {}
-
-function warn() {}
-
-function error() {}
-
-function time(label) {}
-
-function timeEnd(label) {}
-
-function trace() {}
-
-function dir(object) {}
-
-function assert(expression) {}
-
-})(window)
-},
-{}],
-"jshint":[function(req,module,exports){
-module.exports=req('E/GbHF');
-},
-{}],"E/GbHF":[function(req,module,exports){
-(function(){/*!
- * JSHint, by JSHint Community.
- *
- * This file (and this file only) is licensed under the same slightly modified
- * MIT license that JSLint is. It stops evil-doers everywhere:
- *
- * Copyright (c) 2002 Douglas Crockford (www.JSLint.com)
- *
- * Permission is hereby granted, free of charge, to any person obtaining
- * a copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom
- * the Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * The Software shall be used for Good, not Evil.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- */
-
-var _ = req("underscore");
-var events = req("events");
-var vars = req("../shared/vars.js");
-var messages = req("../shared/messages.js");
-var Lexer = req("./lex.js").Lexer;
-var reg = req("./reg.js");
-var state = req("./state.js").state;
-var style = req("./style.js");
-var console = req("console-browserify");
-
-var JSHINT = (function () {
-
-
- var anonname, // The guessed name for anonymous functions.
- api, // Extension API
- bang = {
- "<" : true,
- "<=" : true,
- "==" : true,
- "===": true,
- "!==": true,
- "!=" : true,
- ">" : true,
- ">=" : true,
- "+" : true,
- "-" : true,
- "*" : true,
- "/" : true,
- "%" : true
- },
- boolOptions = {
- asi : true, // if automatic semicolon insertion should be tolerated
- bitwise : true, // if bitwise operators should not be allowed
- boss : true, // if advanced usage of assignments should be allowed
- browser : true, // if the standard browser globals should be predefined
- camelcase : true, // if identifiers should be required in camel case
- couch : true, // if CouchDB globals should be predefined
- curly : true, // if curly braces around all blocks should be required
- debug : true, // if debugger statements should be allowed
- devel : true, // if logging globals should be predefined (console, alert, etc.)
- dojo : true, // if Dojo Toolkit globals should be predefined
- eqeqeq : true, // if === should be required
- eqnull : true, // if == null comparisons should be tolerated
- es3 : true, // if ES3 syntax should be allowed
- es5 : true, // if ES5 syntax should be allowed (is now set per default)
- esnext : true, // if es.next specific syntax should be allowed
- moz : true, // if mozilla specific syntax should be allowed
- evil : true, // if eval should be allowed
- expr : true, // if ExpressionStatement should be allowed as Programs
- forin : true, // if for in statements must filter
- funcscope : true, // if only function scope should be used for scope tests
- gcl : true, // if JSHint should be compatible with Google Closure Linter
- globalstrict: true, // if global should be allowed (also enables 'strict')
- immed : true, // if immediate invocations must be wrapped in parens
- iterator : true, // if the `__iterator__` property should be allowed
- jquery : true, // if jQuery globals should be predefined
- lastsemic : true, // if semicolons may be ommitted for the trailing
- laxbreak : true, // if line breaks should not be checked
- laxcomma : true, // if line breaks should not be checked around commas
- loopfunc : true, // if functions should be allowed to be defined within
- mootools : true, // if MooTools globals should be predefined
- multistr : true, // allow multiline strings
- newcap : true, // if constructor names must be capitalized
- noarg : true, // if arguments.caller and arguments.callee should be
- node : true, // if the Node.js environment globals should be
- noempty : true, // if empty blocks should be disallowed
- nonew : true, // if using `new` for side-effects should be disallowed
- nonstandard : true, // if non-standard (but widely adopted) globals should
- nomen : true, // if names should be checked
- onevar : true, // if only one var statement per function should be
- passfail : true, // if the scan should stop on first error
- phantom : true, // if PhantomJS symbols should be allowed
- plusplus : true, // if increment/decrement should not be allowed
- proto : true, // if the `__proto__` property should be allowed
- prototypejs : true, // if Prototype and Scriptaculous globals should be
- rhino : true, // if the Rhino environment globals should be predefined
- shelljs : true, // if ShellJS globals should be predefined
- undef : true, // if variables should be declared before used
- scripturl : true, // if script-targeted URLs should be tolerated
- shadow : true, // if variable shadowing should be tolerated
- smarttabs : true, // if smarttabs should be tolerated
- strict : true, // require the pragma
- sub : true, // if all forms of subscript notation are tolerated
- supernew : true, // if `new function () { ... };` and `new Object;`
- trailing : true, // if trailing whitespace rules apply
- validthis : true, // if 'this' inside a non-constructor function is valid.
- withstmt : true, // if with statements should be allowed
- white : true, // if strict whitespace rules apply
- worker : true, // if Web Worker script symbols should be allowed
- wsh : true, // if the Windows Scripting Host environment globals
- yui : true, // YUI variables should be predefined
- onecase : true, // if one case switch statements should be allowed
- regexp : true, // if the . should not be allowed in regexp literals
- regexdash : true // if unescaped first/last dash (-) inside brackets
- },
- valOptions = {
- maxlen : false,
- indent : false,
- maxerr : false,
- predef : false,
- quotmark : false, //'single'|'double'|true
- scope : false,
- maxstatements: false, // {int} max statements per function
- maxdepth : false, // {int} max nested block depth per function
- maxparams : false, // {int} max params per function
- maxcomplexity: false, // {int} max cyclomatic complexity per function
- unused : true, // warn if variables are unused. Available options:
- latedef : false // warn if the variable is used before its definition
- },
- invertedOptions = {
- bitwise : true,
- forin : true,
- newcap : true,
- nomen : true,
- plusplus: true,
- regexp : true,
- undef : true,
- white : true,
- eqeqeq : true,
- onevar : true,
- strict : true
- },
- renamedOptions = {
- eqeq : "eqeqeq",
- vars : "onevar",
- windows: "wsh",
- sloppy : "strict"
- },
-
- declared, // Globals that were declared using /*global ... */ syntax.
- exported, // Variables that are used outside of the current file.
-
- functionicity = [
- "closure", "exception", "global", "label",
- "outer", "unused", "var"
- ],
-
- funct, // The current function
- functions, // All of the functions
-
- global, // The global scope
- implied, // Implied globals
- inblock,
- indent,
- lookahead,
- lex,
- member,
- membersOnly,
- noreach,
- predefined, // Global variables defined by option
-
- scope, // The current scope
- stack,
- unuseds,
- urls,
- warnings,
-
- extraModules = [],
- emitter = new events.EventEmitter();
-
- function checkOption(name, t) {
- name = name.trim();
-
- if (/^[+-]W\d{3}$/g.test(name)) {
- return true;
- }
-
- if (valOptions[name] === undefined && boolOptions[name] === undefined) {
- if (t.type !== "jslint") {
- error("E001", t, name);
- return false;
- }
- }
-
- return true;
- }
-
- function isString(obj) {
- return Object.prototype.toString.call(obj) === "[object String]";
- }
-
- function isIdentifier(tkn, value) {
- if (!tkn)
- return false;
-
- if (!tkn.identifier || tkn.value !== value)
- return false;
-
- return true;
- }
-
- function isReserved(token) {
- if (!token.reserved) {
- return false;
- }
-
- if (token.meta && token.meta.isFutureReservedWord) {
- if (state.option.inES5(true) && !token.meta.es5) {
- return false;
- }
- if (token.meta.strictOnly) {
- if (!state.option.strict && !state.directive["use strict"]) {
- return false;
- }
- }
-
- if (token.isProperty) {
- return false;
- }
- }
-
- return true;
- }
-
- function supplant(str, data) {
- return str.replace(/\{([^{}]*)\}/g, function (a, b) {
- var r = data[b];
- return typeof r === "string" || typeof r === "number" ? r : a;
- });
- }
-
- function combine(t, o) {
- var n;
- for (n in o) {
- if (_.has(o, n) && !_.has(JSHINT.blacklist, n)) {
- t[n] = o[n];
- }
- }
- }
-
- function updatePredefined() {
- Object.keys(JSHINT.blacklist).forEach(function (key) {
- delete predefined[key];
- });
- }
-
- function assume() {
- if (state.option.couch) {
- combine(predefined, vars.couch);
- }
-
- if (state.option.rhino) {
- combine(predefined, vars.rhino);
- }
-
- if (state.option.shelljs) {
- combine(predefined, vars.shelljs);
- }
-
- if (state.option.phantom) {
- combine(predefined, vars.phantom);
- }
-
- if (state.option.prototypejs) {
- combine(predefined, vars.prototypejs);
- }
-
- if (state.option.node) {
- combine(predefined, vars.node);
- }
-
- if (state.option.devel) {
- combine(predefined, vars.devel);
- }
-
- if (state.option.dojo) {
- combine(predefined, vars.dojo);
- }
-
- if (state.option.browser) {
- combine(predefined, vars.browser);
- }
-
- if (state.option.nonstandard) {
- combine(predefined, vars.nonstandard);
- }
-
- if (state.option.jquery) {
- combine(predefined, vars.jquery);
- }
-
- if (state.option.mootools) {
- combine(predefined, vars.mootools);
- }
-
- if (state.option.worker) {
- combine(predefined, vars.worker);
- }
-
- if (state.option.wsh) {
- combine(predefined, vars.wsh);
- }
-
- if (state.option.globalstrict && state.option.strict !== false) {
- state.option.strict = true;
- }
-
- if (state.option.yui) {
- combine(predefined, vars.yui);
- }
-
- state.option.inMoz = function (strict) {
- return state.option.moz;
- };
-
- state.option.inESNext = function (strict) {
- return state.option.moz || state.option.esnext;
- };
-
- state.option.inES5 = function (/* strict */) {
- return !state.option.es3;
- };
-
- state.option.inES3 = function (strict) {
- if (strict) {
- return !state.option.moz && !state.option.esnext && state.option.es3;
- }
- return state.option.es3;
- };
- }
- function quit(code, line, chr) {
- var percentage = Math.floor((line / state.lines.length) * 100);
- var message = messages.errors[code].desc;
-
- throw {
- name: "JSHintError",
- line: line,
- character: chr,
- message: message + " (" + percentage + "% scanned).",
- raw: message
- };
- }
-
- function isundef(scope, code, token, a) {
- return JSHINT.undefs.push([scope, code, token, a]);
- }
-
- function warning(code, t, a, b, c, d) {
- var ch, l, w, msg;
-
- if (/^W\d{3}$/.test(code)) {
- if (state.ignored[code])
- return;
-
- msg = messages.warnings[code];
- } else if (/E\d{3}/.test(code)) {
- msg = messages.errors[code];
- } else if (/I\d{3}/.test(code)) {
- msg = messages.info[code];
- }
-
- t = t || state.tokens.next;
- if (t.id === "(end)") { // `~
- t = state.tokens.curr;
- }
-
- l = t.line || 0;
- ch = t.from || 0;
-
- w = {
- id: "(error)",
- raw: msg.desc,
- code: msg.code,
- evidence: state.lines[l - 1] || "",
- line: l,
- character: ch,
- scope: JSHINT.scope,
- a: a,
- b: b,
- c: c,
- d: d
- };
-
- w.reason = supplant(msg.desc, w);
- JSHINT.errors.push(w);
-
- if (state.option.passfail) {
- quit("E042", l, ch);
- }
-
- warnings += 1;
- if (warnings >= state.option.maxerr) {
- quit("E043", l, ch);
- }
-
- return w;
- }
-
- function warningAt(m, l, ch, a, b, c, d) {
- return warning(m, {
- line: l,
- from: ch
- }, a, b, c, d);
- }
-
- function error(m, t, a, b, c, d) {
- warning(m, t, a, b, c, d);
- }
-
- function errorAt(m, l, ch, a, b, c, d) {
- return error(m, {
- line: l,
- from: ch
- }, a, b, c, d);
- }
- function addInternalSrc(elem, src) {
- var i;
- i = {
- id: "(internal)",
- elem: elem,
- value: src
- };
- JSHINT.internals.push(i);
- return i;
- }
-
- function addlabel(t, type, tkn, islet) {
- if (type === "exception") {
- if (_.has(funct["(context)"], t)) {
- if (funct[t] !== true && !state.option.node) {
- warning("W002", state.tokens.next, t);
- }
- }
- }
-
- if (_.has(funct, t) && !funct["(global)"]) {
- if (funct[t] === true) {
- if (state.option.latedef) {
- if ((state.option.latedef === true && _.contains([funct[t], type], "unction")) ||
- !_.contains([funct[t], type], "unction")) {
- warning("W003", state.tokens.next, t);
- }
- }
- } else {
- if (!state.option.shadow && type !== "exception" ||
- (funct["(blockscope)"].getlabel(t))) {
- warning("W004", state.tokens.next, t);
- }
- }
- }
- if (funct["(blockscope)"] && funct["(blockscope)"].current.has(t)) {
- error("E044", state.tokens.next, t);
- }
- if (islet) {
- funct["(blockscope)"].current.add(t, type, state.tokens.curr);
- } else {
-
- funct[t] = type;
-
- if (tkn) {
- funct["(tokens)"][t] = tkn;
- }
-
- if (funct["(global)"]) {
- global[t] = funct;
- if (_.has(implied, t)) {
- if (state.option.latedef) {
- if ((state.option.latedef === true && _.contains([funct[t], type], "unction")) ||
- !_.contains([funct[t], type], "unction")) {
- warning("W003", state.tokens.next, t);
- }
- }
-
- delete implied[t];
- }
- } else {
- scope[t] = funct;
- }
- }
- }
-
- function doOption() {
- var nt = state.tokens.next;
- var body = nt.body.split(",").map(function (s) { return s.trim(); });
- var predef = {};
-
- if (nt.type === "globals") {
- body.forEach(function (g) {
- g = g.split(":");
- var key = g[0];
- var val = g[1];
-
- if (key.charAt(0) === "-") {
- key = key.slice(1);
- val = false;
-
- JSHINT.blacklist[key] = key;
- updatePredefined();
- } else {
- predef[key] = (val === "true");
- }
- });
-
- combine(predefined, predef);
-
- for (var key in predef) {
- if (_.has(predef, key)) {
- declared[key] = nt;
- }
- }
- }
-
- if (nt.type === "exported") {
- body.forEach(function (e) {
- exported[e] = true;
- });
- }
-
- if (nt.type === "members") {
- membersOnly = membersOnly || {};
-
- body.forEach(function (m) {
- var ch1 = m.charAt(0);
- var ch2 = m.charAt(m.length - 1);
-
- if (ch1 === ch2 && (ch1 === "\"" || ch1 === "'")) {
- m = m
- .substr(1, m.length - 2)
- .replace("\\b", "\b")
- .replace("\\t", "\t")
- .replace("\\n", "\n")
- .replace("\\v", "\v")
- .replace("\\f", "\f")
- .replace("\\r", "\r")
- .replace("\\\\", "\\")
- .replace("\\\"", "\"");
- }
-
- membersOnly[m] = false;
- });
- }
-
- var numvals = [
- "maxstatements",
- "maxparams",
- "maxdepth",
- "maxcomplexity",
- "maxerr",
- "maxlen",
- "indent"
- ];
-
- if (nt.type === "jshint" || nt.type === "jslint") {
- body.forEach(function (g) {
- g = g.split(":");
- var key = (g[0] || "").trim();
- var val = (g[1] || "").trim();
-
- if (!checkOption(key, nt)) {
- return;
- }
-
- if (numvals.indexOf(key) >= 0) {
- if (val !== "false") {
- val = +val;
-
- if (typeof val !== "number" || !isFinite(val) || val <= 0 || Math.floor(val) !== val) {
- error("E032", nt, g[1].trim());
- return;
- }
-
- if (key === "indent") {
- state.option["(explicitIndent)"] = true;
- }
- state.option[key] = val;
- } else {
- if (key === "indent") {
- state.option["(explicitIndent)"] = false;
- } else {
- state.option[key] = false;
- }
- }
-
- return;
- }
-
- if (key === "validthis") {
- if (funct["(global)"]) {
- error("E009");
- } else {
- if (val === "true" || val === "false") {
- state.option.validthis = (val === "true");
- } else {
- error("E002", nt);
- }
- }
- return;
- }
-
- if (key === "quotmark") {
- switch (val) {
- case "true":
- case "false":
- state.option.quotmark = (val === "true");
- break;
- case "double":
- case "single":
- state.option.quotmark = val;
- break;
- default:
- error("E002", nt);
- }
- return;
- }
-
- if (key === "unused") {
- switch (val) {
- case "true":
- state.option.unused = true;
- break;
- case "false":
- state.option.unused = false;
- break;
- case "vars":
- case "strict":
- state.option.unused = val;
- break;
- default:
- error("E002", nt);
- }
- return;
- }
-
- if (key === "latedef") {
- switch (val) {
- case "true":
- state.option.latedef = true;
- break;
- case "false":
- state.option.latedef = false;
- break;
- case "nofunc":
- state.option.latedef = "nofunc";
- break;
- default:
- error("E002", nt);
- }
- return;
- }
-
- var match = /^([+-])(W\d{3})$/g.exec(key);
- if (match) {
- state.ignored[match[2]] = (match[1] === "-");
- return;
- }
-
- var tn;
- if (val === "true" || val === "false") {
- if (nt.type === "jslint") {
- tn = renamedOptions[key] || key;
- state.option[tn] = (val === "true");
-
- if (invertedOptions[tn] !== undefined) {
- state.option[tn] = !state.option[tn];
- }
- } else {
- state.option[key] = (val === "true");
- }
-
- if (key === "newcap") {
- state.option["(explicitNewcap)"] = true;
- }
- return;
- }
-
- error("E002", nt);
- });
-
- assume();
- }
- }
-
- function peek(p) {
- var i = p || 0, j = 0, t;
-
- while (j <= i) {
- t = lookahead[j];
- if (!t) {
- t = lookahead[j] = lex.token();
- }
- j += 1;
- }
- return t;
- }
-
- function advance(id, t) {
- switch (state.tokens.curr.id) {
- case "(number)":
- if (state.tokens.next.id === ".") {
- warning("W005", state.tokens.curr);
- }
- break;
- case "-":
- if (state.tokens.next.id === "-" || state.tokens.next.id === "--") {
- warning("W006");
- }
- break;
- case "+":
- if (state.tokens.next.id === "+" || state.tokens.next.id === "++") {
- warning("W007");
- }
- break;
- }
-
- if (state.tokens.curr.type === "(string)" || state.tokens.curr.identifier) {
- anonname = state.tokens.curr.value;
- }
-
- if (id && state.tokens.next.id !== id) {
- if (t) {
- if (state.tokens.next.id === "(end)") {
- error("E019", t, t.id);
- } else {
- error("E020", state.tokens.next, id, t.id, t.line, state.tokens.next.value);
- }
- } else if (state.tokens.next.type !== "(identifier)" || state.tokens.next.value !== id) {
- warning("W116", state.tokens.next, id, state.tokens.next.value);
- }
- }
-
- state.tokens.prev = state.tokens.curr;
- state.tokens.curr = state.tokens.next;
- for (;;) {
- state.tokens.next = lookahead.shift() || lex.token();
-
- if (!state.tokens.next) { // No more tokens left, give up
- quit("E041", state.tokens.curr.line);
- }
-
- if (state.tokens.next.id === "(end)" || state.tokens.next.id === "(error)") {
- return;
- }
-
- if (state.tokens.next.check) {
- state.tokens.next.check();
- }
-
- if (state.tokens.next.isSpecial) {
- doOption();
- } else {
- if (state.tokens.next.id !== "(endline)") {
- break;
- }
- }
- }
- }
-
- function expression(rbp, initial) {
- var left, isArray = false, isObject = false, isLetExpr = false;
- if (!initial && state.tokens.next.value === "let" && peek(0).value === "(") {
- if (!state.option.inMoz(true)) {
- warning("W118", state.tokens.next, "let expressions");
- }
- isLetExpr = true;
- funct["(blockscope)"].stack();
- advance("let");
- advance("(");
- state.syntax["let"].fud.call(state.syntax["let"].fud, false);
- advance(")");
- }
-
- if (state.tokens.next.id === "(end)")
- error("E006", state.tokens.curr);
-
- advance();
-
- if (initial) {
- anonname = "anonymous";
- funct["(verb)"] = state.tokens.curr.value;
- }
-
- if (initial === true && state.tokens.curr.fud) {
- left = state.tokens.curr.fud();
- } else {
- if (state.tokens.curr.nud) {
- left = state.tokens.curr.nud();
- } else {
- error("E030", state.tokens.curr, state.tokens.curr.id);
- }
-
- var end_of_expr = state.tokens.next.identifier &&
- !state.tokens.curr.led &&
- state.tokens.curr.line !== state.tokens.next.line;
- while (rbp < state.tokens.next.lbp && !end_of_expr) {
- isArray = state.tokens.curr.value === "Array";
- isObject = state.tokens.curr.value === "Object";
- if (left && (left.value || (left.first && left.first.value))) {
- if (left.value !== "new" ||
- (left.first && left.first.value && left.first.value === ".")) {
- isArray = false;
- if (left.value !== state.tokens.curr.value) {
- isObject = false;
- }
- }
- }
-
- advance();
-
- if (isArray && state.tokens.curr.id === "(" && state.tokens.next.id === ")") {
- warning("W009", state.tokens.curr);
- }
-
- if (isObject && state.tokens.curr.id === "(" && state.tokens.next.id === ")") {
- warning("W010", state.tokens.curr);
- }
-
- if (left && state.tokens.curr.led) {
- left = state.tokens.curr.led(left);
- } else {
- error("E033", state.tokens.curr, state.tokens.curr.id);
- }
- }
- }
- if (isLetExpr) {
- funct["(blockscope)"].unstack();
- }
- return left;
- }
-
- function adjacent(left, right) {
- left = left || state.tokens.curr;
- right = right || state.tokens.next;
- if (state.option.white) {
- if (left.character !== right.from && left.line === right.line) {
- left.from += (left.character - left.from);
- warning("W011", left, left.value);
- }
- }
- }
-
- function nobreak(left, right) {
- left = left || state.tokens.curr;
- right = right || state.tokens.next;
- if (state.option.white && (left.character !== right.from || left.line !== right.line)) {
- warning("W012", right, right.value);
- }
- }
-
- function nospace(left, right) {
- left = left || state.tokens.curr;
- right = right || state.tokens.next;
- if (state.option.white && !left.comment) {
- if (left.line === right.line) {
- adjacent(left, right);
- }
- }
- }
-
- function nonadjacent(left, right) {
- if (state.option.white) {
- left = left || state.tokens.curr;
- right = right || state.tokens.next;
-
- if (left.value === ";" && right.value === ";") {
- return;
- }
-
- if (left.line === right.line && left.character === right.from) {
- left.from += (left.character - left.from);
- warning("W013", left, left.value);
- }
- }
- }
-
- function nobreaknonadjacent(left, right) {
- left = left || state.tokens.curr;
- right = right || state.tokens.next;
- if (!state.option.laxbreak && left.line !== right.line) {
- warning("W014", right, right.id);
- } else if (state.option.white) {
- left = left || state.tokens.curr;
- right = right || state.tokens.next;
- if (left.character === right.from) {
- left.from += (left.character - left.from);
- warning("W013", left, left.value);
- }
- }
- }
-
- function indentation(bias) {
- if (!state.option.white && !state.option["(explicitIndent)"]) {
- return;
- }
-
- if (state.tokens.next.id === "(end)") {
- return;
- }
-
- var i = indent + (bias || 0);
- if (state.tokens.next.from !== i) {
- warning("W015", state.tokens.next, state.tokens.next.value, i, state.tokens.next.from);
- }
- }
-
- function nolinebreak(t) {
- t = t || state.tokens.curr;
- if (t.line !== state.tokens.next.line) {
- warning("E022", t, t.value);
- }
- }
-
-
- function comma(opts) {
- opts = opts || {};
-
- if (!opts.peek) {
- if (state.tokens.curr.line !== state.tokens.next.line) {
- if (!state.option.laxcomma) {
- if (comma.first) {
- warning("I001");
- comma.first = false;
- }
- warning("W014", state.tokens.curr, state.tokens.next.value);
- }
- } else if (!state.tokens.curr.comment &&
- state.tokens.curr.character !== state.tokens.next.from && state.option.white) {
- state.tokens.curr.from += (state.tokens.curr.character - state.tokens.curr.from);
- warning("W011", state.tokens.curr, state.tokens.curr.value);
- }
-
- advance(",");
- }
-
- if (state.tokens.next.value !== "]" && state.tokens.next.value !== "}") {
- nonadjacent(state.tokens.curr, state.tokens.next);
- }
-
- if (state.tokens.next.identifier && !(opts.property && state.option.inES5())) {
- switch (state.tokens.next.value) {
- case "break":
- case "case":
- case "catch":
- case "continue":
- case "default":
- case "do":
- case "else":
- case "finally":
- case "for":
- case "if":
- case "in":
- case "instanceof":
- case "return":
- case "yield":
- case "switch":
- case "throw":
- case "try":
- case "var":
- case "let":
- case "while":
- case "with":
- error("E024", state.tokens.next, state.tokens.next.value);
- return false;
- }
- }
-
- if (state.tokens.next.type === "(punctuator)") {
- switch (state.tokens.next.value) {
- case "}":
- case "]":
- case ",":
- if (opts.allowTrailing) {
- return true;
- }
- case ")":
- error("E024", state.tokens.next, state.tokens.next.value);
- return false;
- }
- }
- return true;
- }
-
- function symbol(s, p) {
- var x = state.syntax[s];
- if (!x || typeof x !== "object") {
- state.syntax[s] = x = {
- id: s,
- lbp: p,
- value: s
- };
- }
- return x;
- }
-
- function delim(s) {
- return symbol(s, 0);
- }
-
- function stmt(s, f) {
- var x = delim(s);
- x.identifier = x.reserved = true;
- x.fud = f;
- return x;
- }
-
- function blockstmt(s, f) {
- var x = stmt(s, f);
- x.block = true;
- return x;
- }
-
- function reserveName(x) {
- var c = x.id.charAt(0);
- if ((c >= "a" && c <= "z") || (c >= "A" && c <= "Z")) {
- x.identifier = x.reserved = true;
- }
- return x;
- }
-
- function prefix(s, f) {
- var x = symbol(s, 150);
- reserveName(x);
- x.nud = (typeof f === "function") ? f : function () {
- this.right = expression(150);
- this.arity = "unary";
- if (this.id === "++" || this.id === "--") {
- if (state.option.plusplus) {
- warning("W016", this, this.id);
- } else if ((!this.right.identifier || isReserved(this.right)) &&
- this.right.id !== "." && this.right.id !== "[") {
- warning("W017", this);
- }
- }
- return this;
- };
- return x;
- }
-
- function type(s, f) {
- var x = delim(s);
- x.type = s;
- x.nud = f;
- return x;
- }
-
- function reserve(name, func) {
- var x = type(name, func);
- x.identifier = true;
- x.reserved = true;
- return x;
- }
-
- function FutureReservedWord(name, meta) {
- var x = type(name, (meta && meta.nud) || function () {
- return this;
- });
-
- meta = meta || {};
- meta.isFutureReservedWord = true;
-
- x.value = name;
- x.identifier = true;
- x.reserved = true;
- x.meta = meta;
-
- return x;
- }
-
- function reservevar(s, v) {
- return reserve(s, function () {
- if (typeof v === "function") {
- v(this);
- }
- return this;
- });
- }
-
- function infix(s, f, p, w) {
- var x = symbol(s, p);
- reserveName(x);
- x.led = function (left) {
- if (!w) {
- nobreaknonadjacent(state.tokens.prev, state.tokens.curr);
- nonadjacent(state.tokens.curr, state.tokens.next);
- }
- if (s === "in" && left.id === "!") {
- warning("W018", left, "!");
- }
- if (typeof f === "function") {
- return f(left, this);
- } else {
- this.left = left;
- this.right = expression(p);
- return this;
- }
- };
- return x;
- }
-
-
- function application(s) {
- var x = symbol(s, 42);
-
- x.led = function (left) {
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.curr, "arrow function syntax (=>)");
- }
-
- nobreaknonadjacent(state.tokens.prev, state.tokens.curr);
- nonadjacent(state.tokens.curr, state.tokens.next);
-
- this.left = left;
- this.right = doFunction(undefined, undefined, false, left);
- return this;
- };
- return x;
- }
-
- function relation(s, f) {
- var x = symbol(s, 100);
-
- x.led = function (left) {
- nobreaknonadjacent(state.tokens.prev, state.tokens.curr);
- nonadjacent(state.tokens.curr, state.tokens.next);
- var right = expression(100);
-
- if (isIdentifier(left, "NaN") || isIdentifier(right, "NaN")) {
- warning("W019", this);
- } else if (f) {
- f.apply(this, [left, right]);
- }
-
- if (!left || !right) {
- quit("E041", state.tokens.curr.line);
- }
-
- if (left.id === "!") {
- warning("W018", left, "!");
- }
-
- if (right.id === "!") {
- warning("W018", right, "!");
- }
-
- this.left = left;
- this.right = right;
- return this;
- };
- return x;
- }
-
- function isPoorRelation(node) {
- return node &&
- ((node.type === "(number)" && +node.value === 0) ||
- (node.type === "(string)" && node.value === "") ||
- (node.type === "null" && !state.option.eqnull) ||
- node.type === "true" ||
- node.type === "false" ||
- node.type === "undefined");
- }
-
- function assignop(s) {
- symbol(s, 20).exps = true;
-
- return infix(s, function (left, that) {
- that.left = left;
-
- if (left) {
- if (predefined[left.value] === false &&
- scope[left.value]["(global)"] === true) {
- warning("W020", left);
- } else if (left["function"]) {
- warning("W021", left, left.value);
- }
-
- if (funct[left.value] === "const") {
- error("E013", left, left.value);
- }
-
- if (left.id === ".") {
- if (!left.left) {
- warning("E031", that);
- } else if (left.left.value === "arguments" && !state.directive["use strict"]) {
- warning("E031", that);
- }
-
- that.right = expression(19);
- return that;
- } else if (left.id === "[") {
- if (state.tokens.curr.left.first) {
- state.tokens.curr.left.first.forEach(function (t) {
- if (funct[t.value] === "const") {
- error("E013", t, t.value);
- }
- });
- } else if (!left.left) {
- warning("E031", that);
- } else if (left.left.value === "arguments" && !state.directive["use strict"]) {
- warning("E031", that);
- }
- that.right = expression(19);
- return that;
- } else if (left.identifier && !isReserved(left)) {
- if (funct[left.value] === "exception") {
- warning("W022", left);
- }
- that.right = expression(19);
- return that;
- }
-
- if (left === state.syntax["function"]) {
- warning("W023", state.tokens.curr);
- }
- }
-
- error("E031", that);
- }, 20);
- }
-
-
- function bitwise(s, f, p) {
- var x = symbol(s, p);
- reserveName(x);
- x.led = (typeof f === "function") ? f : function (left) {
- if (state.option.bitwise) {
- warning("W016", this, this.id);
- }
- this.left = left;
- this.right = expression(p);
- return this;
- };
- return x;
- }
-
-
- function bitwiseassignop(s) {
- symbol(s, 20).exps = true;
- return infix(s, function (left, that) {
- if (state.option.bitwise) {
- warning("W016", that, that.id);
- }
- nonadjacent(state.tokens.prev, state.tokens.curr);
- nonadjacent(state.tokens.curr, state.tokens.next);
- if (left) {
- if (left.id === "." || left.id === "[" ||
- (left.identifier && !isReserved(left))) {
- expression(19);
- return that;
- }
- if (left === state.syntax["function"]) {
- warning("W023", state.tokens.curr);
- }
- return that;
- }
- error("E031", that);
- }, 20);
- }
-
-
- function suffix(s) {
- var x = symbol(s, 150);
-
- x.led = function (left) {
- if (state.option.plusplus) {
- warning("W016", this, this.id);
- } else if ((!left.identifier || isReserved(left)) && left.id !== "." && left.id !== "[") {
- warning("W017", this);
- }
-
- this.left = left;
- return this;
- };
- return x;
- }
-
- function optionalidentifier(fnparam, prop) {
- if (!state.tokens.next.identifier) {
- return;
- }
-
- advance();
-
- var curr = state.tokens.curr;
- var meta = curr.meta || {};
- var val = state.tokens.curr.value;
-
- if (!isReserved(curr)) {
- return val;
- }
-
- if (prop) {
- if (state.option.inES5() || meta.isFutureReservedWord) {
- return val;
- }
- }
-
- if (fnparam && val === "undefined") {
- return val;
- }
- if (prop && !api.getCache("displayed:I002")) {
- api.setCache("displayed:I002", true);
- warning("I002");
- }
-
- warning("W024", state.tokens.curr, state.tokens.curr.id);
- return val;
- }
- function identifier(fnparam, prop) {
- var i = optionalidentifier(fnparam, prop);
- if (i) {
- return i;
- }
- if (state.tokens.curr.id === "function" && state.tokens.next.id === "(") {
- warning("W025");
- } else {
- error("E030", state.tokens.next, state.tokens.next.value);
- }
- }
-
-
- function reachable(s) {
- var i = 0, t;
- if (state.tokens.next.id !== ";" || noreach) {
- return;
- }
- for (;;) {
- t = peek(i);
- if (t.reach) {
- return;
- }
- if (t.id !== "(endline)") {
- if (t.id === "function") {
- if (!state.option.latedef) {
- break;
- }
-
- warning("W026", t);
- break;
- }
-
- warning("W027", t, t.value, s);
- break;
- }
- i += 1;
- }
- }
-
-
- function statement(noindent) {
- var values;
- var i = indent, r, s = scope, t = state.tokens.next;
-
- if (t.id === ";") {
- advance(";");
- return;
- }
- var res = isReserved(t);
-
- if (res && t.meta && t.meta.isFutureReservedWord && peek().id === ":") {
- warning("W024", t, t.id);
- res = false;
- }
- if (_.has(["[", "{"], t.value)) {
- if (lookupBlockType().isDestAssign) {
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.curr, "destructuring expression");
- }
- values = destructuringExpression();
- values.forEach(function (tok) {
- isundef(funct, "W117", tok.token, tok.id);
- });
- advance("=");
- destructuringExpressionMatch(values, expression(5, true));
- advance(";");
- return;
- }
- }
- if (t.identifier && !res && peek().id === ":") {
- advance();
- advance(":");
- scope = Object.create(s);
- addlabel(t.value, "label");
-
- if (!state.tokens.next.labelled && state.tokens.next.value !== "{") {
- warning("W028", state.tokens.next, t.value, state.tokens.next.value);
- }
-
- state.tokens.next.label = t.value;
- t = state.tokens.next;
- }
-
- if (t.id === "{") {
- block(true, true);
- return;
- }
-
- if (!noindent) {
- indentation();
- }
- r = expression(0, true);
-
- if (!t.block) {
- if (!state.option.expr && (!r || !r.exps)) {
- warning("W030", state.tokens.curr);
- } else if (state.option.nonew && r && r.left && r.id === "(" && r.left.id === "new") {
- warning("W031", t);
- }
-
- if (state.tokens.next.id !== ";") {
- if (!state.option.asi) {
- if (!state.option.lastsemic || state.tokens.next.id !== "}" ||
- state.tokens.next.line !== state.tokens.curr.line) {
- warningAt("W033", state.tokens.curr.line, state.tokens.curr.character);
- }
- }
- } else {
- adjacent(state.tokens.curr, state.tokens.next);
- advance(";");
- nonadjacent(state.tokens.curr, state.tokens.next);
- }
- }
-
- indent = i;
- scope = s;
- return r;
- }
-
-
- function statements(startLine) {
- var a = [], p;
-
- while (!state.tokens.next.reach && state.tokens.next.id !== "(end)") {
- if (state.tokens.next.id === ";") {
- p = peek();
-
- if (!p || (p.id !== "(" && p.id !== "[")) {
- warning("W032");
- }
-
- advance(";");
- } else {
- a.push(statement(startLine === state.tokens.next.line));
- }
- }
- return a;
- }
- function directives() {
- var i, p, pn;
-
- for (;;) {
- if (state.tokens.next.id === "(string)") {
- p = peek(0);
- if (p.id === "(endline)") {
- i = 1;
- do {
- pn = peek(i);
- i = i + 1;
- } while (pn.id === "(endline)");
-
- if (pn.id !== ";") {
- if (pn.id !== "(string)" && pn.id !== "(number)" &&
- pn.id !== "(regexp)" && pn.identifier !== true &&
- pn.id !== "}") {
- break;
- }
- warning("W033", state.tokens.next);
- } else {
- p = pn;
- }
- } else if (p.id === "}") {
- warning("W033", p);
- } else if (p.id !== ";") {
- break;
- }
-
- indentation();
- advance();
- if (state.directive[state.tokens.curr.value]) {
- warning("W034", state.tokens.curr, state.tokens.curr.value);
- }
-
- if (state.tokens.curr.value === "use strict") {
- if (!state.option["(explicitNewcap)"])
- state.option.newcap = true;
- state.option.undef = true;
- }
- state.directive[state.tokens.curr.value] = true;
-
- if (p.id === ";") {
- advance(";");
- }
- continue;
- }
- break;
- }
- }
- function block(ordinary, stmt, isfunc, isfatarrow) {
- var a,
- b = inblock,
- old_indent = indent,
- m,
- s = scope,
- t,
- line,
- d;
-
- inblock = ordinary;
-
- if (!ordinary || !state.option.funcscope)
- scope = Object.create(scope);
-
- nonadjacent(state.tokens.curr, state.tokens.next);
- t = state.tokens.next;
-
- var metrics = funct["(metrics)"];
- metrics.nestedBlockDepth += 1;
- metrics.verifyMaxNestedBlockDepthPerFunction();
-
- if (state.tokens.next.id === "{") {
- advance("{");
- funct["(blockscope)"].stack();
-
- line = state.tokens.curr.line;
- if (state.tokens.next.id !== "}") {
- indent += state.option.indent;
- while (!ordinary && state.tokens.next.from > indent) {
- indent += state.option.indent;
- }
-
- if (isfunc) {
- m = {};
- for (d in state.directive) {
- if (_.has(state.directive, d)) {
- m[d] = state.directive[d];
- }
- }
- directives();
-
- if (state.option.strict && funct["(context)"]["(global)"]) {
- if (!m["use strict"] && !state.directive["use strict"]) {
- warning("E007");
- }
- }
- }
-
- a = statements(line);
-
- metrics.statementCount += a.length;
-
- if (isfunc) {
- state.directive = m;
- }
-
- indent -= state.option.indent;
- if (line !== state.tokens.next.line) {
- indentation();
- }
- } else if (line !== state.tokens.next.line) {
- indentation();
- }
- advance("}", t);
-
- funct["(blockscope)"].unstack();
-
- indent = old_indent;
- } else if (!ordinary) {
- if (isfunc) {
- m = {};
- if (stmt && !isfatarrow && !state.option.inMoz(true)) {
- error("W118", state.tokens.curr, "function closure expressions");
- }
-
- if (!stmt) {
- for (d in state.directive) {
- if (_.has(state.directive, d)) {
- m[d] = state.directive[d];
- }
- }
- }
- expression(5);
-
- if (state.option.strict && funct["(context)"]["(global)"]) {
- if (!m["use strict"] && !state.directive["use strict"]) {
- warning("E007");
- }
- }
- } else {
- error("E021", state.tokens.next, "{", state.tokens.next.value);
- }
- } else {
- funct["(nolet)"] = true;
-
- if (!stmt || state.option.curly) {
- warning("W116", state.tokens.next, "{", state.tokens.next.value);
- }
-
- noreach = true;
- indent += state.option.indent;
- a = [statement(state.tokens.next.line === state.tokens.curr.line)];
- indent -= state.option.indent;
- noreach = false;
-
- delete funct["(nolet)"];
- }
- funct["(verb)"] = null;
- if (!ordinary || !state.option.funcscope) scope = s;
- inblock = b;
- if (ordinary && state.option.noempty && (!a || a.length === 0)) {
- warning("W035");
- }
- metrics.nestedBlockDepth -= 1;
- return a;
- }
-
-
- function countMember(m) {
- if (membersOnly && typeof membersOnly[m] !== "boolean") {
- warning("W036", state.tokens.curr, m);
- }
- if (typeof member[m] === "number") {
- member[m] += 1;
- } else {
- member[m] = 1;
- }
- }
-
-
- function note_implied(tkn) {
- var name = tkn.value, line = tkn.line, a = implied[name];
- if (typeof a === "function") {
- a = false;
- }
-
- if (!a) {
- a = [line];
- implied[name] = a;
- } else if (a[a.length - 1] !== line) {
- a.push(line);
- }
- }
-
- type("(number)", function () {
- return this;
- });
-
- type("(string)", function () {
- return this;
- });
-
- state.syntax["(identifier)"] = {
- type: "(identifier)",
- lbp: 0,
- identifier: true,
- nud: function () {
- var v = this.value,
- s = scope[v],
- f;
-
- if (typeof s === "function") {
- s = undefined;
- } else if (typeof s === "boolean") {
- f = funct;
- funct = functions[0];
- addlabel(v, "var");
- s = funct;
- funct = f;
- }
- var block;
- if (_.has(funct, "(blockscope)")) {
- block = funct["(blockscope)"].getlabel(v);
- }
- if (funct === s || block) {
- switch (block ? block[v]["(type)"] : funct[v]) {
- case "unused":
- if (block) block[v]["(type)"] = "var";
- else funct[v] = "var";
- break;
- case "unction":
- if (block) block[v]["(type)"] = "function";
- else funct[v] = "function";
- this["function"] = true;
- break;
- case "function":
- this["function"] = true;
- break;
- case "label":
- warning("W037", state.tokens.curr, v);
- break;
- }
- } else if (funct["(global)"]) {
-
- if (typeof predefined[v] !== "boolean") {
- if (!(anonname === "typeof" || anonname === "delete") ||
- (state.tokens.next && (state.tokens.next.value === "." ||
- state.tokens.next.value === "["))) {
-
- if (!funct["(comparray)"].check(v)) {
- isundef(funct, "W117", state.tokens.curr, v);
- }
- }
- }
-
- note_implied(state.tokens.curr);
- } else {
-
- switch (funct[v]) {
- case "closure":
- case "function":
- case "var":
- case "unused":
- warning("W038", state.tokens.curr, v);
- break;
- case "label":
- warning("W037", state.tokens.curr, v);
- break;
- case "outer":
- case "global":
- break;
- default:
- if (s === true) {
- funct[v] = true;
- } else if (s === null) {
- warning("W039", state.tokens.curr, v);
- note_implied(state.tokens.curr);
- } else if (typeof s !== "object") {
- if (!(anonname === "typeof" || anonname === "delete") ||
- (state.tokens.next &&
- (state.tokens.next.value === "." || state.tokens.next.value === "["))) {
-
- isundef(funct, "W117", state.tokens.curr, v);
- }
- funct[v] = true;
- note_implied(state.tokens.curr);
- } else {
- switch (s[v]) {
- case "function":
- case "unction":
- this["function"] = true;
- s[v] = "closure";
- funct[v] = s["(global)"] ? "global" : "outer";
- break;
- case "var":
- case "unused":
- s[v] = "closure";
- funct[v] = s["(global)"] ? "global" : "outer";
- break;
- case "closure":
- funct[v] = s["(global)"] ? "global" : "outer";
- break;
- case "label":
- warning("W037", state.tokens.curr, v);
- }
- }
- }
- }
- return this;
- },
- led: function () {
- error("E033", state.tokens.next, state.tokens.next.value);
- }
- };
-
- type("(regexp)", function () {
- return this;
- });
-
- delim("(endline)");
- delim("(begin)");
- delim("(end)").reach = true;
- delim("(error)").reach = true;
- delim("}").reach = true;
- delim(")");
- delim("]");
- delim("\"").reach = true;
- delim("'").reach = true;
- delim(";");
- delim(":").reach = true;
- delim("#");
-
- reserve("else");
- reserve("case").reach = true;
- reserve("catch");
- reserve("default").reach = true;
- reserve("finally");
- reservevar("arguments", function (x) {
- if (state.directive["use strict"] && funct["(global)"]) {
- warning("E008", x);
- }
- });
- reservevar("eval");
- reservevar("false");
- reservevar("Infinity");
- reservevar("null");
- reservevar("this", function (x) {
- if (state.directive["use strict"] && !state.option.validthis && ((funct["(statement)"] &&
- funct["(name)"].charAt(0) > "Z") || funct["(global)"])) {
- warning("W040", x);
- }
- });
- reservevar("true");
- reservevar("undefined");
-
- assignop("=", "assign", 20);
- assignop("+=", "assignadd", 20);
- assignop("-=", "assignsub", 20);
- assignop("*=", "assignmult", 20);
- assignop("/=", "assigndiv", 20).nud = function () {
- error("E014");
- };
- assignop("%=", "assignmod", 20);
-
- bitwiseassignop("&=", "assignbitand", 20);
- bitwiseassignop("|=", "assignbitor", 20);
- bitwiseassignop("^=", "assignbitxor", 20);
- bitwiseassignop("<<=", "assignshiftleft", 20);
- bitwiseassignop(">>=", "assignshiftright", 20);
- bitwiseassignop(">>>=", "assignshiftrightunsigned", 20);
- infix(",", function (left, that) {
- var expr;
- that.exprs = [left];
- if (!comma({peek: true})) {
- return that;
- }
- while (true) {
- if (!(expr = expression(5))) {
- break;
- }
- that.exprs.push(expr);
- if (state.tokens.next.value !== "," || !comma()) {
- break;
- }
- }
- return that;
- }, 5, true);
- infix("?", function (left, that) {
- that.left = left;
- that.right = expression(10);
- advance(":");
- that["else"] = expression(10);
- return that;
- }, 30);
-
- infix("||", "or", 40);
- infix("&&", "and", 50);
- bitwise("|", "bitor", 70);
- bitwise("^", "bitxor", 80);
- bitwise("&", "bitand", 90);
- relation("==", function (left, right) {
- var eqnull = state.option.eqnull && (left.value === "null" || right.value === "null");
-
- if (!eqnull && state.option.eqeqeq)
- warning("W116", this, "===", "==");
- else if (isPoorRelation(left))
- warning("W041", this, "===", left.value);
- else if (isPoorRelation(right))
- warning("W041", this, "===", right.value);
-
- return this;
- });
- relation("===");
- relation("!=", function (left, right) {
- var eqnull = state.option.eqnull &&
- (left.value === "null" || right.value === "null");
-
- if (!eqnull && state.option.eqeqeq) {
- warning("W116", this, "!==", "!=");
- } else if (isPoorRelation(left)) {
- warning("W041", this, "!==", left.value);
- } else if (isPoorRelation(right)) {
- warning("W041", this, "!==", right.value);
- }
- return this;
- });
- relation("!==");
- relation("<");
- relation(">");
- relation("<=");
- relation(">=");
- bitwise("<<", "shiftleft", 120);
- bitwise(">>", "shiftright", 120);
- bitwise(">>>", "shiftrightunsigned", 120);
- infix("in", "in", 120);
- infix("instanceof", "instanceof", 120);
- infix("+", function (left, that) {
- var right = expression(130);
- if (left && right && left.id === "(string)" && right.id === "(string)") {
- left.value += right.value;
- left.character = right.character;
- if (!state.option.scripturl && reg.javascriptURL.test(left.value)) {
- warning("W050", left);
- }
- return left;
- }
- that.left = left;
- that.right = right;
- return that;
- }, 130);
- prefix("+", "num");
- prefix("+++", function () {
- warning("W007");
- this.right = expression(150);
- this.arity = "unary";
- return this;
- });
- infix("+++", function (left) {
- warning("W007");
- this.left = left;
- this.right = expression(130);
- return this;
- }, 130);
- infix("-", "sub", 130);
- prefix("-", "neg");
- prefix("---", function () {
- warning("W006");
- this.right = expression(150);
- this.arity = "unary";
- return this;
- });
- infix("---", function (left) {
- warning("W006");
- this.left = left;
- this.right = expression(130);
- return this;
- }, 130);
- infix("*", "mult", 140);
- infix("/", "div", 140);
- infix("%", "mod", 140);
-
- suffix("++", "postinc");
- prefix("++", "preinc");
- state.syntax["++"].exps = true;
-
- suffix("--", "postdec");
- prefix("--", "predec");
- state.syntax["--"].exps = true;
- prefix("delete", function () {
- var p = expression(5);
- if (!p || (p.id !== "." && p.id !== "[")) {
- warning("W051");
- }
- this.first = p;
- return this;
- }).exps = true;
-
- prefix("~", function () {
- if (state.option.bitwise) {
- warning("W052", this, "~");
- }
- expression(150);
- return this;
- });
-
- prefix("...", function () {
- if (!state.option.inESNext()) {
- warning("W104", this, "spread/rest operator");
- }
- if (!state.tokens.next.identifier) {
- error("E030", state.tokens.next, state.tokens.next.value);
- }
- expression(150);
- return this;
- });
-
- prefix("!", function () {
- this.right = expression(150);
- this.arity = "unary";
-
- if (!this.right) { // '!' followed by nothing? Give up.
- quit("E041", this.line || 0);
- }
-
- if (bang[this.right.id] === true) {
- warning("W018", this, "!");
- }
- return this;
- });
-
- prefix("typeof", "typeof");
- prefix("new", function () {
- var c = expression(155), i;
- if (c && c.id !== "function") {
- if (c.identifier) {
- c["new"] = true;
- switch (c.value) {
- case "Number":
- case "String":
- case "Boolean":
- case "Math":
- case "JSON":
- warning("W053", state.tokens.prev, c.value);
- break;
- case "Function":
- if (!state.option.evil) {
- warning("W054");
- }
- break;
- case "Date":
- case "RegExp":
- break;
- default:
- if (c.id !== "function") {
- i = c.value.substr(0, 1);
- if (state.option.newcap && (i < "A" || i > "Z") && !_.has(global, c.value)) {
- warning("W055", state.tokens.curr);
- }
- }
- }
- } else {
- if (c.id !== "." && c.id !== "[" && c.id !== "(") {
- warning("W056", state.tokens.curr);
- }
- }
- } else {
- if (!state.option.supernew)
- warning("W057", this);
- }
- adjacent(state.tokens.curr, state.tokens.next);
- if (state.tokens.next.id !== "(" && !state.option.supernew) {
- warning("W058", state.tokens.curr, state.tokens.curr.value);
- }
- this.first = c;
- return this;
- });
- state.syntax["new"].exps = true;
-
- prefix("void").exps = true;
-
- infix(".", function (left, that) {
- adjacent(state.tokens.prev, state.tokens.curr);
- nobreak();
- var m = identifier(false, true);
-
- if (typeof m === "string") {
- countMember(m);
- }
-
- that.left = left;
- that.right = m;
-
- if (m && m === "hasOwnProperty" && state.tokens.next.value === "=") {
- warning("W001");
- }
-
- if (left && left.value === "arguments" && (m === "callee" || m === "caller")) {
- if (state.option.noarg)
- warning("W059", left, m);
- else if (state.directive["use strict"])
- error("E008");
- } else if (!state.option.evil && left && left.value === "document" &&
- (m === "write" || m === "writeln")) {
- warning("W060", left);
- }
-
- if (!state.option.evil && (m === "eval" || m === "execScript")) {
- warning("W061");
- }
-
- return that;
- }, 160, true);
-
- infix("(", function (left, that) {
- if (state.tokens.prev.id !== "}" && state.tokens.prev.id !== ")") {
- nobreak(state.tokens.prev, state.tokens.curr);
- }
-
- nospace();
- if (state.option.immed && left && !left.immed && left.id === "function") {
- warning("W062");
- }
-
- var n = 0;
- var p = [];
-
- if (left) {
- if (left.type === "(identifier)") {
- if (left.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)) {
- if ("Number String Boolean Date Object".indexOf(left.value) === -1) {
- if (left.value === "Math") {
- warning("W063", left);
- } else if (state.option.newcap) {
- warning("W064", left);
- }
- }
- }
- }
- }
-
- if (state.tokens.next.id !== ")") {
- for (;;) {
- p[p.length] = expression(10);
- n += 1;
- if (state.tokens.next.id !== ",") {
- break;
- }
- comma();
- }
- }
-
- advance(")");
- nospace(state.tokens.prev, state.tokens.curr);
-
- if (typeof left === "object") {
- if (left.value === "parseInt" && n === 1) {
- warning("W065", state.tokens.curr);
- }
- if (!state.option.evil) {
- if (left.value === "eval" || left.value === "Function" ||
- left.value === "execScript") {
- warning("W061", left);
-
- if (p[0] && [0].id === "(string)") {
- addInternalSrc(left, p[0].value);
- }
- } else if (p[0] && p[0].id === "(string)" &&
- (left.value === "setTimeout" ||
- left.value === "setInterval")) {
- warning("W066", left);
- addInternalSrc(left, p[0].value);
- } else if (p[0] && p[0].id === "(string)" &&
- left.value === "." &&
- left.left.value === "window" &&
- (left.right === "setTimeout" ||
- left.right === "setInterval")) {
- warning("W066", left);
- addInternalSrc(left, p[0].value);
- }
- }
- if (!left.identifier && left.id !== "." && left.id !== "[" &&
- left.id !== "(" && left.id !== "&&" && left.id !== "||" &&
- left.id !== "?") {
- warning("W067", left);
- }
- }
-
- that.left = left;
- return that;
- }, 155, true).exps = true;
-
- prefix("(", function () {
- nospace();
- var bracket, brackets = [];
- var pn, pn1, i = 0;
- var ret;
-
- do {
- pn = peek(i);
- i += 1;
- pn1 = peek(i);
- i += 1;
- } while (pn.value !== ")" && pn1.value !== "=>" && pn1.value !== ";" && pn1.type !== "(end)");
-
- if (state.tokens.next.id === "function") {
- state.tokens.next.immed = true;
- }
-
- var exprs = [];
-
- if (state.tokens.next.id !== ")") {
- for (;;) {
- if (pn1.value === "=>" && state.tokens.next.value === "{") {
- bracket = state.tokens.next;
- bracket.left = destructuringExpression();
- brackets.push(bracket);
- for (var t in bracket.left) {
- exprs.push(bracket.left[t].token);
- }
- } else {
- exprs.push(expression(5));
- }
- if (state.tokens.next.id !== ",") {
- break;
- }
- comma();
- }
- }
-
- advance(")", this);
- nospace(state.tokens.prev, state.tokens.curr);
- if (state.option.immed && exprs[0] && exprs[0].id === "function") {
- if (state.tokens.next.id !== "(" &&
- (state.tokens.next.id !== "." || (peek().value !== "call" && peek().value !== "apply"))) {
- warning("W068", this);
- }
- }
-
- if (state.tokens.next.value === "=>") {
- return exprs;
- }
- if (!exprs.length) {
- return;
- }
- if (exprs.length > 1) {
- ret = Object.create(state.syntax[","]);
- ret.exprs = exprs;
- } else {
- ret = exprs[0];
- }
- if (ret) {
- ret.paren = true;
- }
- return ret;
- });
-
- application("=>");
-
- infix("[", function (left, that) {
- nobreak(state.tokens.prev, state.tokens.curr);
- nospace();
- var e = expression(5), s;
- if (e && e.type === "(string)") {
- if (!state.option.evil && (e.value === "eval" || e.value === "execScript")) {
- warning("W061", that);
- }
-
- countMember(e.value);
- if (!state.option.sub && reg.identifier.test(e.value)) {
- s = state.syntax[e.value];
- if (!s || !isReserved(s)) {
- warning("W069", state.tokens.prev, e.value);
- }
- }
- }
- advance("]", that);
-
- if (e && e.value === "hasOwnProperty" && state.tokens.next.value === "=") {
- warning("W001");
- }
-
- nospace(state.tokens.prev, state.tokens.curr);
- that.left = left;
- that.right = e;
- return that;
- }, 160, true);
-
- function comprehensiveArrayExpression() {
- var res = {};
- res.exps = true;
- funct["(comparray)"].stack();
-
- res.right = expression(5);
- advance("for");
- if (state.tokens.next.value === "each") {
- advance("each");
- if (!state.option.inMoz(true)) {
- warning("W118", state.tokens.curr, "for each");
- }
- }
- advance("(");
- funct["(comparray)"].setState("define");
- res.left = expression(5);
- advance(")");
- if (state.tokens.next.value === "if") {
- advance("if");
- advance("(");
- funct["(comparray)"].setState("filter");
- res.filter = expression(5);
- advance(")");
- }
- advance("]");
- funct["(comparray)"].unstack();
- return res;
- }
-
- prefix("[", function () {
- var blocktype = lookupBlockType(true);
- if (blocktype.isCompArray) {
- if (!state.option.inMoz(true)) {
- warning("W118", state.tokens.curr, "array comprehension");
- }
- return comprehensiveArrayExpression();
- } else if (blocktype.isDestAssign && !state.option.inESNext()) {
- warning("W104", state.tokens.curr, "destructuring assignment");
- }
- var b = state.tokens.curr.line !== state.tokens.next.line;
- this.first = [];
- if (b) {
- indent += state.option.indent;
- if (state.tokens.next.from === indent + state.option.indent) {
- indent += state.option.indent;
- }
- }
- while (state.tokens.next.id !== "(end)") {
- while (state.tokens.next.id === ",") {
- if (!state.option.inES5())
- warning("W070");
- advance(",");
- }
- if (state.tokens.next.id === "]") {
- break;
- }
- if (b && state.tokens.curr.line !== state.tokens.next.line) {
- indentation();
- }
- this.first.push(expression(10));
- if (state.tokens.next.id === ",") {
- comma({ allowTrailing: true });
- if (state.tokens.next.id === "]" && !state.option.inES5(true)) {
- warning("W070", state.tokens.curr);
- break;
- }
- } else {
- break;
- }
- }
- if (b) {
- indent -= state.option.indent;
- indentation();
- }
- advance("]", this);
- return this;
- }, 160);
-
-
- function property_name() {
- var id = optionalidentifier(false, true);
-
- if (!id) {
- if (state.tokens.next.id === "(string)") {
- id = state.tokens.next.value;
- advance();
- } else if (state.tokens.next.id === "(number)") {
- id = state.tokens.next.value.toString();
- advance();
- }
- }
-
- if (id === "hasOwnProperty") {
- warning("W001");
- }
-
- return id;
- }
-
-
- function functionparams(parsed) {
- var curr, next;
- var params = [];
- var ident;
- var tokens = [];
- var t;
-
- if (parsed) {
- if (parsed instanceof Array) {
- for (var i in parsed) {
- curr = parsed[i];
- if (_.contains(["{", "["], curr.id)) {
- for (t in curr.left) {
- t = tokens[t];
- if (t.id) {
- params.push(t.id);
- addlabel(t.id, "unused", t.token);
- }
- }
- } else if (curr.value === "...") {
- if (!state.option.inESNext()) {
- warning("W104", curr, "spread/rest operator");
- }
- continue;
- } else {
- addlabel(curr.value, "unused", curr);
- }
- }
- return params;
- } else {
- if (parsed.identifier === true) {
- addlabel(parsed.value, "unused", parsed);
- return [parsed];
- }
- }
- }
-
- next = state.tokens.next;
-
- advance("(");
- nospace();
-
- if (state.tokens.next.id === ")") {
- advance(")");
- return;
- }
-
- for (;;) {
- if (_.contains(["{", "["], state.tokens.next.id)) {
- tokens = destructuringExpression();
- for (t in tokens) {
- t = tokens[t];
- if (t.id) {
- params.push(t.id);
- addlabel(t.id, "unused", t.token);
- }
- }
- } else if (state.tokens.next.value === "...") {
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.next, "spread/rest operator");
- }
- advance("...");
- nospace();
- ident = identifier(true);
- params.push(ident);
- addlabel(ident, "unused", state.tokens.curr);
- } else {
- ident = identifier(true);
- params.push(ident);
- addlabel(ident, "unused", state.tokens.curr);
- }
- if (state.tokens.next.id === ",") {
- comma();
- } else {
- advance(")", next);
- nospace(state.tokens.prev, state.tokens.curr);
- return params;
- }
- }
- }
-
-
- function doFunction(name, statement, generator, fatarrowparams) {
- var f;
- var oldOption = state.option;
- var oldIgnored = state.ignored;
- var oldScope = scope;
-
- state.option = Object.create(state.option);
- state.ignored = Object.create(state.ignored);
- scope = Object.create(scope);
-
- funct = {
- "(name)" : name || "\"" + anonname + "\"",
- "(line)" : state.tokens.next.line,
- "(character)" : state.tokens.next.character,
- "(context)" : funct,
- "(breakage)" : 0,
- "(loopage)" : 0,
- "(metrics)" : createMetrics(state.tokens.next),
- "(scope)" : scope,
- "(statement)" : statement,
- "(tokens)" : {},
- "(blockscope)": funct["(blockscope)"],
- "(comparray)" : funct["(comparray)"]
- };
-
- if (generator) {
- funct["(generator)"] = true;
- }
-
- f = funct;
- state.tokens.curr.funct = funct;
-
- functions.push(funct);
-
- if (name) {
- addlabel(name, "function");
- }
-
- funct["(params)"] = functionparams(fatarrowparams);
-
- funct["(metrics)"].verifyMaxParametersPerFunction(funct["(params)"]);
-
- block(false, true, true, fatarrowparams ? true:false);
-
- if (generator && funct["(generator)"] !== "yielded") {
- error("E047", state.tokens.curr);
- }
-
- funct["(metrics)"].verifyMaxStatementsPerFunction();
- funct["(metrics)"].verifyMaxComplexityPerFunction();
- funct["(unusedOption)"] = state.option.unused;
-
- scope = oldScope;
- state.option = oldOption;
- state.ignored = oldIgnored;
- funct["(last)"] = state.tokens.curr.line;
- funct["(lastcharacter)"] = state.tokens.curr.character;
- funct = funct["(context)"];
-
- return f;
- }
-
- function createMetrics(functionStartToken) {
- return {
- statementCount: 0,
- nestedBlockDepth: -1,
- ComplexityCount: 1,
- verifyMaxStatementsPerFunction: function () {
- if (state.option.maxstatements &&
- this.statementCount > state.option.maxstatements) {
- warning("W071", functionStartToken, this.statementCount);
- }
- },
-
- verifyMaxParametersPerFunction: function (params) {
- params = params || [];
-
- if (state.option.maxparams && params.length > state.option.maxparams) {
- warning("W072", functionStartToken, params.length);
- }
- },
-
- verifyMaxNestedBlockDepthPerFunction: function () {
- if (state.option.maxdepth &&
- this.nestedBlockDepth > 0 &&
- this.nestedBlockDepth === state.option.maxdepth + 1) {
- warning("W073", null, this.nestedBlockDepth);
- }
- },
-
- verifyMaxComplexityPerFunction: function () {
- var max = state.option.maxcomplexity;
- var cc = this.ComplexityCount;
- if (max && cc > max) {
- warning("W074", functionStartToken, cc);
- }
- }
- };
- }
-
- function increaseComplexityCount() {
- funct["(metrics)"].ComplexityCount += 1;
- }
-
- function checkCondAssignment(expr) {
- var id, paren;
- if (expr) {
- id = expr.id;
- paren = expr.paren;
- if (id === "," && (expr = expr.exprs[expr.exprs.length - 1])) {
- id = expr.id;
- paren = paren || expr.paren;
- }
- }
- switch (id) {
- case "=":
- case "+=":
- case "-=":
- case "*=":
- case "%=":
- case "&=":
- case "|=":
- case "^=":
- case "/=":
- if (!paren && !state.option.boss) {
- warning("W084");
- }
- }
- }
-
-
- (function (x) {
- x.nud = function (isclassdef) {
- var b, f, i, p, t, g;
- var props = {}; // All properties, including accessors
- var tag = "";
-
- function saveProperty(name, tkn) {
- if (props[name] && _.has(props, name))
- warning("W075", state.tokens.next, i);
- else
- props[name] = {};
-
- props[name].basic = true;
- props[name].basictkn = tkn;
- }
-
- function saveSetter(name, tkn) {
- if (props[name] && _.has(props, name)) {
- if (props[name].basic || props[name].setter)
- warning("W075", state.tokens.next, i);
- } else {
- props[name] = {};
- }
-
- props[name].setter = true;
- props[name].setterToken = tkn;
- }
-
- function saveGetter(name) {
- if (props[name] && _.has(props, name)) {
- if (props[name].basic || props[name].getter)
- warning("W075", state.tokens.next, i);
- } else {
- props[name] = {};
- }
-
- props[name].getter = true;
- props[name].getterToken = state.tokens.curr;
- }
-
- b = state.tokens.curr.line !== state.tokens.next.line;
- if (b) {
- indent += state.option.indent;
- if (state.tokens.next.from === indent + state.option.indent) {
- indent += state.option.indent;
- }
- }
-
- for (;;) {
- if (state.tokens.next.id === "}") {
- break;
- }
-
- if (b) {
- indentation();
- }
-
- if (isclassdef && state.tokens.next.value === "static") {
- advance("static");
- tag = "static ";
- }
-
- if (state.tokens.next.value === "get" && peek().id !== ":") {
- advance("get");
-
- if (!state.option.inES5(!isclassdef)) {
- error("E034");
- }
-
- i = property_name();
- if (!i) {
- error("E035");
- }
- if (isclassdef && i === "constructor") {
- error("E049", state.tokens.next, "class getter method", i);
- }
-
- saveGetter(tag + i);
- t = state.tokens.next;
- adjacent(state.tokens.curr, state.tokens.next);
- f = doFunction();
- p = f["(params)"];
-
- if (p) {
- warning("W076", t, p[0], i);
- }
-
- adjacent(state.tokens.curr, state.tokens.next);
- } else if (state.tokens.next.value === "set" && peek().id !== ":") {
- advance("set");
-
- if (!state.option.inES5(!isclassdef)) {
- error("E034");
- }
-
- i = property_name();
- if (!i) {
- error("E035");
- }
- if (isclassdef && i === "constructor") {
- error("E049", state.tokens.next, "class setter method", i);
- }
-
- saveSetter(tag + i, state.tokens.next);
- t = state.tokens.next;
- adjacent(state.tokens.curr, state.tokens.next);
- f = doFunction();
- p = f["(params)"];
-
- if (!p || p.length !== 1) {
- warning("W077", t, i);
- }
- } else {
- g = false;
- if (state.tokens.next.value === "*" && state.tokens.next.type === "(punctuator)") {
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.next, "generator functions");
- }
- advance("*");
- g = true;
- }
- i = property_name();
- saveProperty(tag + i, state.tokens.next);
-
- if (typeof i !== "string") {
- break;
- }
-
- if (state.tokens.next.value === "(") {
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.curr, "concise methods");
- }
- doFunction(i, undefined, g);
- } else if (!isclassdef) {
- advance(":");
- nonadjacent(state.tokens.curr, state.tokens.next);
- expression(10);
- }
- }
- if (isclassdef && i === "prototype") {
- error("E049", state.tokens.next, "class method", i);
- }
-
- countMember(i);
- if (isclassdef) {
- tag = "";
- continue;
- }
- if (state.tokens.next.id === ",") {
- comma({ allowTrailing: true, property: true });
- if (state.tokens.next.id === ",") {
- warning("W070", state.tokens.curr);
- } else if (state.tokens.next.id === "}" && !state.option.inES5(true)) {
- warning("W070", state.tokens.curr);
- }
- } else {
- break;
- }
- }
- if (b) {
- indent -= state.option.indent;
- indentation();
- }
- advance("}", this);
- if (state.option.inES5()) {
- for (var name in props) {
- if (_.has(props, name) && props[name].setter && !props[name].getter) {
- warning("W078", props[name].setterToken);
- }
- }
- }
- return this;
- };
- x.fud = function () {
- error("E036", state.tokens.curr);
- };
- }(delim("{")));
-
- function destructuringExpression() {
- var id, ids;
- var identifiers = [];
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.curr, "destructuring expression");
- }
- var nextInnerDE = function () {
- var ident;
- if (_.contains(["[", "{"], state.tokens.next.value)) {
- ids = destructuringExpression();
- for (var id in ids) {
- id = ids[id];
- identifiers.push({ id: id.id, token: id.token });
- }
- } else if (state.tokens.next.value === ",") {
- identifiers.push({ id: null, token: state.tokens.curr });
- } else {
- ident = identifier();
- if (ident)
- identifiers.push({ id: ident, token: state.tokens.curr });
- }
- };
- if (state.tokens.next.value === "[") {
- advance("[");
- nextInnerDE();
- while (state.tokens.next.value !== "]") {
- advance(",");
- nextInnerDE();
- }
- advance("]");
- } else if (state.tokens.next.value === "{") {
- advance("{");
- id = identifier();
- if (state.tokens.next.value === ":") {
- advance(":");
- nextInnerDE();
- } else {
- identifiers.push({ id: id, token: state.tokens.curr });
- }
- while (state.tokens.next.value !== "}") {
- advance(",");
- id = identifier();
- if (state.tokens.next.value === ":") {
- advance(":");
- nextInnerDE();
- } else {
- identifiers.push({ id: id, token: state.tokens.curr });
- }
- }
- advance("}");
- }
- return identifiers;
- }
- function destructuringExpressionMatch(tokens, value) {
- if (value.first) {
- _.zip(tokens, value.first).forEach(function (val) {
- var token = val[0];
- var value = val[1];
- if (token && value) {
- token.first = value;
- } else if (token && token.first && !value) {
- warning("W080", token.first, token.first.value);
- } /* else {
- XXX value is discarded: wouldn't it need a warning ?
- } */
- });
- }
- }
-
- var conststatement = stmt("const", function (prefix) {
- var tokens, value;
- var lone;
-
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.curr, "const");
- }
-
- this.first = [];
- for (;;) {
- var names = [];
- nonadjacent(state.tokens.curr, state.tokens.next);
- if (_.contains(["{", "["], state.tokens.next.value)) {
- tokens = destructuringExpression();
- lone = false;
- } else {
- tokens = [ { id: identifier(), token: state.tokens.curr } ];
- lone = true;
- }
- for (var t in tokens) {
- t = tokens[t];
- if (funct[t.id] === "const") {
- warning("E011", null, t.id);
- }
- if (funct["(global)"] && predefined[t.id] === false) {
- warning("W079", t.token, t.id);
- }
- if (t.id) {
- addlabel(t.id, "const");
- names.push(t.token);
- }
- }
- if (prefix) {
- break;
- }
-
- this.first = this.first.concat(names);
-
- if (state.tokens.next.id !== "=") {
- warning("E012", state.tokens.curr, state.tokens.curr.value);
- }
-
- if (state.tokens.next.id === "=") {
- nonadjacent(state.tokens.curr, state.tokens.next);
- advance("=");
- nonadjacent(state.tokens.curr, state.tokens.next);
- if (state.tokens.next.id === "undefined") {
- warning("W080", state.tokens.prev, state.tokens.prev.value);
- }
- if (peek(0).id === "=" && state.tokens.next.identifier) {
- error("E037", state.tokens.next, state.tokens.next.value);
- }
- value = expression(5);
- if (lone) {
- tokens[0].first = value;
- } else {
- destructuringExpressionMatch(names, value);
- }
- }
-
- if (state.tokens.next.id !== ",") {
- break;
- }
- comma();
- }
- return this;
- });
- conststatement.exps = true;
- var varstatement = stmt("var", function (prefix) {
- var tokens, lone, value;
-
- if (funct["(onevar)"] && state.option.onevar) {
- warning("W081");
- } else if (!funct["(global)"]) {
- funct["(onevar)"] = true;
- }
-
- this.first = [];
- for (;;) {
- var names = [];
- nonadjacent(state.tokens.curr, state.tokens.next);
- if (_.contains(["{", "["], state.tokens.next.value)) {
- tokens = destructuringExpression();
- lone = false;
- } else {
- tokens = [ { id: identifier(), token: state.tokens.curr } ];
- lone = true;
- }
- for (var t in tokens) {
- t = tokens[t];
- if (state.option.inESNext() && funct[t.id] === "const") {
- warning("E011", null, t.id);
- }
- if (funct["(global)"] && predefined[t.id] === false) {
- warning("W079", t.token, t.id);
- }
- if (t.id) {
- addlabel(t.id, "unused", t.token);
- names.push(t.token);
- }
- }
- if (prefix) {
- break;
- }
-
- this.first = this.first.concat(names);
-
- if (state.tokens.next.id === "=") {
- nonadjacent(state.tokens.curr, state.tokens.next);
- advance("=");
- nonadjacent(state.tokens.curr, state.tokens.next);
- if (state.tokens.next.id === "undefined") {
- warning("W080", state.tokens.prev, state.tokens.prev.value);
- }
- if (peek(0).id === "=" && state.tokens.next.identifier) {
- error("E038", state.tokens.next, state.tokens.next.value);
- }
- value = expression(5);
- if (lone) {
- tokens[0].first = value;
- } else {
- destructuringExpressionMatch(names, value);
- }
- }
-
- if (state.tokens.next.id !== ",") {
- break;
- }
- comma();
- }
- return this;
- });
- varstatement.exps = true;
- var letstatement = stmt("let", function (prefix) {
- var tokens, lone, value, letblock;
-
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.curr, "let");
- }
-
- if (state.tokens.next.value === "(") {
- if (!state.option.inMoz(true)) {
- warning("W118", state.tokens.next, "let block");
- }
- advance("(");
- funct["(blockscope)"].stack();
- letblock = true;
- } else if (funct["(nolet)"]) {
- error("E048", state.tokens.curr);
- }
-
- if (funct["(onevar)"] && state.option.onevar) {
- warning("W081");
- } else if (!funct["(global)"]) {
- funct["(onevar)"] = true;
- }
-
- this.first = [];
- for (;;) {
- var names = [];
- nonadjacent(state.tokens.curr, state.tokens.next);
- if (_.contains(["{", "["], state.tokens.next.value)) {
- tokens = destructuringExpression();
- lone = false;
- } else {
- tokens = [ { id: identifier(), token: state.tokens.curr.value } ];
- lone = true;
- }
- for (var t in tokens) {
- t = tokens[t];
- if (state.option.inESNext() && funct[t.id] === "const") {
- warning("E011", null, t.id);
- }
- if (funct["(global)"] && predefined[t.id] === false) {
- warning("W079", t.token, t.id);
- }
- if (t.id && !funct["(nolet)"]) {
- addlabel(t.id, "unused", t.token, true);
- names.push(t.token);
- }
- }
- if (prefix) {
- break;
- }
-
- this.first = this.first.concat(names);
-
- if (state.tokens.next.id === "=") {
- nonadjacent(state.tokens.curr, state.tokens.next);
- advance("=");
- nonadjacent(state.tokens.curr, state.tokens.next);
- if (state.tokens.next.id === "undefined") {
- warning("W080", state.tokens.prev, state.tokens.prev.value);
- }
- if (peek(0).id === "=" && state.tokens.next.identifier) {
- error("E037", state.tokens.next, state.tokens.next.value);
- }
- value = expression(5);
- if (lone) {
- tokens[0].first = value;
- } else {
- destructuringExpressionMatch(names, value);
- }
- }
-
- if (state.tokens.next.id !== ",") {
- break;
- }
- comma();
- }
- if (letblock) {
- advance(")");
- block(true, true);
- this.block = true;
- funct["(blockscope)"].unstack();
- }
-
- return this;
- });
- letstatement.exps = true;
-
- blockstmt("class", function () {
- return classdef.call(this, true);
- });
-
- function classdef(stmt) {
- if (!state.option.inESNext()) {
- warning("W104", state.tokens.curr, "class");
- }
- if (stmt) {
- this.name = identifier();
- addlabel(this.name, "unused", state.tokens.curr);
- } else if (state.tokens.next.identifier && state.tokens.next.value !== "extends") {
- this.name = identifier();
- }
- classtail(this);
- return this;
- }
-
- function classtail(c) {
- var strictness = state.directive["use strict"];
- if (state.tokens.next.value === "extends") {
- advance("extends");
- c.heritage = expression(10);
- }
- state.directive["use strict"] = true;
- advance("{");
- c.body = state.syntax["{"].nud(true);
- state.directive["use strict"] = strictness;
- }
-
- blockstmt("function", function () {
- var generator = false;
- if (state.tokens.next.value === "*") {
- advance("*");
- if (state.option.inESNext(true)) {
- generator = true;
- } else {
- warning("W119", state.tokens.curr, "function*");
- }
- }
- if (inblock) {
- warning("W082", state.tokens.curr);
-
- }
- var i = identifier();
- if (funct[i] === "const") {
- warning("E011", null, i);
- }
- adjacent(state.tokens.curr, state.tokens.next);
- addlabel(i, "unction", state.tokens.curr);
-
- doFunction(i, { statement: true }, generator);
- if (state.tokens.next.id === "(" && state.tokens.next.line === state.tokens.curr.line) {
- error("E039");
- }
- return this;
- });
-
- prefix("function", function () {
- var generator = false;
- if (state.tokens.next.value === "*") {
- if (!state.option.inESNext()) {
- warning("W119", state.tokens.curr, "function*");
- }
- advance("*");
- generator = true;
- }
- var i = optionalidentifier();
- if (i || state.option.gcl) {
- adjacent(state.tokens.curr, state.tokens.next);
- } else {
- nonadjacent(state.tokens.curr, state.tokens.next);
- }
- doFunction(i, undefined, generator);
- if (!state.option.loopfunc && funct["(loopage)"]) {
- warning("W083");
- }
- return this;
- });
-
- blockstmt("if", function () {
- var t = state.tokens.next;
- increaseComplexityCount();
- state.condition = true;
- advance("(");
- nonadjacent(this, t);
- nospace();
- checkCondAssignment(expression(0));
- advance(")", t);
- state.condition = false;
- nospace(state.tokens.prev, state.tokens.curr);
- block(true, true);
- if (state.tokens.next.id === "else") {
- nonadjacent(state.tokens.curr, state.tokens.next);
- advance("else");
- if (state.tokens.next.id === "if" || state.tokens.next.id === "switch") {
- statement(true);
- } else {
- block(true, true);
- }
- }
- return this;
- });
-
- blockstmt("try", function () {
- var b;
-
- function doCatch() {
- var oldScope = scope;
- var e;
-
- advance("catch");
- nonadjacent(state.tokens.curr, state.tokens.next);
- advance("(");
-
- scope = Object.create(oldScope);
-
- e = state.tokens.next.value;
- if (state.tokens.next.type !== "(identifier)") {
- e = null;
- warning("E030", state.tokens.next, e);
- }
-
- advance();
-
- funct = {
- "(name)" : "(catch)",
- "(line)" : state.tokens.next.line,
- "(character)": state.tokens.next.character,
- "(context)" : funct,
- "(breakage)" : funct["(breakage)"],
- "(loopage)" : funct["(loopage)"],
- "(scope)" : scope,
- "(statement)": false,
- "(metrics)" : createMetrics(state.tokens.next),
- "(catch)" : true,
- "(tokens)" : {},
- "(blockscope)": funct["(blockscope)"],
- "(comparray)": funct["(comparray)"]
- };
-
- if (e) {
- addlabel(e, "exception");
- }
-
- if (state.tokens.next.value === "if") {
- if (!state.option.inMoz(true)) {
- warning("W118", state.tokens.curr, "catch filter");
- }
- advance("if");
- expression(0);
- }
-
- advance(")");
-
- state.tokens.curr.funct = funct;
- functions.push(funct);
-
- block(false);
-
- scope = oldScope;
-
- funct["(last)"] = state.tokens.curr.line;
- funct["(lastcharacter)"] = state.tokens.curr.character;
- funct = funct["(context)"];
- }
-
- block(false);
-
- while (state.tokens.next.id === "catch") {
- increaseComplexityCount();
- if (b && (!state.option.inMoz(true))) {
- warning("W118", state.tokens.next, "multiple catch blocks");
- }
- doCatch();
- b = true;
- }
-
- if (state.tokens.next.id === "finally") {
- advance("finally");
- block(false);
- return;
- }
-
- if (!b) {
- error("E021", state.tokens.next, "catch", state.tokens.next.value);
- }
-
- return this;
- });
-
- blockstmt("while", function () {
- var t = state.tokens.next;
- funct["(breakage)"] += 1;
- funct["(loopage)"] += 1;
- increaseComplexityCount();
- advance("(");
- nonadjacent(this, t);
- nospace();
- checkCondAssignment(expression(0));
- advance(")", t);
- nospace(state.tokens.prev, state.tokens.curr);
- block(true, true);
- funct["(breakage)"] -= 1;
- funct["(loopage)"] -= 1;
- return this;
- }).labelled = true;
-
- blockstmt("with", function () {
- var t = state.tokens.next;
- if (state.directive["use strict"]) {
- error("E010", state.tokens.curr);
- } else if (!state.option.withstmt) {
- warning("W085", state.tokens.curr);
- }
-
- advance("(");
- nonadjacent(this, t);
- nospace();
- expression(0);
- advance(")", t);
- nospace(state.tokens.prev, state.tokens.curr);
- block(true, true);
-
- return this;
- });
-
- blockstmt("switch", function () {
- var t = state.tokens.next,
- g = false;
- funct["(breakage)"] += 1;
- advance("(");
- nonadjacent(this, t);
- nospace();
- checkCondAssignment(expression(0));
- advance(")", t);
- nospace(state.tokens.prev, state.tokens.curr);
- nonadjacent(state.tokens.curr, state.tokens.next);
- t = state.tokens.next;
- advance("{");
- nonadjacent(state.tokens.curr, state.tokens.next);
- indent += state.option.indent;
- this.cases = [];
-
- for (;;) {
- switch (state.tokens.next.id) {
- case "case":
- switch (funct["(verb)"]) {
- case "yield":
- case "break":
- case "case":
- case "continue":
- case "return":
- case "switch":
- case "throw":
- break;
- default:
- if (!reg.fallsThrough.test(state.lines[state.tokens.next.line - 2])) {
- warning("W086", state.tokens.curr, "case");
- }
- }
- indentation(-state.option.indent);
- advance("case");
- this.cases.push(expression(20));
- increaseComplexityCount();
- g = true;
- advance(":");
- funct["(verb)"] = "case";
- break;
- case "default":
- switch (funct["(verb)"]) {
- case "yield":
- case "break":
- case "continue":
- case "return":
- case "throw":
- break;
- default:
- if (this.cases.length) {
- if (!reg.fallsThrough.test(state.lines[state.tokens.next.line - 2])) {
- warning("W086", state.tokens.curr, "default");
- }
- }
- }
- indentation(-state.option.indent);
- advance("default");
- g = true;
- advance(":");
- break;
- case "}":
- indent -= state.option.indent;
- indentation();
- advance("}", t);
- funct["(breakage)"] -= 1;
- funct["(verb)"] = undefined;
- return;
- case "(end)":
- error("E023", state.tokens.next, "}");
- return;
- default:
- if (g) {
- switch (state.tokens.curr.id) {
- case ",":
- error("E040");
- return;
- case ":":
- g = false;
- statements();
- break;
- default:
- error("E025", state.tokens.curr);
- return;
- }
- } else {
- if (state.tokens.curr.id === ":") {
- advance(":");
- error("E024", state.tokens.curr, ":");
- statements();
- } else {
- error("E021", state.tokens.next, "case", state.tokens.next.value);
- return;
- }
- }
- }
- }
- }).labelled = true;
-
- stmt("debugger", function () {
- if (!state.option.debug) {
- warning("W087");
- }
- return this;
- }).exps = true;
-
- (function () {
- var x = stmt("do", function () {
- funct["(breakage)"] += 1;
- funct["(loopage)"] += 1;
- increaseComplexityCount();
-
- this.first = block(true, true);
- advance("while");
- var t = state.tokens.next;
- nonadjacent(state.tokens.curr, t);
- advance("(");
- nospace();
- checkCondAssignment(expression(0));
- advance(")", t);
- nospace(state.tokens.prev, state.tokens.curr);
- funct["(breakage)"] -= 1;
- funct["(loopage)"] -= 1;
- return this;
- });
- x.labelled = true;
- x.exps = true;
- }());
-
- blockstmt("for", function () {
- var s, t = state.tokens.next;
- var letscope = false;
- var foreachtok = null;
-
- if (t.value === "each") {
- foreachtok = t;
- advance("each");
- if (!state.option.inMoz(true)) {
- warning("W118", state.tokens.curr, "for each");
- }
- }
-
- funct["(breakage)"] += 1;
- funct["(loopage)"] += 1;
- increaseComplexityCount();
- advance("(");
- nonadjacent(this, t);
- nospace();
- var nextop; // contains the token of the "in" or "of" operator
- var i = 0;
- var inof = ["in", "of"];
- do {
- nextop = peek(i);
- ++i;
- } while (!_.contains(inof, nextop.value) && nextop.value !== ";" &&
- nextop.type !== "(end)");
- if (_.contains(inof, nextop.value)) {
- if (!state.option.inESNext() && nextop.value === "of") {
- error("W104", nextop, "for of");
- }
- if (state.tokens.next.id === "var") {
- advance("var");
- state.syntax["var"].fud.call(state.syntax["var"].fud, true);
- } else if (state.tokens.next.id === "let") {
- advance("let");
- letscope = true;
- funct["(blockscope)"].stack();
- state.syntax["let"].fud.call(state.syntax["let"].fud, true);
- } else {
- switch (funct[state.tokens.next.value]) {
- case "unused":
- funct[state.tokens.next.value] = "var";
- break;
- case "var":
- break;
- default:
- if (!funct["(blockscope)"].getlabel(state.tokens.next.value))
- warning("W088", state.tokens.next, state.tokens.next.value);
- }
- advance();
- }
- advance(nextop.value);
- expression(20);
- advance(")", t);
- s = block(true, true);
- if (state.option.forin && s && (s.length > 1 || typeof s[0] !== "object" ||
- s[0].value !== "if")) {
- warning("W089", this);
- }
- funct["(breakage)"] -= 1;
- funct["(loopage)"] -= 1;
- } else {
- if (foreachtok) {
- error("E045", foreachtok);
- }
- if (state.tokens.next.id !== ";") {
- if (state.tokens.next.id === "var") {
- advance("var");
- state.syntax["var"].fud.call(state.syntax["var"].fud);
- } else if (state.tokens.next.id === "let") {
- advance("let");
- letscope = true;
- funct["(blockscope)"].stack();
- state.syntax["let"].fud.call(state.syntax["let"].fud);
- } else {
- for (;;) {
- expression(0, "for");
- if (state.tokens.next.id !== ",") {
- break;
- }
- comma();
- }
- }
- }
- nolinebreak(state.tokens.curr);
- advance(";");
- if (state.tokens.next.id !== ";") {
- checkCondAssignment(expression(0));
- }
- nolinebreak(state.tokens.curr);
- advance(";");
- if (state.tokens.next.id === ";") {
- error("E021", state.tokens.next, ")", ";");
- }
- if (state.tokens.next.id !== ")") {
- for (;;) {
- expression(0, "for");
- if (state.tokens.next.id !== ",") {
- break;
- }
- comma();
- }
- }
- advance(")", t);
- nospace(state.tokens.prev, state.tokens.curr);
- block(true, true);
- funct["(breakage)"] -= 1;
- funct["(loopage)"] -= 1;
-
- }
- if (letscope) {
- funct["(blockscope)"].unstack();
- }
- return this;
- }).labelled = true;
-
-
- stmt("break", function () {
- var v = state.tokens.next.value;
-
- if (funct["(breakage)"] === 0)
- warning("W052", state.tokens.next, this.value);
-
- if (!state.option.asi)
- nolinebreak(this);
-
- if (state.tokens.next.id !== ";" && !state.tokens.next.reach) {
- if (state.tokens.curr.line === state.tokens.next.line) {
- if (funct[v] !== "label") {
- warning("W090", state.tokens.next, v);
- } else if (scope[v] !== funct) {
- warning("W091", state.tokens.next, v);
- }
- this.first = state.tokens.next;
- advance();
- }
- }
- reachable("break");
- return this;
- }).exps = true;
-
-
- stmt("continue", function () {
- var v = state.tokens.next.value;
-
- if (funct["(breakage)"] === 0)
- warning("W052", state.tokens.next, this.value);
-
- if (!state.option.asi)
- nolinebreak(this);
-
- if (state.tokens.next.id !== ";" && !state.tokens.next.reach) {
- if (state.tokens.curr.line === state.tokens.next.line) {
- if (funct[v] !== "label") {
- warning("W090", state.tokens.next, v);
- } else if (scope[v] !== funct) {
- warning("W091", state.tokens.next, v);
- }
- this.first = state.tokens.next;
- advance();
- }
- } else if (!funct["(loopage)"]) {
- warning("W052", state.tokens.next, this.value);
- }
- reachable("continue");
- return this;
- }).exps = true;
-
-
- stmt("return", function () {
- if (this.line === state.tokens.next.line) {
- if (state.tokens.next.id === "(regexp)")
- warning("W092");
-
- if (state.tokens.next.id !== ";" && !state.tokens.next.reach) {
- nonadjacent(state.tokens.curr, state.tokens.next);
- this.first = expression(0);
-
- if (this.first &&
- this.first.type === "(punctuator)" && this.first.value === "=" && !state.option.boss) {
- warningAt("W093", this.first.line, this.first.character);
- }
- }
- } else {
- if (state.tokens.next.type === "(punctuator)" &&
- ["[", "{", "+", "-"].indexOf(state.tokens.next.value) > -1) {
- nolinebreak(this); // always warn (Line breaking error)
- }
- }
- reachable("return");
- return this;
- }).exps = true;
-
- stmt("yield", function () {
- if (state.option.inESNext(true) && funct["(generator)"] !== true) {
- error("E046", state.tokens.curr, "yield");
- } else if (!state.option.inESNext()) {
- warning("W104", state.tokens.curr, "yield");
- }
- funct["(generator)"] = "yielded";
- if (this.line === state.tokens.next.line) {
- if (state.tokens.next.id === "(regexp)")
- warning("W092");
-
- if (state.tokens.next.id !== ";" && !state.tokens.next.reach) {
- nonadjacent(state.tokens.curr, state.tokens.next);
- this.first = expression(0);
-
- if (this.first.type === "(punctuator)" && this.first.value === "=" && !state.option.boss) {
- warningAt("W093", this.first.line, this.first.character);
- }
- }
- } else if (!state.option.asi) {
- nolinebreak(this); // always warn (Line breaking error)
- }
- return this;
- }).exps = true;
-
-
- stmt("throw", function () {
- nolinebreak(this);
- nonadjacent(state.tokens.curr, state.tokens.next);
- this.first = expression(20);
- reachable("throw");
- return this;
- }).exps = true;
-
- FutureReservedWord("abstract");
- FutureReservedWord("boolean");
- FutureReservedWord("byte");
- FutureReservedWord("char");
- FutureReservedWord("class", { es5: true, nud: classdef });
- FutureReservedWord("double");
- FutureReservedWord("enum", { es5: true });
- FutureReservedWord("export", { es5: true });
- FutureReservedWord("extends", { es5: true });
- FutureReservedWord("final");
- FutureReservedWord("float");
- FutureReservedWord("goto");
- FutureReservedWord("implements", { es5: true, strictOnly: true });
- FutureReservedWord("import", { es5: true });
- FutureReservedWord("int");
- FutureReservedWord("interface", { es5: true, strictOnly: true });
- FutureReservedWord("long");
- FutureReservedWord("native");
- FutureReservedWord("package", { es5: true, strictOnly: true });
- FutureReservedWord("private", { es5: true, strictOnly: true });
- FutureReservedWord("protected", { es5: true, strictOnly: true });
- FutureReservedWord("public", { es5: true, strictOnly: true });
- FutureReservedWord("short");
- FutureReservedWord("static", { es5: true, strictOnly: true });
- FutureReservedWord("super", { es5: true });
- FutureReservedWord("synchronized");
- FutureReservedWord("throws");
- FutureReservedWord("transient");
- FutureReservedWord("volatile");
-
- var lookupBlockType = function () {
- var pn, pn1;
- var i = 0;
- var bracketStack = 0;
- var ret = {};
- if (_.contains(["[", "{"], state.tokens.curr.value))
- bracketStack += 1;
- if (_.contains(["[", "{"], state.tokens.next.value))
- bracketStack += 1;
- if (_.contains(["]", "}"], state.tokens.next.value))
- bracketStack -= 1;
- do {
- pn = peek(i);
- pn1 = peek(i + 1);
- i = i + 1;
- if (_.contains(["[", "{"], pn.value)) {
- bracketStack += 1;
- } else if (_.contains(["]", "}"], pn.value)) {
- bracketStack -= 1;
- }
- if (pn.identifier && pn.value === "for" && bracketStack === 1) {
- ret.isCompArray = true;
- ret.notJson = true;
- break;
- }
- if (_.contains(["}", "]"], pn.value) && pn1.value === "=") {
- ret.isDestAssign = true;
- ret.notJson = true;
- break;
- }
- if (pn.value === ";") {
- ret.isBlock = true;
- ret.notJson = true;
- }
- } while (bracketStack > 0 && pn.id !== "(end)" && i < 15);
- return ret;
- };
- function destructuringAssignOrJsonValue() {
-
- var block = lookupBlockType();
- if (block.notJson) {
- if (!state.option.inESNext() && block.isDestAssign) {
- warning("W104", state.tokens.curr, "destructuring assignment");
- }
- statements();
- } else {
- state.option.laxbreak = true;
- state.jsonMode = true;
- jsonValue();
- }
- }
-
- var arrayComprehension = function () {
- var CompArray = function () {
- this.mode = "use";
- this.variables = [];
- };
- var _carrays = [];
- var _current;
- function declare(v) {
- var l = _current.variables.filter(function (elt) {
- if (elt.value === v) {
- elt.undef = false;
- return v;
- }
- }).length;
- return l !== 0;
- }
- function use(v) {
- var l = _current.variables.filter(function (elt) {
- if (elt.value === v && !elt.undef) {
- if (elt.unused === true) {
- elt.unused = false;
- }
- return v;
- }
- }).length;
- return (l === 0);
- }
- return {stack: function () {
- _current = new CompArray();
- _carrays.push(_current);
- },
- unstack: function () {
- _current.variables.filter(function (v) {
- if (v.unused)
- warning("W098", v.token, v.value);
- if (v.undef)
- isundef(v.funct, "W117", v.token, v.value);
- });
- _carrays.splice(_carrays[_carrays.length - 1], 1);
- _current = _carrays[_carrays.length - 1];
- },
- setState: function (s) {
- if (_.contains(["use", "define", "filter"], s))
- _current.mode = s;
- },
- check: function (v) {
- if (_current && _current.mode === "use") {
- _current.variables.push({funct: funct,
- token: state.tokens.curr,
- value: v,
- undef: true,
- unused: false});
- return true;
- } else if (_current && _current.mode === "define") {
- if (!declare(v)) {
- _current.variables.push({funct: funct,
- token: state.tokens.curr,
- value: v,
- undef: false,
- unused: true});
- }
- return true;
- } else if (_current && _current.mode === "filter") {
- if (use(v)) {
- isundef(funct, "W117", state.tokens.curr, v);
- }
- return true;
- }
- return false;
- }
- };
- };
-
- function jsonValue() {
-
- function jsonObject() {
- var o = {}, t = state.tokens.next;
- advance("{");
- if (state.tokens.next.id !== "}") {
- for (;;) {
- if (state.tokens.next.id === "(end)") {
- error("E026", state.tokens.next, t.line);
- } else if (state.tokens.next.id === "}") {
- warning("W094", state.tokens.curr);
- break;
- } else if (state.tokens.next.id === ",") {
- error("E028", state.tokens.next);
- } else if (state.tokens.next.id !== "(string)") {
- warning("W095", state.tokens.next, state.tokens.next.value);
- }
- if (o[state.tokens.next.value] === true) {
- warning("W075", state.tokens.next, state.tokens.next.value);
- } else if ((state.tokens.next.value === "__proto__" &&
- !state.option.proto) || (state.tokens.next.value === "__iterator__" &&
- !state.option.iterator)) {
- warning("W096", state.tokens.next, state.tokens.next.value);
- } else {
- o[state.tokens.next.value] = true;
- }
- advance();
- advance(":");
- jsonValue();
- if (state.tokens.next.id !== ",") {
- break;
- }
- advance(",");
- }
- }
- advance("}");
- }
-
- function jsonArray() {
- var t = state.tokens.next;
- advance("[");
- if (state.tokens.next.id !== "]") {
- for (;;) {
- if (state.tokens.next.id === "(end)") {
- error("E027", state.tokens.next, t.line);
- } else if (state.tokens.next.id === "]") {
- warning("W094", state.tokens.curr);
- break;
- } else if (state.tokens.next.id === ",") {
- error("E028", state.tokens.next);
- }
- jsonValue();
- if (state.tokens.next.id !== ",") {
- break;
- }
- advance(",");
- }
- }
- advance("]");
- }
-
- switch (state.tokens.next.id) {
- case "{":
- jsonObject();
- break;
- case "[":
- jsonArray();
- break;
- case "true":
- case "false":
- case "null":
- case "(number)":
- case "(string)":
- advance();
- break;
- case "-":
- advance("-");
- if (state.tokens.curr.character !== state.tokens.next.from) {
- warning("W011", state.tokens.curr);
- }
- adjacent(state.tokens.curr, state.tokens.next);
- advance("(number)");
- break;
- default:
- error("E003", state.tokens.next);
- }
- }
-
- var blockScope = function () {
- var _current = {};
- var _variables = [_current];
-
- function _checkBlockLabels() {
- for (var t in _current) {
- if (_current[t]["(type)"] === "unused") {
- if (state.option.unused) {
- var tkn = _current[t]["(token)"];
- var line = tkn.line;
- var chr = tkn.character;
- warningAt("W098", line, chr, t);
- }
- }
- }
- }
-
- return {
- stack: function () {
- _current = {};
- _variables.push(_current);
- },
-
- unstack: function () {
- _checkBlockLabels();
- _variables.splice(_variables.length - 1, 1);
- _current = _.last(_variables);
- },
-
- getlabel: function (l) {
- for (var i = _variables.length - 1 ; i >= 0; --i) {
- if (_.has(_variables[i], l)) {
- return _variables[i];
- }
- }
- },
-
- current: {
- has: function (t) {
- return _.has(_current, t);
- },
- add: function (t, type, tok) {
- _current[t] = { "(type)" : type,
- "(token)": tok };
- }
- }
- };
- };
- var itself = function (s, o, g) {
- var i, k, x;
- var optionKeys;
- var newOptionObj = {};
- var newIgnoredObj = {};
-
- state.reset();
-
- if (o && o.scope) {
- JSHINT.scope = o.scope;
- } else {
- JSHINT.errors = [];
- JSHINT.undefs = [];
- JSHINT.internals = [];
- JSHINT.blacklist = {};
- JSHINT.scope = "(main)";
- }
-
- predefined = Object.create(null);
- combine(predefined, vars.ecmaIdentifiers);
- combine(predefined, vars.reservedVars);
-
- combine(predefined, g || {});
-
- declared = Object.create(null);
- exported = Object.create(null);
-
- function each(obj, cb) {
- if (!obj)
- return;
-
- if (!Array.isArray(obj) && typeof obj === "object")
- obj = Object.keys(obj);
-
- obj.forEach(cb);
- }
-
- if (o) {
- each(o.predef || null, function (item) {
- var slice, prop;
-
- if (item[0] === "-") {
- slice = item.slice(1);
- JSHINT.blacklist[slice] = slice;
- } else {
- prop = Object.getOwnPropertyDescriptor(o.predef, item);
- predefined[item] = prop ? prop.value : false;
- }
- });
-
- each(o.exported || null, function (item) {
- exported[item] = true;
- });
-
- delete o.predef;
- delete o.exported;
-
- optionKeys = Object.keys(o);
- for (x = 0; x < optionKeys.length; x++) {
- if (/^-W\d{3}$/g.test(optionKeys[x])) {
- newIgnoredObj[optionKeys[x].slice(1)] = true;
- } else {
- newOptionObj[optionKeys[x]] = o[optionKeys[x]];
-
- if (optionKeys[x] === "newcap" && o[optionKeys[x]] === false)
- newOptionObj["(explicitNewcap)"] = true;
-
- if (optionKeys[x] === "indent")
- newOptionObj["(explicitIndent)"] = o[optionKeys[x]] === false ? false : true;
- }
- }
- }
-
- state.option = newOptionObj;
- state.ignored = newIgnoredObj;
-
- state.option.indent = state.option.indent || 4;
- state.option.maxerr = state.option.maxerr || 50;
-
- indent = 1;
- global = Object.create(predefined);
- scope = global;
- funct = {
- "(global)": true,
- "(name)": "(global)",
- "(scope)": scope,
- "(breakage)": 0,
- "(loopage)": 0,
- "(tokens)": {},
- "(metrics)": createMetrics(state.tokens.next),
- "(blockscope)": blockScope(),
- "(comparray)": arrayComprehension()
- };
- functions = [funct];
- urls = [];
- stack = null;
- member = {};
- membersOnly = null;
- implied = {};
- inblock = false;
- lookahead = [];
- warnings = 0;
- unuseds = [];
-
- if (!isString(s) && !Array.isArray(s)) {
- errorAt("E004", 0);
- return false;
- }
-
- api = {
- get isJSON() {
- return state.jsonMode;
- },
-
- getOption: function (name) {
- return state.option[name] || null;
- },
-
- getCache: function (name) {
- return state.cache[name];
- },
-
- setCache: function (name, value) {
- state.cache[name] = value;
- },
-
- warn: function (code, data) {
- warningAt.apply(null, [ code, data.line, data.char ].concat(data.data));
- },
-
- on: function (names, listener) {
- names.split(" ").forEach(function (name) {
- emitter.on(name, listener);
- }.bind(this));
- }
- };
-
- emitter.removeAllListeners();
- (extraModules || []).forEach(function (func) {
- func(api);
- });
-
- state.tokens.prev = state.tokens.curr = state.tokens.next = state.syntax["(begin)"];
-
- lex = new Lexer(s);
-
- lex.on("warning", function (ev) {
- warningAt.apply(null, [ ev.code, ev.line, ev.character].concat(ev.data));
- });
-
- lex.on("error", function (ev) {
- errorAt.apply(null, [ ev.code, ev.line, ev.character ].concat(ev.data));
- });
-
- lex.on("fatal", function (ev) {
- quit("E041", ev.line, ev.from);
- });
-
- lex.on("Identifier", function (ev) {
- emitter.emit("Identifier", ev);
- });
-
- lex.on("String", function (ev) {
- emitter.emit("String", ev);
- });
-
- lex.on("Number", function (ev) {
- emitter.emit("Number", ev);
- });
-
- lex.start();
- for (var name in o) {
- if (_.has(o, name)) {
- checkOption(name, state.tokens.curr);
- }
- }
-
- assume();
- combine(predefined, g || {});
- comma.first = true;
-
- try {
- advance();
- switch (state.tokens.next.id) {
- case "{":
- case "[":
- destructuringAssignOrJsonValue();
- break;
- default:
- directives();
-
- if (state.directive["use strict"]) {
- if (!state.option.globalstrict && !state.option.node) {
- warning("W097", state.tokens.prev);
- }
- }
-
- statements();
- }
- advance((state.tokens.next && state.tokens.next.value !== ".") ? "(end)" : undefined);
- funct["(blockscope)"].unstack();
-
- var markDefined = function (name, context) {
- do {
- if (typeof context[name] === "string") {
-
- if (context[name] === "unused")
- context[name] = "var";
- else if (context[name] === "unction")
- context[name] = "closure";
-
- return true;
- }
-
- context = context["(context)"];
- } while (context);
-
- return false;
- };
-
- var clearImplied = function (name, line) {
- if (!implied[name])
- return;
-
- var newImplied = [];
- for (var i = 0; i < implied[name].length; i += 1) {
- if (implied[name][i] !== line)
- newImplied.push(implied[name][i]);
- }
-
- if (newImplied.length === 0)
- delete implied[name];
- else
- implied[name] = newImplied;
- };
-
- var warnUnused = function (name, tkn, type, unused_opt) {
- var line = tkn.line;
- var chr = tkn.character;
-
- if (unused_opt === undefined) {
- unused_opt = state.option.unused;
- }
-
- if (unused_opt === true) {
- unused_opt = "last-param";
- }
-
- var warnable_types = {
- "vars": ["var"],
- "last-param": ["var", "param"],
- "strict": ["var", "param", "last-param"]
- };
-
- if (unused_opt) {
- if (warnable_types[unused_opt] && warnable_types[unused_opt].indexOf(type) !== -1) {
- warningAt("W098", line, chr, name);
- }
- }
-
- unuseds.push({
- name: name,
- line: line,
- character: chr
- });
- };
-
- var checkUnused = function (func, key) {
- var type = func[key];
- var tkn = func["(tokens)"][key];
-
- if (key.charAt(0) === "(")
- return;
-
- if (type !== "unused" && type !== "unction")
- return;
- if (func["(params)"] && func["(params)"].indexOf(key) !== -1)
- return;
- if (func["(global)"] && _.has(exported, key)) {
- return;
- }
-
- warnUnused(key, tkn, "var");
- };
- for (i = 0; i < JSHINT.undefs.length; i += 1) {
- k = JSHINT.undefs[i].slice(0);
-
- if (markDefined(k[2].value, k[0])) {
- clearImplied(k[2].value, k[2].line);
- } else if (state.option.undef) {
- warning.apply(warning, k.slice(1));
- }
- }
-
- functions.forEach(function (func) {
- if (func["(unusedOption)"] === false) {
- return;
- }
-
- for (var key in func) {
- if (_.has(func, key)) {
- checkUnused(func, key);
- }
- }
-
- if (!func["(params)"])
- return;
-
- var params = func["(params)"].slice();
- var param = params.pop();
- var type, unused_opt;
-
- while (param) {
- type = func[param];
- unused_opt = func["(unusedOption)"] || state.option.unused;
- unused_opt = unused_opt === true ? "last-param" : unused_opt;
-
- if (param === "undefined")
- return;
-
- if (type === "unused" || type === "unction") {
- warnUnused(param, func["(tokens)"][param], "param", func["(unusedOption)"]);
- } else if (unused_opt === "last-param") {
- return;
- }
-
- param = params.pop();
- }
- });
-
- for (var key in declared) {
- if (_.has(declared, key) && !_.has(global, key)) {
- warnUnused(key, declared[key], "var");
- }
- }
-
- } catch (err) {
- if (err && err.name === "JSHintError") {
- var nt = state.tokens.next || {};
- JSHINT.errors.push({
- scope : "(main)",
- raw : err.raw,
- reason : err.message,
- line : err.line || nt.line,
- character : err.character || nt.from
- }, null);
- } else {
- throw err;
- }
- }
-
- if (JSHINT.scope === "(main)") {
- o = o || {};
-
- for (i = 0; i < JSHINT.internals.length; i += 1) {
- k = JSHINT.internals[i];
- o.scope = k.elem;
- itself(k.value, o, g);
- }
- }
-
- return JSHINT.errors.length === 0;
- };
- itself.addModule = function (func) {
- extraModules.push(func);
- };
-
- itself.addModule(style.register);
- itself.data = function () {
- var data = {
- functions: [],
- options: state.option
- };
- var implieds = [];
- var members = [];
- var fu, f, i, j, n, globals;
-
- if (itself.errors.length) {
- data.errors = itself.errors;
- }
-
- if (state.jsonMode) {
- data.json = true;
- }
-
- for (n in implied) {
- if (_.has(implied, n)) {
- implieds.push({
- name: n,
- line: implied[n]
- });
- }
- }
-
- if (implieds.length > 0) {
- data.implieds = implieds;
- }
-
- if (urls.length > 0) {
- data.urls = urls;
- }
-
- globals = Object.keys(scope);
- if (globals.length > 0) {
- data.globals = globals;
- }
-
- for (i = 1; i < functions.length; i += 1) {
- f = functions[i];
- fu = {};
-
- for (j = 0; j < functionicity.length; j += 1) {
- fu[functionicity[j]] = [];
- }
-
- for (j = 0; j < functionicity.length; j += 1) {
- if (fu[functionicity[j]].length === 0) {
- delete fu[functionicity[j]];
- }
- }
-
- fu.name = f["(name)"];
- fu.param = f["(params)"];
- fu.line = f["(line)"];
- fu.character = f["(character)"];
- fu.last = f["(last)"];
- fu.lastcharacter = f["(lastcharacter)"];
- data.functions.push(fu);
- }
-
- if (unuseds.length > 0) {
- data.unused = unuseds;
- }
-
- members = [];
- for (n in member) {
- if (typeof member[n] === "number") {
- data.member = member;
- break;
- }
- }
-
- return data;
- };
-
- itself.jshint = itself;
-
- return itself;
-}());
-if (typeof exports === "object" && exports) {
- exports.JSHINT = JSHINT;
-}
-
-})()
-},
-{"events":2,"../shared/vars.js":3,"../shared/messages.js":10,"./lex.js":11,"./reg.js":4,"./state.js":5,"./style.js":6,"console-browserify":7,"underscore":12}],
-10:[function(req,module,exports){
-(function(){
-
-var _ = req("underscore");
-
-var errors = {
- E001: "Bad option: '{a}'.",
- E002: "Bad option value.",
- E003: "Expected a JSON value.",
- E004: "Input is neither a string nor an array of strings.",
- E005: "Input is empty.",
- E006: "Unexpected early end of program.",
- E007: "Missing \"use strict\" statement.",
- E008: "Strict violation.",
- E009: "Option 'validthis' can't be used in a global scope.",
- E010: "'with' is not allowed in strict mode.",
- E011: "const '{a}' has already been declared.",
- E012: "const '{a}' is initialized to 'undefined'.",
- E013: "Attempting to override '{a}' which is a constant.",
- E014: "A regular expression literal can be confused with '/='.",
- E015: "Unclosed regular expression.",
- E016: "Invalid regular expression.",
- E017: "Unclosed comment.",
- E018: "Unbegun comment.",
- E019: "Unmatched '{a}'.",
- E020: "Expected '{a}' to match '{b}' from line {c} and instead saw '{d}'.",
- E021: "Expected '{a}' and instead saw '{b}'.",
- E022: "Line breaking error '{a}'.",
- E023: "Missing '{a}'.",
- E024: "Unexpected '{a}'.",
- E025: "Missing ':' on a case clause.",
- E026: "Missing '}' to match '{' from line {a}.",
- E027: "Missing ']' to match '[' form line {a}.",
- E028: "Illegal comma.",
- E029: "Unclosed string.",
- E030: "Expected an identifier and instead saw '{a}'.",
- E031: "Bad assignment.", // FIXME: Rephrase
- E032: "Expected a small integer or 'false' and instead saw '{a}'.",
- E033: "Expected an operator and instead saw '{a}'.",
- E034: "get/set are ES5 features.",
- E035: "Missing property name.",
- E036: "Expected to see a statement and instead saw a block.",
- E037: "Constant {a} was not declared correctly.",
- E038: "Variable {a} was not declared correctly.",
- E039: "Function declarations are not invocable. Wrap the whole function invocation in parens.",
- E040: "Each value should have its own case label.",
- E041: "Unrecoverable syntax error.",
- E042: "Stopping.",
- E043: "Too many errors.",
- E044: "'{a}' is already defined and can't be redefined.",
- E045: "Invalid for each loop.",
- E046: "A yield statement shall be within a generator function (with syntax: `function*`)",
- E047: "A generator function shall contain a yield statement.",
- E048: "Let declaration not directly within block.",
- E049: "A {a} cannot be named '{b}'."
-};
-
-var warnings = {
- W001: "'hasOwnProperty' is a really bad name.",
- W002: "Value of '{a}' may be overwritten in IE 8 and earlier.",
- W003: "'{a}' was used before it was defined.",
- W004: "'{a}' is already defined.",
- W005: "A dot following a number can be confused with a decimal point.",
- W006: "Confusing minuses.",
- W007: "Confusing pluses.",
- W008: "A leading decimal point can be confused with a dot: '{a}'.",
- W009: "The array literal notation [] is preferrable.",
- W010: "The object literal notation {} is preferrable.",
- W011: "Unexpected space after '{a}'.",
- W012: "Unexpected space before '{a}'.",
- W013: "Missing space after '{a}'.",
- W014: "Bad line breaking before '{a}'.",
- W015: "Expected '{a}' to have an indentation at {b} instead at {c}.",
- W016: "Unexpected use of '{a}'.",
- W017: "Bad operand.",
- W018: "Confusing use of '{a}'.",
- W019: "Use the isNaN function to compare with NaN.",
- W020: "Read only.",
- W021: "'{a}' is a function.",
- W022: "Do not assign to the exception parameter.",
- W023: "Expected an identifier in an assignment and instead saw a function invocation.",
- W024: "Expected an identifier and instead saw '{a}' (a reserved word).",
- W025: "Missing name in function declaration.",
- W026: "Inner functions should be listed at the top of the outer function.",
- W027: "Unreachable '{a}' after '{b}'.",
- W028: "Label '{a}' on {b} statement.",
- W030: "Expected an assignment or function call and instead saw an expression.",
- W031: "Do not use 'new' for side effects.",
- W032: "Unnecessary semicolon.",
- W033: "Missing semicolon.",
- W034: "Unnecessary directive \"{a}\".",
- W035: "Empty block.",
- W036: "Unexpected /*member '{a}'.",
- W037: "'{a}' is a statement label.",
- W038: "'{a}' used out of scope.",
- W039: "'{a}' is not allowed.",
- W040: "Possible strict violation.",
- W041: "Use '{a}' to compare with '{b}'.",
- W042: "Avoid EOL escaping.",
- W043: "Bad escaping of EOL. Use option multistr if needed.",
- W044: "Bad or unnecessary escaping.",
- W045: "Bad number '{a}'.",
- W046: "Don't use extra leading zeros '{a}'.",
- W047: "A trailing decimal point can be confused with a dot: '{a}'.",
- W048: "Unexpected control character in regular expression.",
- W049: "Unexpected escaped character '{a}' in regular expression.",
- W050: "JavaScript URL.",
- W051: "Variables should not be deleted.",
- W052: "Unexpected '{a}'.",
- W053: "Do not use {a} as a constructor.",
- W054: "The Function constructor is a form of eval.",
- W055: "A constructor name should start with an uppercase letter.",
- W056: "Bad constructor.",
- W057: "Weird construction. Is 'new' unnecessary?",
- W058: "Missing '()' invoking a constructor.",
- W059: "Avoid arguments.{a}.",
- W060: "document.write can be a form of eval.",
- W061: "eval can be harmful.",
- W062: "Wrap an immediate function invocation in parens " +
- "to assist the reader in understanding that the expression " +
- "is the result of a function, and not the function itself.",
- W063: "Math is not a function.",
- W064: "Missing 'new' prefix when invoking a constructor.",
- W065: "Missing radix parameter.",
- W066: "Implied eval. Consider passing a function instead of a string.",
- W067: "Bad invocation.",
- W068: "Wrapping non-IIFE function literals in parens is unnecessary.",
- W069: "['{a}'] is better written in dot notation.",
- W070: "Extra comma. (it breaks older versions of IE)",
- W071: "This function has too many statements. ({a})",
- W072: "This function has too many parameters. ({a})",
- W073: "Blocks are nested too deeply. ({a})",
- W074: "This function's cyclomatic complexity is too high. ({a})",
- W075: "Duplicate key '{a}'.",
- W076: "Unexpected parameter '{a}' in get {b} function.",
- W077: "Expected a single parameter in set {a} function.",
- W078: "Setter is defined without getter.",
- W079: "Redefinition of '{a}'.",
- W080: "It's not necessary to initialize '{a}' to 'undefined'.",
- W081: "Too many var statements.",
- W082: "Function declarations should not be placed in blocks. " +
- "Use a function expression or move the statement to the top of " +
- "the outer function.",
- W083: "Don't make functions within a loop.",
- W084: "Assignment in conditional expression",
- W085: "Don't use 'with'.",
- W086: "Expected a 'break' statement before '{a}'.",
- W087: "Forgotten 'debugger' statement?",
- W088: "Creating global 'for' variable. Should be 'for (var {a} ...'.",
- W089: "The body of a for in should be wrapped in an if statement to filter " +
- "unwanted properties from the prototype.",
- W090: "'{a}' is not a statement label.",
- W091: "'{a}' is out of scope.",
- W092: "Wrap the /regexp/ literal in parens to disambiguate the slash operator.",
- W093: "Did you mean to return a conditional instead of an assignment?",
- W094: "Unexpected comma.",
- W095: "Expected a string and instead saw {a}.",
- W096: "The '{a}' key may produce unexpected results.",
- W097: "Use the function form of \"use strict\".",
- W098: "'{a}' is defined but never used.",
- W099: "Mixed spaces and tabs.",
- W100: "This character may get silently deleted by one or more browsers.",
- W101: "Line is too long.",
- W102: "Trailing whitespace.",
- W103: "The '{a}' property is deprecated.",
- W104: "'{a}' is only available in JavaScript 1.7.",
- W105: "Unexpected {a} in '{b}'.",
- W106: "Identifier '{a}' is not in camel case.",
- W107: "Script URL.",
- W108: "Strings must use doublequote.",
- W109: "Strings must use singlequote.",
- W110: "Mixed double and single quotes.",
- W112: "Unclosed string.",
- W113: "Control character in string: {a}.",
- W114: "Avoid {a}.",
- W115: "Octal literals are not allowed in strict mode.",
- W116: "Expected '{a}' and instead saw '{b}'.",
- W117: "'{a}' is not defined.",
- W118: "'{a}' is only available in Mozilla JavaScript extensions (use moz option).",
- W119: "'{a}' is only available in ES6 (use esnext option)."
-};
-
-var info = {
- I001: "Comma warnings can be turned off with 'laxcomma'.",
- I002: "Reserved words as properties can be used under the 'es5' option.",
- I003: "ES5 option is now set per default"
-};
-
-exports.errors = {};
-exports.warnings = {};
-exports.info = {};
-
-_.each(errors, function (desc, code) {
- exports.errors[code] = { code: code, desc: desc };
-});
-
-_.each(warnings, function (desc, code) {
- exports.warnings[code] = { code: code, desc: desc };
-});
-
-_.each(info, function (desc, code) {
- exports.info[code] = { code: code, desc: desc };
-});
-
-})()
-},
-{"underscore":12}],
-11:[function(req,module,exports){
-(function(){/*
- * Lexical analysis and token construction.
- */
-
-
-
-var _ = req("underscore");
-var events = req("events");
-var reg = req("./reg.js");
-var state = req("./state.js").state;
-
-var Token = {
- Identifier: 1,
- Punctuator: 2,
- NumericLiteral: 3,
- StringLiteral: 4,
- Comment: 5,
- Keyword: 6,
- NullLiteral: 7,
- BooleanLiteral: 8,
- RegExp: 9
-};
-
-var unicodeLetterTable = [
- 170, 170, 181, 181, 186, 186, 192, 214,
- 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750,
- 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908,
- 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366,
- 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610,
- 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775,
- 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957,
- 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069,
- 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2308, 2361,
- 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431,
- 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482,
- 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529,
- 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608,
- 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654,
- 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736,
- 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785,
- 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867,
- 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929,
- 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970,
- 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001,
- 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123,
- 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212,
- 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261,
- 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344,
- 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455,
- 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526,
- 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716,
- 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743,
- 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760,
- 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805,
- 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138,
- 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198,
- 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4304, 4346,
- 4348, 4348, 4352, 4680, 4682, 4685, 4688, 4694, 4696, 4696,
- 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789,
- 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880,
- 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740,
- 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900,
- 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000,
- 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312,
- 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516,
- 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823,
- 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7104, 7141,
- 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409,
- 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013,
- 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061,
- 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140,
- 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188,
- 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455,
- 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486,
- 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521,
- 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358,
- 11360, 11492, 11499, 11502, 11520, 11557, 11568, 11621,
- 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694,
- 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726,
- 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295,
- 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438,
- 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589,
- 12593, 12686, 12704, 12730, 12784, 12799, 13312, 13312,
- 19893, 19893, 19968, 19968, 40907, 40907, 40960, 42124,
- 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539,
- 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783,
- 42786, 42888, 42891, 42894, 42896, 42897, 42912, 42921,
- 43002, 43009, 43011, 43013, 43015, 43018, 43020, 43042,
- 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259,
- 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442,
- 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595,
- 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697,
- 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714,
- 43739, 43741, 43777, 43782, 43785, 43790, 43793, 43798,
- 43808, 43814, 43816, 43822, 43968, 44002, 44032, 44032,
- 55203, 55203, 55216, 55238, 55243, 55291, 63744, 64045,
- 64048, 64109, 64112, 64217, 64256, 64262, 64275, 64279,
- 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316,
- 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433,
- 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019,
- 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370,
- 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495,
- 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594,
- 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786,
- 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66334,
- 66352, 66378, 66432, 66461, 66464, 66499, 66504, 66511,
- 66513, 66517, 66560, 66717, 67584, 67589, 67592, 67592,
- 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669,
- 67840, 67861, 67872, 67897, 68096, 68096, 68112, 68115,
- 68117, 68119, 68121, 68147, 68192, 68220, 68352, 68405,
- 68416, 68437, 68448, 68466, 68608, 68680, 69635, 69687,
- 69763, 69807, 73728, 74606, 74752, 74850, 77824, 78894,
- 92160, 92728, 110592, 110593, 119808, 119892, 119894, 119964,
- 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980,
- 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069,
- 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121,
- 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144,
- 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570,
- 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686,
- 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779,
- 131072, 131072, 173782, 173782, 173824, 173824, 177972, 177972,
- 177984, 177984, 178205, 178205, 194560, 195101
-];
-
-var identifierStartTable = [];
-
-for (var i = 0; i < 128; i++) {
- identifierStartTable[i] =
- i === 36 || // $
- i >= 65 && i <= 90 || // A-Z
- i === 95 || // _
- i >= 97 && i <= 122; // a-z
-}
-
-var identifierPartTable = [];
-
-for (var i = 0; i < 128; i++) {
- identifierPartTable[i] =
- identifierStartTable[i] || // $, _, A-Z, a-z
- i >= 48 && i <= 57; // 0-9
-}
-
-function asyncTrigger() {
- var _checks = [];
-
- return {
- push: function (fn) {
- _checks.push(fn);
- },
-
- check: function () {
- for (var check = 0; check < _checks.length; ++check) {
- _checks[check]();
- }
-
- _checks.splice(0, _checks.length);
- }
- };
-}
-function Lexer(source) {
- var lines = source;
-
- if (typeof lines === "string") {
- lines = lines
- .replace(/\r\n/g, "\n")
- .replace(/\r/g, "\n")
- .split("\n");
- }
-
- if (lines[0] && lines[0].substr(0, 2) === "#!") {
- lines[0] = "";
- }
-
- this.emitter = new events.EventEmitter();
- this.source = source;
- this.setLines(lines);
- this.prereg = true;
-
- this.line = 0;
- this.char = 1;
- this.from = 1;
- this.input = "";
-
- for (var i = 0; i < state.option.indent; i += 1) {
- state.tab += " ";
- }
-}
-
-Lexer.prototype = {
- _lines: [],
-
- getLines: function () {
- this._lines = state.lines;
- return this._lines;
- },
-
- setLines: function (val) {
- this._lines = val;
- state.lines = this._lines;
- },
- peek: function (i) {
- return this.input.charAt(i || 0);
- },
- skip: function (i) {
- i = i || 1;
- this.char += i;
- this.input = this.input.slice(i);
- },
- on: function (names, listener) {
- names.split(" ").forEach(function (name) {
- this.emitter.on(name, listener);
- }.bind(this));
- },
- trigger: function () {
- this.emitter.emit.apply(this.emitter, Array.prototype.slice.call(arguments));
- },
- triggerAsync: function (type, args, checks, fn) {
- checks.push(function () {
- if (fn()) {
- this.trigger(type, args);
- }
- }.bind(this));
- },
- scanPunctuator: function () {
- var ch1 = this.peek();
- var ch2, ch3, ch4;
-
- switch (ch1) {
- case ".":
- if ((/^[0-9]$/).test(this.peek(1))) {
- return null;
- }
- if (this.peek(1) === "." && this.peek(2) === ".") {
- return {
- type: Token.Punctuator,
- value: "..."
- };
- }
- case "(":
- case ")":
- case ";":
- case ",":
- case "{":
- case "}":
- case "[":
- case "]":
- case ":":
- case "~":
- case "?":
- return {
- type: Token.Punctuator,
- value: ch1
- };
- case "#":
- return {
- type: Token.Punctuator,
- value: ch1
- };
- case "":
- return null;
- }
-
- ch2 = this.peek(1);
- ch3 = this.peek(2);
- ch4 = this.peek(3);
-
- if (ch1 === ">" && ch2 === ">" && ch3 === ">" && ch4 === "=") {
- return {
- type: Token.Punctuator,
- value: ">>>="
- };
- }
-
- if (ch1 === "=" && ch2 === "=" && ch3 === "=") {
- return {
- type: Token.Punctuator,
- value: "==="
- };
- }
-
- if (ch1 === "!" && ch2 === "=" && ch3 === "=") {
- return {
- type: Token.Punctuator,
- value: "!=="
- };
- }
-
- if (ch1 === ">" && ch2 === ">" && ch3 === ">") {
- return {
- type: Token.Punctuator,
- value: ">>>"
- };
- }
-
- if (ch1 === "<" && ch2 === "<" && ch3 === "=") {
- return {
- type: Token.Punctuator,
- value: "<<="
- };
- }
-
- if (ch1 === ">" && ch2 === ">" && ch3 === "=") {
- return {
- type: Token.Punctuator,
- value: ">>="
- };
- }
- if (ch1 === "=" && ch2 === ">") {
- return {
- type: Token.Punctuator,
- value: ch1 + ch2
- };
- }
- if (ch1 === ch2 && ("+-<>&|".indexOf(ch1) >= 0)) {
- return {
- type: Token.Punctuator,
- value: ch1 + ch2
- };
- }
-
- if ("<>=!+-*%&|^".indexOf(ch1) >= 0) {
- if (ch2 === "=") {
- return {
- type: Token.Punctuator,
- value: ch1 + ch2
- };
- }
-
- return {
- type: Token.Punctuator,
- value: ch1
- };
- }
-
- if (ch1 === "/") {
- if (ch2 === "=" && /\/=(?!(\S*\/[gim]?))/.test(this.input)) {
- return {
- type: Token.Punctuator,
- value: "/="
- };
- }
-
- return {
- type: Token.Punctuator,
- value: "/"
- };
- }
-
- return null;
- },
- scanComments: function () {
- var ch1 = this.peek();
- var ch2 = this.peek(1);
- var rest = this.input.substr(2);
- var startLine = this.line;
- var startChar = this.char;
-
- function commentToken(label, body, opt) {
- var special = ["jshint", "jslint", "members", "member", "globals", "global", "exported"];
- var isSpecial = false;
- var value = label + body;
- var commentType = "plain";
- opt = opt || {};
-
- if (opt.isMultiline) {
- value += "*/";
- }
-
- special.forEach(function (str) {
- if (isSpecial) {
- return;
- }
- if (label === "//" && str !== "jshint") {
- return;
- }
-
- if (body.substr(0, str.length) === str) {
- isSpecial = true;
- label = label + str;
- body = body.substr(str.length);
- }
-
- if (!isSpecial && body.charAt(0) === " " && body.substr(1, str.length) === str) {
- isSpecial = true;
- label = label + " " + str;
- body = body.substr(str.length + 1);
- }
-
- if (!isSpecial) {
- return;
- }
-
- switch (str) {
- case "member":
- commentType = "members";
- break;
- case "global":
- commentType = "globals";
- break;
- default:
- commentType = str;
- }
- });
-
- return {
- type: Token.Comment,
- commentType: commentType,
- value: value,
- body: body,
- isSpecial: isSpecial,
- isMultiline: opt.isMultiline || false,
- isMalformed: opt.isMalformed || false
- };
- }
- if (ch1 === "*" && ch2 === "/") {
- this.trigger("error", {
- code: "E018",
- line: startLine,
- character: startChar
- });
-
- this.skip(2);
- return null;
- }
- if (ch1 !== "/" || (ch2 !== "*" && ch2 !== "/")) {
- return null;
- }
- if (ch2 === "/") {
- this.skip(this.input.length); // Skip to the EOL.
- return commentToken("//", rest);
- }
-
- var body = "";
- if (ch2 === "*") {
- this.skip(2);
-
- while (this.peek() !== "*" || this.peek(1) !== "/") {
- if (this.peek() === "") { // End of Line
- body += "\n";
- if (!this.nextLine()) {
- this.trigger("error", {
- code: "E017",
- line: startLine,
- character: startChar
- });
-
- return commentToken("/*", body, {
- isMultiline: true,
- isMalformed: true
- });
- }
- } else {
- body += this.peek();
- this.skip();
- }
- }
-
- this.skip(2);
- return commentToken("/*", body, { isMultiline: true });
- }
- },
- scanKeyword: function () {
- var result = /^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input);
- var keywords = [
- "if", "in", "do", "var", "for", "new",
- "try", "let", "this", "else", "case",
- "void", "with", "enum", "while", "break",
- "catch", "throw", "const", "yield", "class",
- "super", "return", "typeof", "delete",
- "switch", "export", "import", "default",
- "finally", "extends", "function", "continue",
- "debugger", "instanceof"
- ];
-
- if (result && keywords.indexOf(result[0]) >= 0) {
- return {
- type: Token.Keyword,
- value: result[0]
- };
- }
-
- return null;
- },
- scanIdentifier: function () {
- var id = "";
- var index = 0;
- var type, char;
-
- function isUnicodeLetter(code) {
- for (var i = 0; i < unicodeLetterTable.length;) {
- if (code < unicodeLetterTable[i++]) {
- return false;
- }
-
- if (code <= unicodeLetterTable[i++]) {
- return true;
- }
- }
-
- return false;
- }
-
- function isHexDigit(str) {
- return (/^[0-9a-fA-F]$/).test(str);
- }
-
- var readUnicodeEscapeSequence = function () {
- index += 1;
-
- if (this.peek(index) !== "u") {
- return null;
- }
-
- var ch1 = this.peek(index + 1);
- var ch2 = this.peek(index + 2);
- var ch3 = this.peek(index + 3);
- var ch4 = this.peek(index + 4);
- var code;
-
- if (isHexDigit(ch1) && isHexDigit(ch2) && isHexDigit(ch3) && isHexDigit(ch4)) {
- code = parseInt(ch1 + ch2 + ch3 + ch4, 16);
-
- if (isUnicodeLetter(code)) {
- index += 5;
- return "\\u" + ch1 + ch2 + ch3 + ch4;
- }
-
- return null;
- }
-
- return null;
- }.bind(this);
-
- var getIdentifierStart = function () {
- var chr = this.peek(index);
- var code = chr.charCodeAt(0);
-
- if (code === 92) {
- return readUnicodeEscapeSequence();
- }
-
- if (code < 128) {
- if (identifierStartTable[code]) {
- index += 1;
- return chr;
- }
-
- return null;
- }
-
- if (isUnicodeLetter(code)) {
- index += 1;
- return chr;
- }
-
- return null;
- }.bind(this);
-
- var getIdentifierPart = function () {
- var chr = this.peek(index);
- var code = chr.charCodeAt(0);
-
- if (code === 92) {
- return readUnicodeEscapeSequence();
- }
-
- if (code < 128) {
- if (identifierPartTable[code]) {
- index += 1;
- return chr;
- }
-
- return null;
- }
-
- if (isUnicodeLetter(code)) {
- index += 1;
- return chr;
- }
-
- return null;
- }.bind(this);
-
- char = getIdentifierStart();
- if (char === null) {
- return null;
- }
-
- id = char;
- for (;;) {
- char = getIdentifierPart();
-
- if (char === null) {
- break;
- }
-
- id += char;
- }
-
- switch (id) {
- case "true":
- case "false":
- type = Token.BooleanLiteral;
- break;
- case "null":
- type = Token.NullLiteral;
- break;
- default:
- type = Token.Identifier;
- }
-
- return {
- type: type,
- value: id
- };
- },
- scanNumericLiteral: function () {
- var index = 0;
- var value = "";
- var length = this.input.length;
- var char = this.peek(index);
- var bad;
-
- function isDecimalDigit(str) {
- return (/^[0-9]$/).test(str);
- }
-
- function isOctalDigit(str) {
- return (/^[0-7]$/).test(str);
- }
-
- function isHexDigit(str) {
- return (/^[0-9a-fA-F]$/).test(str);
- }
-
- function isIdentifierStart(ch) {
- return (ch === "$") || (ch === "_") || (ch === "\\") ||
- (ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z");
- }
-
- if (char !== "." && !isDecimalDigit(char)) {
- return null;
- }
-
- if (char !== ".") {
- value = this.peek(index);
- index += 1;
- char = this.peek(index);
-
- if (value === "0") {
- if (char === "x" || char === "X") {
- index += 1;
- value += char;
-
- while (index < length) {
- char = this.peek(index);
- if (!isHexDigit(char)) {
- break;
- }
- value += char;
- index += 1;
- }
-
- if (value.length <= 2) { // 0x
- return {
- type: Token.NumericLiteral,
- value: value,
- isMalformed: true
- };
- }
-
- if (index < length) {
- char = this.peek(index);
- if (isIdentifierStart(char)) {
- return null;
- }
- }
-
- return {
- type: Token.NumericLiteral,
- value: value,
- base: 16,
- isMalformed: false
- };
- }
- if (isOctalDigit(char)) {
- index += 1;
- value += char;
- bad = false;
-
- while (index < length) {
- char = this.peek(index);
-
- if (isDecimalDigit(char)) {
- bad = true;
- } else if (!isOctalDigit(char)) {
- break;
- }
- value += char;
- index += 1;
- }
-
- if (index < length) {
- char = this.peek(index);
- if (isIdentifierStart(char)) {
- return null;
- }
- }
-
- return {
- type: Token.NumericLiteral,
- value: value,
- base: 8,
- isMalformed: false
- };
- }
-
- if (isDecimalDigit(char)) {
- index += 1;
- value += char;
- }
- }
-
- while (index < length) {
- char = this.peek(index);
- if (!isDecimalDigit(char)) {
- break;
- }
- value += char;
- index += 1;
- }
- }
-
- if (char === ".") {
- value += char;
- index += 1;
-
- while (index < length) {
- char = this.peek(index);
- if (!isDecimalDigit(char)) {
- break;
- }
- value += char;
- index += 1;
- }
- }
-
- if (char === "e" || char === "E") {
- value += char;
- index += 1;
- char = this.peek(index);
-
- if (char === "+" || char === "-") {
- value += this.peek(index);
- index += 1;
- }
-
- char = this.peek(index);
- if (isDecimalDigit(char)) {
- value += char;
- index += 1;
-
- while (index < length) {
- char = this.peek(index);
- if (!isDecimalDigit(char)) {
- break;
- }
- value += char;
- index += 1;
- }
- } else {
- return null;
- }
- }
-
- if (index < length) {
- char = this.peek(index);
- if (isIdentifierStart(char)) {
- return null;
- }
- }
-
- return {
- type: Token.NumericLiteral,
- value: value,
- base: 10,
- isMalformed: !isFinite(value)
- };
- },
- scanStringLiteral: function (checks) {
- var quote = this.peek();
- if (quote !== "\"" && quote !== "'") {
- return null;
- }
- this.triggerAsync("warning", {
- code: "W108",
- line: this.line,
- character: this.char // +1?
- }, checks, function () { return state.jsonMode && quote !== "\""; });
-
- var value = "";
- var startLine = this.line;
- var startChar = this.char;
- var allowNewLine = false;
-
- this.skip();
-
- while (this.peek() !== quote) {
- while (this.peek() === "") { // End Of Line
-
- if (!allowNewLine) {
- this.trigger("warning", {
- code: "W112",
- line: this.line,
- character: this.char
- });
- } else {
- allowNewLine = false;
-
- this.triggerAsync("warning", {
- code: "W043",
- line: this.line,
- character: this.char
- }, checks, function () { return !state.option.multistr; });
-
- this.triggerAsync("warning", {
- code: "W042",
- line: this.line,
- character: this.char
- }, checks, function () { return state.jsonMode && state.option.multistr; });
- }
-
- if (!this.nextLine()) {
- this.trigger("error", {
- code: "E029",
- line: startLine,
- character: startChar
- });
-
- return {
- type: Token.StringLiteral,
- value: value,
- isUnclosed: true,
- quote: quote
- };
- }
- }
-
- allowNewLine = false;
- var char = this.peek();
- var jump = 1; // A length of a jump, after we're done
-
- if (char < " ") {
- this.trigger("warning", {
- code: "W113",
- line: this.line,
- character: this.char,
- data: [ "<non-printable>" ]
- });
- }
-
- if (char === "\\") {
- this.skip();
- char = this.peek();
-
- switch (char) {
- case "'":
- this.triggerAsync("warning", {
- code: "W114",
- line: this.line,
- character: this.char,
- data: [ "\\'" ]
- }, checks, function () {return state.jsonMode; });
- break;
- case "b":
- char = "\b";
- break;
- case "f":
- char = "\f";
- break;
- case "n":
- char = "\n";
- break;
- case "r":
- char = "\r";
- break;
- case "t":
- char = "\t";
- break;
- case "0":
- char = "\0";
- var n = parseInt(this.peek(1), 10);
- this.triggerAsync("warning", {
- code: "W115",
- line: this.line,
- character: this.char
- }, checks,
- function () { return n >= 0 && n <= 7 && state.directive["use strict"]; });
- break;
- case "u":
- char = String.fromCharCode(parseInt(this.input.substr(1, 4), 16));
- jump = 5;
- break;
- case "v":
- this.triggerAsync("warning", {
- code: "W114",
- line: this.line,
- character: this.char,
- data: [ "\\v" ]
- }, checks, function () { return state.jsonMode; });
-
- char = "\v";
- break;
- case "x":
- var x = parseInt(this.input.substr(1, 2), 16);
-
- this.triggerAsync("warning", {
- code: "W114",
- line: this.line,
- character: this.char,
- data: [ "\\x-" ]
- }, checks, function () { return state.jsonMode; });
-
- char = String.fromCharCode(x);
- jump = 3;
- break;
- case "\\":
- case "\"":
- case "/":
- break;
- case "":
- allowNewLine = true;
- char = "";
- break;
- case "!":
- if (value.slice(value.length - 2) === "<") {
- break;
- }
- default:
- this.trigger("warning", {
- code: "W044",
- line: this.line,
- character: this.char
- });
- }
- }
-
- value += char;
- this.skip(jump);
- }
-
- this.skip();
- return {
- type: Token.StringLiteral,
- value: value,
- isUnclosed: false,
- quote: quote
- };
- },
- scanRegExp: function () {
- var index = 0;
- var length = this.input.length;
- var char = this.peek();
- var value = char;
- var body = "";
- var flags = [];
- var malformed = false;
- var isCharSet = false;
- var terminated;
-
- var scanUnexpectedChars = function () {
- if (char < " ") {
- malformed = true;
- this.trigger("warning", {
- code: "W048",
- line: this.line,
- character: this.char
- });
- }
- if (char === "<") {
- malformed = true;
- this.trigger("warning", {
- code: "W049",
- line: this.line,
- character: this.char,
- data: [ char ]
- });
- }
- }.bind(this);
- if (!this.prereg || char !== "/") {
- return null;
- }
-
- index += 1;
- terminated = false;
-
- while (index < length) {
- char = this.peek(index);
- value += char;
- body += char;
-
- if (isCharSet) {
- if (char === "]") {
- if (this.peek(index - 1) !== "\\" || this.peek(index - 2) === "\\") {
- isCharSet = false;
- }
- }
-
- if (char === "\\") {
- index += 1;
- char = this.peek(index);
- body += char;
- value += char;
-
- scanUnexpectedChars();
- }
-
- index += 1;
- continue;
- }
-
- if (char === "\\") {
- index += 1;
- char = this.peek(index);
- body += char;
- value += char;
-
- scanUnexpectedChars();
-
- if (char === "/") {
- index += 1;
- continue;
- }
-
- if (char === "[") {
- index += 1;
- continue;
- }
- }
-
- if (char === "[") {
- isCharSet = true;
- index += 1;
- continue;
- }
-
- if (char === "/") {
- body = body.substr(0, body.length - 1);
- terminated = true;
- index += 1;
- break;
- }
-
- index += 1;
- }
-
- if (!terminated) {
- this.trigger("error", {
- code: "E015",
- line: this.line,
- character: this.from
- });
-
- return void this.trigger("fatal", {
- line: this.line,
- from: this.from
- });
- }
-
- while (index < length) {
- char = this.peek(index);
- if (!/[gim]/.test(char)) {
- break;
- }
- flags.push(char);
- value += char;
- index += 1;
- }
-
- try {
- new RegExp(body, flags.join(""));
- } catch (err) {
- malformed = true;
- this.trigger("error", {
- code: "E016",
- line: this.line,
- character: this.char,
- data: [ err.message ] // Platform dependent!
- });
- }
-
- return {
- type: Token.RegExp,
- value: value,
- flags: flags,
- isMalformed: malformed
- };
- },
- scanMixedSpacesAndTabs: function () {
- var at, match;
-
- if (state.option.smarttabs) {
- match = this.input.match(/(\/\/|^\s?\*)? \t/);
- at = match && !match[1] ? 0 : -1;
- } else {
- at = this.input.search(/ \t|\t [^\*]/);
- }
-
- return at;
- },
- scanUnsafeChars: function () {
- return this.input.search(reg.unsafeChars);
- },
- next: function (checks) {
- this.from = this.char;
- var start;
- if (/\s/.test(this.peek())) {
- start = this.char;
-
- while (/\s/.test(this.peek())) {
- this.from += 1;
- this.skip();
- }
-
- if (this.peek() === "") { // EOL
- if (!/^\s*$/.test(this.getLines()[this.line - 1]) && state.option.trailing) {
- this.trigger("warning", { code: "W102", line: this.line, character: start });
- }
- }
- }
-
- var match = this.scanComments() ||
- this.scanStringLiteral(checks);
-
- if (match) {
- return match;
- }
-
- match =
- this.scanRegExp() ||
- this.scanPunctuator() ||
- this.scanKeyword() ||
- this.scanIdentifier() ||
- this.scanNumericLiteral();
-
- if (match) {
- this.skip(match.value.length);
- return match;
- }
-
- return null;
- },
- nextLine: function () {
- var char;
-
- if (this.line >= this.getLines().length) {
- return false;
- }
-
- this.input = this.getLines()[this.line];
- this.line += 1;
- this.char = 1;
- this.from = 1;
-
- char = this.scanMixedSpacesAndTabs();
- if (char >= 0) {
- this.trigger("warning", { code: "W099", line: this.line, character: char + 1 });
- }
-
- this.input = this.input.replace(/\t/g, state.tab);
- char = this.scanUnsafeChars();
-
- if (char >= 0) {
- this.trigger("warning", { code: "W100", line: this.line, character: char });
- }
-
- if (state.option.maxlen && state.option.maxlen < this.input.length) {
- this.trigger("warning", { code: "W101", line: this.line, character: this.input.length });
- }
-
- return true;
- },
- start: function () {
- this.nextLine();
- },
- token: function () {
- var checks = asyncTrigger();
- var token;
-
-
- function isReserved(token, isProperty) {
- if (!token.reserved) {
- return false;
- }
-
- if (token.meta && token.meta.isFutureReservedWord) {
- if (state.option.inES5(true) && !token.meta.es5) {
- return false;
- }
- if (token.meta.strictOnly) {
- if (!state.option.strict && !state.directive["use strict"]) {
- return false;
- }
- }
-
- if (isProperty) {
- return false;
- }
- }
-
- return true;
- }
- var create = function (type, value, isProperty) {
- var obj;
-
- if (type !== "(endline)" && type !== "(end)") {
- this.prereg = false;
- }
-
- if (type === "(punctuator)") {
- switch (value) {
- case ".":
- case ")":
- case "~":
- case "#":
- case "]":
- this.prereg = false;
- break;
- default:
- this.prereg = true;
- }
-
- obj = Object.create(state.syntax[value] || state.syntax["(error)"]);
- }
-
- if (type === "(identifier)") {
- if (value === "return" || value === "case" || value === "typeof") {
- this.prereg = true;
- }
-
- if (_.has(state.syntax, value)) {
- obj = Object.create(state.syntax[value] || state.syntax["(error)"]);
- if (!isReserved(obj, isProperty && type === "(identifier)")) {
- obj = null;
- }
- }
- }
-
- if (!obj) {
- obj = Object.create(state.syntax[type]);
- }
-
- obj.identifier = (type === "(identifier)");
- obj.type = obj.type || type;
- obj.value = value;
- obj.line = this.line;
- obj.character = this.char;
- obj.from = this.from;
-
- if (isProperty && obj.identifier) {
- obj.isProperty = isProperty;
- }
-
- obj.check = checks.check;
-
- return obj;
- }.bind(this);
-
- for (;;) {
- if (!this.input.length) {
- return create(this.nextLine() ? "(endline)" : "(end)", "");
- }
-
- token = this.next(checks);
-
- if (!token) {
- if (this.input.length) {
- this.trigger("error", {
- code: "E024",
- line: this.line,
- character: this.char,
- data: [ this.peek() ]
- });
-
- this.input = "";
- }
-
- continue;
- }
-
- switch (token.type) {
- case Token.StringLiteral:
- this.triggerAsync("String", {
- line: this.line,
- char: this.char,
- from: this.from,
- value: token.value,
- quote: token.quote
- }, checks, function () { return true; });
-
- return create("(string)", token.value);
- case Token.Identifier:
- this.trigger("Identifier", {
- line: this.line,
- char: this.char,
- from: this.form,
- name: token.value,
- isProperty: state.tokens.curr.id === "."
- });
- case Token.Keyword:
- case Token.NullLiteral:
- case Token.BooleanLiteral:
- return create("(identifier)", token.value, state.tokens.curr.id === ".");
-
- case Token.NumericLiteral:
- if (token.isMalformed) {
- this.trigger("warning", {
- code: "W045",
- line: this.line,
- character: this.char,
- data: [ token.value ]
- });
- }
-
- this.triggerAsync("warning", {
- code: "W114",
- line: this.line,
- character: this.char,
- data: [ "0x-" ]
- }, checks, function () { return token.base === 16 && state.jsonMode; });
-
- this.triggerAsync("warning", {
- code: "W115",
- line: this.line,
- character: this.char
- }, checks, function () {
- return state.directive["use strict"] && token.base === 8;
- });
-
- this.trigger("Number", {
- line: this.line,
- char: this.char,
- from: this.from,
- value: token.value,
- base: token.base,
- isMalformed: token.malformed
- });
-
- return create("(number)", token.value);
-
- case Token.RegExp:
- return create("(regexp)", token.value);
-
- case Token.Comment:
- state.tokens.curr.comment = true;
-
- if (token.isSpecial) {
- return {
- value: token.value,
- body: token.body,
- type: token.commentType,
- isSpecial: token.isSpecial,
- line: this.line,
- character: this.char,
- from: this.from
- };
- }
-
- break;
-
- case "":
- break;
-
- default:
- return create("(punctuator)", token.value);
- }
- }
- }
-};
-
-exports.Lexer = Lexer;
-
-})()
-},
-{"events":2,"./reg.js":4,"./state.js":5,"underscore":12}],
-12:[function(req,module,exports){
-(function(){// Underscore.js 1.4.4
-
-(function() {
- var root = this;
- var previousUnderscore = root._;
- var breaker = {};
- var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
- var push = ArrayProto.push,
- slice = ArrayProto.slice,
- concat = ArrayProto.concat,
- toString = ObjProto.toString,
- hasOwnProperty = ObjProto.hasOwnProperty;
- var
- nativeForEach = ArrayProto.forEach,
- nativeMap = ArrayProto.map,
- nativeReduce = ArrayProto.reduce,
- nativeReduceRight = ArrayProto.reduceRight,
- nativeFilter = ArrayProto.filter,
- nativeEvery = ArrayProto.every,
- nativeSome = ArrayProto.some,
- nativeIndexOf = ArrayProto.indexOf,
- nativeLastIndexOf = ArrayProto.lastIndexOf,
- nativeIsArray = Array.isArray,
- nativeKeys = Object.keys,
- nativeBind = FuncProto.bind;
- var _ = function(obj) {
- if (obj instanceof _) return obj;
- if (!(this instanceof _)) return new _(obj);
- this._wrapped = obj;
- };
- if (typeof exports !== 'undefined') {
- if (typeof module !== 'undefined' && module.exports) {
- exports = module.exports = _;
- }
- exports._ = _;
- } else {
- root._ = _;
- }
- _.VERSION = '1.4.4';
- var each = _.each = _.forEach = function(obj, iterator, context) {
- if (obj == null) return;
- if (nativeForEach && obj.forEach === nativeForEach) {
- obj.forEach(iterator, context);
- } else if (obj.length === +obj.length) {
- for (var i = 0, l = obj.length; i < l; i++) {
- if (iterator.call(context, obj[i], i, obj) === breaker) return;
- }
- } else {
- for (var key in obj) {
- if (_.has(obj, key)) {
- if (iterator.call(context, obj[key], key, obj) === breaker) return;
- }
- }
- }
- };
- _.map = _.collect = function(obj, iterator, context) {
- var results = [];
- if (obj == null) return results;
- if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
- each(obj, function(value, index, list) {
- results[results.length] = iterator.call(context, value, index, list);
- });
- return results;
- };
-
- var reduceError = 'Reduce of empty array with no initial value';
- _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
- var initial = arguments.length > 2;
- if (obj == null) obj = [];
- if (nativeReduce && obj.reduce === nativeReduce) {
- if (context) iterator = _.bind(iterator, context);
- return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
- }
- each(obj, function(value, index, list) {
- if (!initial) {
- memo = value;
- initial = true;
- } else {
- memo = iterator.call(context, memo, value, index, list);
- }
- });
- if (!initial) throw new TypeError(reduceError);
- return memo;
- };
- _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
- var initial = arguments.length > 2;
- if (obj == null) obj = [];
- if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
- if (context) iterator = _.bind(iterator, context);
- return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
- }
- var length = obj.length;
- if (length !== +length) {
- var keys = _.keys(obj);
- length = keys.length;
- }
- each(obj, function(value, index, list) {
- index = keys ? keys[--length] : --length;
- if (!initial) {
- memo = obj[index];
- initial = true;
- } else {
- memo = iterator.call(context, memo, obj[index], index, list);
- }
- });
- if (!initial) throw new TypeError(reduceError);
- return memo;
- };
- _.find = _.detect = function(obj, iterator, context) {
- var result;
- any(obj, function(value, index, list) {
- if (iterator.call(context, value, index, list)) {
- result = value;
- return true;
- }
- });
- return result;
- };
- _.filter = _.select = function(obj, iterator, context) {
- var results = [];
- if (obj == null) return results;
- if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
- each(obj, function(value, index, list) {
- if (iterator.call(context, value, index, list)) results[results.length] = value;
- });
- return results;
- };
- _.reject = function(obj, iterator, context) {
- return _.filter(obj, function(value, index, list) {
- return !iterator.call(context, value, index, list);
- }, context);
- };
- _.every = _.all = function(obj, iterator, context) {
- iterator || (iterator = _.identity);
- var result = true;
- if (obj == null) return result;
- if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
- each(obj, function(value, index, list) {
- if (!(result = result && iterator.call(context, value, index, list))) return breaker;
- });
- return !!result;
- };
- var any = _.some = _.any = function(obj, iterator, context) {
- iterator || (iterator = _.identity);
- var result = false;
- if (obj == null) return result;
- if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
- each(obj, function(value, index, list) {
- if (result || (result = iterator.call(context, value, index, list))) return breaker;
- });
- return !!result;
- };
- _.contains = _.include = function(obj, target) {
- if (obj == null) return false;
- if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
- return any(obj, function(value) {
- return value === target;
- });
- };
- _.invoke = function(obj, method) {
- var args = slice.call(arguments, 2);
- var isFunc = _.isFunction(method);
- return _.map(obj, function(value) {
- return (isFunc ? method : value[method]).apply(value, args);
- });
- };
- _.pluck = function(obj, key) {
- return _.map(obj, function(value){ return value[key]; });
- };
- _.where = function(obj, attrs, first) {
- if (_.isEmpty(attrs)) return first ? null : [];
- return _[first ? 'find' : 'filter'](obj, function(value) {
- for (var key in attrs) {
- if (attrs[key] !== value[key]) return false;
- }
- return true;
- });
- };
- _.findWhere = function(obj, attrs) {
- return _.where(obj, attrs, true);
- };
- _.max = function(obj, iterator, context) {
- if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) {
- return Math.max.apply(Math, obj);
- }
- if (!iterator && _.isEmpty(obj)) return -Infinity;
- var result = {computed : -Infinity, value: -Infinity};
- each(obj, function(value, index, list) {
- var computed = iterator ? iterator.call(context, value, index, list) : value;
- computed >= result.computed && (result = {value : value, computed : computed});
- });
- return result.value;
- };
- _.min = function(obj, iterator, context) {
- if (!iterator && _.isArray(obj) && obj[0] === +obj[0] && obj.length < 65535) {
- return Math.min.apply(Math, obj);
- }
- if (!iterator && _.isEmpty(obj)) return Infinity;
- var result = {computed : Infinity, value: Infinity};
- each(obj, function(value, index, list) {
- var computed = iterator ? iterator.call(context, value, index, list) : value;
- computed < result.computed && (result = {value : value, computed : computed});
- });
- return result.value;
- };
- _.shuffle = function(obj) {
- var rand;
- var index = 0;
- var shuffled = [];
- each(obj, function(value) {
- rand = _.random(index++);
- shuffled[index - 1] = shuffled[rand];
- shuffled[rand] = value;
- });
- return shuffled;
- };
- var lookupIterator = function(value) {
- return _.isFunction(value) ? value : function(obj){ return obj[value]; };
- };
- _.sortBy = function(obj, value, context) {
- var iterator = lookupIterator(value);
- return _.pluck(_.map(obj, function(value, index, list) {
- return {
- value : value,
- index : index,
- criteria : iterator.call(context, value, index, list)
- };
- }).sort(function(left, right) {
- var a = left.criteria;
- var b = right.criteria;
- if (a !== b) {
- if (a > b || a === void 0) return 1;
- if (a < b || b === void 0) return -1;
- }
- return left.index < right.index ? -1 : 1;
- }), 'value');
- };
- var group = function(obj, value, context, behavior) {
- var result = {};
- var iterator = lookupIterator(value || _.identity);
- each(obj, function(value, index) {
- var key = iterator.call(context, value, index, obj);
- behavior(result, key, value);
- });
- return result;
- };
- _.groupBy = function(obj, value, context) {
- return group(obj, value, context, function(result, key, value) {
- (_.has(result, key) ? result[key] : (result[key] = [])).push(value);
- });
- };
- _.countBy = function(obj, value, context) {
- return group(obj, value, context, function(result, key) {
- if (!_.has(result, key)) result[key] = 0;
- result[key]++;
- });
- };
- _.sortedIndex = function(array, obj, iterator, context) {
- iterator = iterator == null ? _.identity : lookupIterator(iterator);
- var value = iterator.call(context, obj);
- var low = 0, high = array.length;
- while (low < high) {
- var mid = (low + high) >>> 1;
- iterator.call(context, array[mid]) < value ? low = mid + 1 : high = mid;
- }
- return low;
- };
- _.toArray = function(obj) {
- if (!obj) return [];
- if (_.isArray(obj)) return slice.call(obj);
- if (obj.length === +obj.length) return _.map(obj, _.identity);
- return _.values(obj);
- };
- _.size = function(obj) {
- if (obj == null) return 0;
- return (obj.length === +obj.length) ? obj.length : _.keys(obj).length;
- };
- _.first = _.head = _.take = function(array, n, guard) {
- if (array == null) return void 0;
- return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
- };
- _.initial = function(array, n, guard) {
- return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
- };
- _.last = function(array, n, guard) {
- if (array == null) return void 0;
- if ((n != null) && !guard) {
- return slice.call(array, Math.max(array.length - n, 0));
- } else {
- return array[array.length - 1];
- }
- };
- _.rest = _.tail = _.drop = function(array, n, guard) {
- return slice.call(array, (n == null) || guard ? 1 : n);
- };
- _.compact = function(array) {
- return _.filter(array, _.identity);
- };
- var flatten = function(input, shallow, output) {
- each(input, function(value) {
- if (_.isArray(value)) {
- shallow ? push.apply(output, value) : flatten(value, shallow, output);
- } else {
- output.push(value);
- }
- });
- return output;
- };
- _.flatten = function(array, shallow) {
- return flatten(array, shallow, []);
- };
- _.without = function(array) {
- return _.difference(array, slice.call(arguments, 1));
- };
- _.uniq = _.unique = function(array, isSorted, iterator, context) {
- if (_.isFunction(isSorted)) {
- context = iterator;
- iterator = isSorted;
- isSorted = false;
- }
- var initial = iterator ? _.map(array, iterator, context) : array;
- var results = [];
- var seen = [];
- each(initial, function(value, index) {
- if (isSorted ? (!index || seen[seen.length - 1] !== value) : !_.contains(seen, value)) {
- seen.push(value);
- results.push(array[index]);
- }
- });
- return results;
- };
- _.union = function() {
- return _.uniq(concat.apply(ArrayProto, arguments));
- };
- _.intersection = function(array) {
- var rest = slice.call(arguments, 1);
- return _.filter(_.uniq(array), function(item) {
- return _.every(rest, function(other) {
- return _.indexOf(other, item) >= 0;
- });
- });
- };
- _.difference = function(array) {
- var rest = concat.apply(ArrayProto, slice.call(arguments, 1));
- return _.filter(array, function(value){ return !_.contains(rest, value); });
- };
- _.zip = function() {
- var args = slice.call(arguments);
- var length = _.max(_.pluck(args, 'length'));
- var results = new Array(length);
- for (var i = 0; i < length; i++) {
- results[i] = _.pluck(args, "" + i);
- }
- return results;
- };
- _.object = function(list, values) {
- if (list == null) return {};
- var result = {};
- for (var i = 0, l = list.length; i < l; i++) {
- if (values) {
- result[list[i]] = values[i];
- } else {
- result[list[i][0]] = list[i][1];
- }
- }
- return result;
- };
- _.indexOf = function(array, item, isSorted) {
- if (array == null) return -1;
- var i = 0, l = array.length;
- if (isSorted) {
- if (typeof isSorted == 'number') {
- i = (isSorted < 0 ? Math.max(0, l + isSorted) : isSorted);
- } else {
- i = _.sortedIndex(array, item);
- return array[i] === item ? i : -1;
- }
- }
- if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item, isSorted);
- for (; i < l; i++) if (array[i] === item) return i;
- return -1;
- };
- _.lastIndexOf = function(array, item, from) {
- if (array == null) return -1;
- var hasIndex = from != null;
- if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) {
- return hasIndex ? array.lastIndexOf(item, from) : array.lastIndexOf(item);
- }
- var i = (hasIndex ? from : array.length);
- while (i--) if (array[i] === item) return i;
- return -1;
- };
- _.range = function(start, stop, step) {
- if (arguments.length <= 1) {
- stop = start || 0;
- start = 0;
- }
- step = arguments[2] || 1;
-
- var len = Math.max(Math.ceil((stop - start) / step), 0);
- var idx = 0;
- var range = new Array(len);
-
- while(idx < len) {
- range[idx++] = start;
- start += step;
- }
-
- return range;
- };
- _.bind = function(func, context) {
- if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
- var args = slice.call(arguments, 2);
- return function() {
- return func.apply(context, args.concat(slice.call(arguments)));
- };
- };
- _.partial = function(func) {
- var args = slice.call(arguments, 1);
- return function() {
- return func.apply(this, args.concat(slice.call(arguments)));
- };
- };
- _.bindAll = function(obj) {
- var funcs = slice.call(arguments, 1);
- if (funcs.length === 0) funcs = _.functions(obj);
- each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
- return obj;
- };
- _.memoize = function(func, hasher) {
- var memo = {};
- hasher || (hasher = _.identity);
- return function() {
- var key = hasher.apply(this, arguments);
- return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
- };
- };
- _.delay = function(func, wait) {
- var args = slice.call(arguments, 2);
- return setTimeout(function(){ return func.apply(null, args); }, wait);
- };
- _.defer = function(func) {
- return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
- };
- _.throttle = function(func, wait) {
- var context, args, timeout, result;
- var previous = 0;
- var later = function() {
- previous = new Date;
- timeout = null;
- result = func.apply(context, args);
- };
- return function() {
- var now = new Date;
- var remaining = wait - (now - previous);
- context = this;
- args = arguments;
- if (remaining <= 0) {
- clearTimeout(timeout);
- timeout = null;
- previous = now;
- result = func.apply(context, args);
- } else if (!timeout) {
- timeout = setTimeout(later, remaining);
- }
- return result;
- };
- };
- _.debounce = function(func, wait, immediate) {
- var timeout, result;
- return function() {
- var context = this, args = arguments;
- var later = function() {
- timeout = null;
- if (!immediate) result = func.apply(context, args);
- };
- var callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- if (callNow) result = func.apply(context, args);
- return result;
- };
- };
- _.once = function(func) {
- var ran = false, memo;
- return function() {
- if (ran) return memo;
- ran = true;
- memo = func.apply(this, arguments);
- func = null;
- return memo;
- };
- };
- _.wrap = function(func, wrapper) {
- return function() {
- var args = [func];
- push.apply(args, arguments);
- return wrapper.apply(this, args);
- };
- };
- _.compose = function() {
- var funcs = arguments;
- return function() {
- var args = arguments;
- for (var i = funcs.length - 1; i >= 0; i--) {
- args = [funcs[i].apply(this, args)];
- }
- return args[0];
- };
- };
- _.after = function(times, func) {
- if (times <= 0) return func();
- return function() {
- if (--times < 1) {
- return func.apply(this, arguments);
- }
- };
- };
- _.keys = nativeKeys || function(obj) {
- if (obj !== Object(obj)) throw new TypeError('Invalid object');
- var keys = [];
- for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key;
- return keys;
- };
- _.values = function(obj) {
- var values = [];
- for (var key in obj) if (_.has(obj, key)) values.push(obj[key]);
- return values;
- };
- _.pairs = function(obj) {
- var pairs = [];
- for (var key in obj) if (_.has(obj, key)) pairs.push([key, obj[key]]);
- return pairs;
- };
- _.invert = function(obj) {
- var result = {};
- for (var key in obj) if (_.has(obj, key)) result[obj[key]] = key;
- return result;
- };
- _.functions = _.methods = function(obj) {
- var names = [];
- for (var key in obj) {
- if (_.isFunction(obj[key])) names.push(key);
- }
- return names.sort();
- };
- _.extend = function(obj) {
- each(slice.call(arguments, 1), function(source) {
- if (source) {
- for (var prop in source) {
- obj[prop] = source[prop];
- }
- }
- });
- return obj;
- };
- _.pick = function(obj) {
- var copy = {};
- var keys = concat.apply(ArrayProto, slice.call(arguments, 1));
- each(keys, function(key) {
- if (key in obj) copy[key] = obj[key];
- });
- return copy;
- };
- _.omit = function(obj) {
- var copy = {};
- var keys = concat.apply(ArrayProto, slice.call(arguments, 1));
- for (var key in obj) {
- if (!_.contains(keys, key)) copy[key] = obj[key];
- }
- return copy;
- };
- _.defaults = function(obj) {
- each(slice.call(arguments, 1), function(source) {
- if (source) {
- for (var prop in source) {
- if (obj[prop] == null) obj[prop] = source[prop];
- }
- }
- });
- return obj;
- };
- _.clone = function(obj) {
- if (!_.isObject(obj)) return obj;
- return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
- };
- _.tap = function(obj, interceptor) {
- interceptor(obj);
- return obj;
- };
- var eq = function(a, b, aStack, bStack) {
- if (a === b) return a !== 0 || 1 / a == 1 / b;
- if (a == null || b == null) return a === b;
- if (a instanceof _) a = a._wrapped;
- if (b instanceof _) b = b._wrapped;
- var className = toString.call(a);
- if (className != toString.call(b)) return false;
- switch (className) {
- case '[object String]':
- return a == String(b);
- case '[object Number]':
- return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
- case '[object Date]':
- case '[object Boolean]':
- return +a == +b;
- case '[object RegExp]':
- return a.source == b.source &&
- a.global == b.global &&
- a.multiline == b.multiline &&
- a.ignoreCase == b.ignoreCase;
- }
- if (typeof a != 'object' || typeof b != 'object') return false;
- var length = aStack.length;
- while (length--) {
- if (aStack[length] == a) return bStack[length] == b;
- }
- aStack.push(a);
- bStack.push(b);
- var size = 0, result = true;
- if (className == '[object Array]') {
- size = a.length;
- result = size == b.length;
- if (result) {
- while (size--) {
- if (!(result = eq(a[size], b[size], aStack, bStack))) break;
- }
- }
- } else {
- var aCtor = a.constructor, bCtor = b.constructor;
- if (aCtor !== bCtor && !(_.isFunction(aCtor) && (aCtor instanceof aCtor) &&
- _.isFunction(bCtor) && (bCtor instanceof bCtor))) {
- return false;
- }
- for (var key in a) {
- if (_.has(a, key)) {
- size++;
- if (!(result = _.has(b, key) && eq(a[key], b[key], aStack, bStack))) break;
- }
- }
- if (result) {
- for (key in b) {
- if (_.has(b, key) && !(size--)) break;
- }
- result = !size;
- }
- }
- aStack.pop();
- bStack.pop();
- return result;
- };
- _.isEqual = function(a, b) {
- return eq(a, b, [], []);
- };
- _.isEmpty = function(obj) {
- if (obj == null) return true;
- if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
- for (var key in obj) if (_.has(obj, key)) return false;
- return true;
- };
- _.isElement = function(obj) {
- return !!(obj && obj.nodeType === 1);
- };
- _.isArray = nativeIsArray || function(obj) {
- return toString.call(obj) == '[object Array]';
- };
- _.isObject = function(obj) {
- return obj === Object(obj);
- };
- each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp'], function(name) {
- _['is' + name] = function(obj) {
- return toString.call(obj) == '[object ' + name + ']';
- };
- });
- if (!_.isArguments(arguments)) {
- _.isArguments = function(obj) {
- return !!(obj && _.has(obj, 'callee'));
- };
- }
- if (typeof (/./) !== 'function') {
- _.isFunction = function(obj) {
- return typeof obj === 'function';
- };
- }
- _.isFinite = function(obj) {
- return isFinite(obj) && !isNaN(parseFloat(obj));
- };
- _.isNaN = function(obj) {
- return _.isNumber(obj) && obj != +obj;
- };
- _.isBoolean = function(obj) {
- return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
- };
- _.isNull = function(obj) {
- return obj === null;
- };
- _.isUndefined = function(obj) {
- return obj === void 0;
- };
- _.has = function(obj, key) {
- return hasOwnProperty.call(obj, key);
- };
- _.noConflict = function() {
- root._ = previousUnderscore;
- return this;
- };
- _.identity = function(value) {
- return value;
- };
- _.times = function(n, iterator, context) {
- var accum = Array(n);
- for (var i = 0; i < n; i++) accum[i] = iterator.call(context, i);
- return accum;
- };
- _.random = function(min, max) {
- if (max == null) {
- max = min;
- min = 0;
- }
- return min + Math.floor(Math.random() * (max - min + 1));
- };
- var entityMap = {
- escape: {
- '&': '&amp;',
- '<': '&lt;',
- '>': '&gt;',
- '"': '&quot;',
- "'": '&#x27;',
- '/': '&#x2F;'
- }
- };
- entityMap.unescape = _.invert(entityMap.escape);
- var entityRegexes = {
- escape: new RegExp('[' + _.keys(entityMap.escape).join('') + ']', 'g'),
- unescape: new RegExp('(' + _.keys(entityMap.unescape).join('|') + ')', 'g')
- };
- _.each(['escape', 'unescape'], function(method) {
- _[method] = function(string) {
- if (string == null) return '';
- return ('' + string).replace(entityRegexes[method], function(match) {
- return entityMap[method][match];
- });
- };
- });
- _.result = function(object, property) {
- if (object == null) return null;
- var value = object[property];
- return _.isFunction(value) ? value.call(object) : value;
- };
- _.mixin = function(obj) {
- each(_.functions(obj), function(name){
- var func = _[name] = obj[name];
- _.prototype[name] = function() {
- var args = [this._wrapped];
- push.apply(args, arguments);
- return result.call(this, func.apply(_, args));
- };
- });
- };
- var idCounter = 0;
- _.uniqueId = function(prefix) {
- var id = ++idCounter + '';
- return prefix ? prefix + id : id;
- };
- _.templateSettings = {
- evaluate : /<%([\s\S]+?)%>/g,
- interpolate : /<%=([\s\S]+?)%>/g,
- escape : /<%-([\s\S]+?)%>/g
- };
- var noMatch = /(.)^/;
- var escapes = {
- "'": "'",
- '\\': '\\',
- '\r': 'r',
- '\n': 'n',
- '\t': 't',
- '\u2028': 'u2028',
- '\u2029': 'u2029'
- };
-
- var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g;
- _.template = function(text, data, settings) {
- var render;
- settings = _.defaults({}, settings, _.templateSettings);
- var matcher = new RegExp([
- (settings.escape || noMatch).source,
- (settings.interpolate || noMatch).source,
- (settings.evaluate || noMatch).source
- ].join('|') + '|$', 'g');
- var index = 0;
- var source = "__p+='";
- text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
- source += text.slice(index, offset)
- .replace(escaper, function(match) { return '\\' + escapes[match]; });
-
- if (escape) {
- source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
- }
- if (interpolate) {
- source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
- }
- if (evaluate) {
- source += "';\n" + evaluate + "\n__p+='";
- }
- index = offset + match.length;
- return match;
- });
- source += "';\n";
- if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n';
-
- source = "var __t,__p='',__j=Array.prototype.join," +
- "print=function(){__p+=__j.call(arguments,'');};\n" +
- source + "return __p;\n";
-
- try {
- render = new Function(settings.variable || 'obj', '_', source);
- } catch (e) {
- e.source = source;
- throw e;
- }
-
- if (data) return render(data, _);
- var template = function(data) {
- return render.call(this, data, _);
- };
- template.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}';
-
- return template;
- };
- _.chain = function(obj) {
- return _(obj).chain();
- };
- var result = function(obj) {
- return this._chain ? _(obj).chain() : obj;
- };
- _.mixin(_);
- each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
- var method = ArrayProto[name];
- _.prototype[name] = function() {
- var obj = this._wrapped;
- method.apply(obj, arguments);
- if ((name == 'shift' || name == 'splice') && obj.length === 0) delete obj[0];
- return result.call(this, obj);
- };
- });
- each(['concat', 'join', 'slice'], function(name) {
- var method = ArrayProto[name];
- _.prototype[name] = function() {
- return result.call(this, method.apply(this._wrapped, arguments));
- };
- });
-
- _.extend(_.prototype, {
- chain: function() {
- this._chain = true;
- return this;
- },
- value: function() {
- return this._wrapped;
- }
-
- });
-
-}).call(this);
-
-})()
-},
-{}]
-},{},["E/GbHF"])
-;
-
-function req() {return require.apply(this, arguments)}
-module.exports = req("jshint");
-
-}); \ No newline at end of file
diff --git a/js/vendor/ace/src-noconflict/worker-json.js b/js/vendor/ace/src-noconflict/worker-json.js
deleted file mode 100644
index 6ba5a8d..0000000
--- a/js/vendor/ace/src-noconflict/worker-json.js
+++ /dev/null
@@ -1,2251 +0,0 @@
-"no use strict";
-;(function(window) {
-if (typeof window.window != "undefined" && window.document) {
- return;
-}
-
-window.console = function() {
- var msgs = Array.prototype.slice.call(arguments, 0);
- postMessage({type: "log", data: msgs});
-};
-window.console.error =
-window.console.warn =
-window.console.log =
-window.console.trace = window.console;
-
-window.window = window;
-window.ace = window;
-
-window.normalizeModule = function(parentId, moduleName) {
- if (moduleName.indexOf("!") !== -1) {
- var chunks = moduleName.split("!");
- return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
- }
- if (moduleName.charAt(0) == ".") {
- var base = parentId.split("/").slice(0, -1).join("/");
- moduleName = base + "/" + moduleName;
-
- while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
- var previous = moduleName;
- moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
- }
- }
-
- return moduleName;
-};
-
-window.require = function(parentId, id) {
- if (!id) {
- id = parentId
- parentId = null;
- }
- if (!id.charAt)
- throw new Error("worker.js require() accepts only (parentId, id) as arguments");
-
- id = normalizeModule(parentId, id);
-
- var module = require.modules[id];
- if (module) {
- if (!module.initialized) {
- module.initialized = true;
- module.exports = module.factory().exports;
- }
- return module.exports;
- }
-
- var chunks = id.split("/");
- chunks[0] = require.tlns[chunks[0]] || chunks[0];
- var path = chunks.join("/") + ".js";
-
- require.id = id;
- importScripts(path);
- return require(parentId, id);
-};
-
-require.modules = {};
-require.tlns = {};
-
-window.define = function(id, deps, factory) {
- if (arguments.length == 2) {
- factory = deps;
- if (typeof id != "string") {
- deps = id;
- id = require.id;
- }
- } else if (arguments.length == 1) {
- factory = id;
- id = require.id;
- }
-
- if (id.indexOf("text!") === 0)
- return;
-
- var req = function(deps, factory) {
- return require(id, deps, factory);
- };
-
- require.modules[id] = {
- exports: {},
- factory: function() {
- var module = this;
- var returnExports = factory(req, module.exports, module);
- if (returnExports)
- module.exports = returnExports;
- return module;
- }
- };
-};
-
-window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
- require.tlns = topLevelNamespaces;
-}
-
-window.initSender = function initSender() {
-
- var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
- var oop = require("ace/lib/oop");
-
- var Sender = function() {};
-
- (function() {
-
- oop.implement(this, EventEmitter);
-
- this.callback = function(data, callbackId) {
- postMessage({
- type: "call",
- id: callbackId,
- data: data
- });
- };
-
- this.emit = function(name, data) {
- postMessage({
- type: "event",
- name: name,
- data: data
- });
- };
-
- }).call(Sender.prototype);
-
- return new Sender();
-}
-
-window.main = null;
-window.sender = null;
-
-window.onmessage = function(e) {
- var msg = e.data;
- if (msg.command) {
- if (main[msg.command])
- main[msg.command].apply(main, msg.args);
- else
- throw new Error("Unknown command:" + msg.command);
- }
- else if (msg.init) {
- initBaseUrls(msg.tlns);
- require("ace/lib/es5-shim");
- sender = initSender();
- var clazz = require(msg.module)[msg.classname];
- main = new clazz(sender);
- }
- else if (msg.event && sender) {
- sender._emit(msg.event, msg.data);
- }
-};
-})(this);
-
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-var EventEmitter = {};
-var stopPropagation = function() { this.propagationStopped = true; };
-var preventDefault = function() { this.defaultPrevented = true; };
-
-EventEmitter._emit =
-EventEmitter._dispatchEvent = function(eventName, e) {
- this._eventRegistry || (this._eventRegistry = {});
- this._defaultHandlers || (this._defaultHandlers = {});
-
- var listeners = this._eventRegistry[eventName] || [];
- var defaultHandler = this._defaultHandlers[eventName];
- if (!listeners.length && !defaultHandler)
- return;
-
- if (typeof e != "object" || !e)
- e = {};
-
- if (!e.type)
- e.type = eventName;
- if (!e.stopPropagation)
- e.stopPropagation = stopPropagation;
- if (!e.preventDefault)
- e.preventDefault = preventDefault;
-
- for (var i=0; i<listeners.length; i++) {
- listeners[i](e, this);
- if (e.propagationStopped)
- break;
- }
-
- if (defaultHandler && !e.defaultPrevented)
- return defaultHandler(e, this);
-};
-
-
-EventEmitter._signal = function(eventName, e) {
- var listeners = (this._eventRegistry || {})[eventName];
- if (!listeners)
- return;
-
- for (var i=0; i<listeners.length; i++)
- listeners[i](e, this);
-};
-
-EventEmitter.once = function(eventName, callback) {
- var _self = this;
- callback && this.addEventListener(eventName, function newCallback() {
- _self.removeEventListener(eventName, newCallback);
- callback.apply(null, arguments);
- });
-};
-
-
-EventEmitter.setDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- handlers = this._defaultHandlers = {_disabled_: {}};
-
- if (handlers[eventName]) {
- var old = handlers[eventName];
- var disabled = handlers._disabled_[eventName];
- if (!disabled)
- handlers._disabled_[eventName] = disabled = [];
- disabled.push(old);
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
- handlers[eventName] = callback;
-};
-EventEmitter.removeDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- return;
- var disabled = handlers._disabled_[eventName];
-
- if (handlers[eventName] == callback) {
- var old = handlers[eventName];
- if (disabled)
- this.setDefaultHandler(eventName, disabled.pop());
- } else if (disabled) {
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
-};
-
-EventEmitter.on =
-EventEmitter.addEventListener = function(eventName, callback, capturing) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- listeners = this._eventRegistry[eventName] = [];
-
- if (listeners.indexOf(callback) == -1)
- listeners[capturing ? "unshift" : "push"](callback);
- return callback;
-};
-
-EventEmitter.off =
-EventEmitter.removeListener =
-EventEmitter.removeEventListener = function(eventName, callback) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- return;
-
- var index = listeners.indexOf(callback);
- if (index !== -1)
- listeners.splice(index, 1);
-};
-
-EventEmitter.removeAllListeners = function(eventName) {
- if (this._eventRegistry) this._eventRegistry[eventName] = [];
-};
-
-exports.EventEmitter = EventEmitter;
-
-});
-
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.inherits = (function() {
- var tempCtor = function() {};
- return function(ctor, superCtor) {
- tempCtor.prototype = superCtor.prototype;
- ctor.super_ = superCtor.prototype;
- ctor.prototype = new tempCtor();
- ctor.prototype.constructor = ctor;
- };
-}());
-
-exports.mixin = function(obj, mixin) {
- for (var key in mixin) {
- obj[key] = mixin[key];
- }
- return obj;
-};
-
-exports.implement = function(proto, mixin) {
- exports.mixin(proto, mixin);
-};
-
-});
-
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-function Empty() {}
-
-if (!Function.prototype.bind) {
- Function.prototype.bind = function bind(that) { // .length is 1
- var target = this;
- if (typeof target != "function") {
- throw new TypeError("Function.prototype.bind called on incompatible " + target);
- }
- var args = slice.call(arguments, 1); // for normal call
- var bound = function () {
-
- if (this instanceof bound) {
-
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
-
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
-
- }
-
- };
- if(target.prototype) {
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
-}
-var call = Function.prototype.call;
-var prototypeOfArray = Array.prototype;
-var prototypeOfObject = Object.prototype;
-var slice = prototypeOfArray.slice;
-var _toString = call.bind(prototypeOfObject.toString);
-var owns = call.bind(prototypeOfObject.hasOwnProperty);
-var defineGetter;
-var defineSetter;
-var lookupGetter;
-var lookupSetter;
-var supportsAccessors;
-if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
- defineGetter = call.bind(prototypeOfObject.__defineGetter__);
- defineSetter = call.bind(prototypeOfObject.__defineSetter__);
- lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
- lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
-}
-if ([1,2].splice(0).length != 2) {
- if(function() { // test IE < 9 to splice bug - see issue #138
- function makeArray(l) {
- var a = new Array(l+2);
- a[0] = a[1] = 0;
- return a;
- }
- var array = [], lengthBefore;
-
- array.splice.apply(array, makeArray(20));
- array.splice.apply(array, makeArray(26));
-
- lengthBefore = array.length; //46
- array.splice(5, 0, "XXX"); // add one element
-
- lengthBefore + 1 == array.length
-
- if (lengthBefore + 1 == array.length) {
- return true;// has right splice implementation without bugs
- }
- }()) {//IE 6/7
- var array_splice = Array.prototype.splice;
- Array.prototype.splice = function(start, deleteCount) {
- if (!arguments.length) {
- return [];
- } else {
- return array_splice.apply(this, [
- start === void 0 ? 0 : start,
- deleteCount === void 0 ? (this.length - start) : deleteCount
- ].concat(slice.call(arguments, 2)))
- }
- };
- } else {//IE8
- Array.prototype.splice = function(pos, removeCount){
- var length = this.length;
- if (pos > 0) {
- if (pos > length)
- pos = length;
- } else if (pos == void 0) {
- pos = 0;
- } else if (pos < 0) {
- pos = Math.max(length + pos, 0);
- }
-
- if (!(pos+removeCount < length))
- removeCount = length - pos;
-
- var removed = this.slice(pos, pos+removeCount);
- var insert = slice.call(arguments, 2);
- var add = insert.length;
- if (pos === length) {
- if (add) {
- this.push.apply(this, insert);
- }
- } else {
- var remove = Math.min(removeCount, length - pos);
- var tailOldPos = pos + remove;
- var tailNewPos = tailOldPos + add - remove;
- var tailCount = length - tailOldPos;
- var lengthAfterRemove = length - remove;
-
- if (tailNewPos < tailOldPos) { // case A
- for (var i = 0; i < tailCount; ++i) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } else if (tailNewPos > tailOldPos) { // case B
- for (i = tailCount; i--; ) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } // else, add == remove (nothing to do)
-
- if (add && pos === lengthAfterRemove) {
- this.length = lengthAfterRemove; // truncate array
- this.push.apply(this, insert);
- } else {
- this.length = lengthAfterRemove + add; // reserves space
- for (i = 0; i < add; ++i) {
- this[pos+i] = insert[i];
- }
- }
- }
- return removed;
- };
- }
-}
-if (!Array.isArray) {
- Array.isArray = function isArray(obj) {
- return _toString(obj) == "[object Array]";
- };
-}
-var boxedString = Object("a"),
- splitString = boxedString[0] != "a" || !(0 in boxedString);
-
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function forEach(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- thisp = arguments[1],
- i = -1,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(); // TODO message
- }
-
- while (++i < length) {
- if (i in self) {
- fun.call(thisp, self[i], i, object);
- }
- }
- };
-}
-if (!Array.prototype.map) {
- Array.prototype.map = function map(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = Array(length),
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self)
- result[i] = fun.call(thisp, self[i], i, object);
- }
- return result;
- };
-}
-if (!Array.prototype.filter) {
- Array.prototype.filter = function filter(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = [],
- value,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self) {
- value = self[i];
- if (fun.call(thisp, value, i, object)) {
- result.push(value);
- }
- }
- }
- return result;
- };
-}
-if (!Array.prototype.every) {
- Array.prototype.every = function every(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && !fun.call(thisp, self[i], i, object)) {
- return false;
- }
- }
- return true;
- };
-}
-if (!Array.prototype.some) {
- Array.prototype.some = function some(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && fun.call(thisp, self[i], i, object)) {
- return true;
- }
- }
- return false;
- };
-}
-if (!Array.prototype.reduce) {
- Array.prototype.reduce = function reduce(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduce of empty array with no initial value");
- }
-
- var i = 0;
- var result;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i++];
- break;
- }
- if (++i >= length) {
- throw new TypeError("reduce of empty array with no initial value");
- }
- } while (true);
- }
-
- for (; i < length; i++) {
- if (i in self) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- }
-
- return result;
- };
-}
-if (!Array.prototype.reduceRight) {
- Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
-
- var result, i = length - 1;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i--];
- break;
- }
- if (--i < 0) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
- } while (true);
- }
-
- do {
- if (i in this) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- } while (i--);
-
- return result;
- };
-}
-if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
- Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
-
- var i = 0;
- if (arguments.length > 1) {
- i = toInteger(arguments[1]);
- }
- i = i >= 0 ? i : Math.max(0, length + i);
- for (; i < length; i++) {
- if (i in self && self[i] === sought) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
- Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
- var i = length - 1;
- if (arguments.length > 1) {
- i = Math.min(i, toInteger(arguments[1]));
- }
- i = i >= 0 ? i : length - Math.abs(i);
- for (; i >= 0; i--) {
- if (i in self && sought === self[i]) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Object.getPrototypeOf) {
- Object.getPrototypeOf = function getPrototypeOf(object) {
- return object.__proto__ || (
- object.constructor ?
- object.constructor.prototype :
- prototypeOfObject
- );
- };
-}
-if (!Object.getOwnPropertyDescriptor) {
- var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
- "non-object: ";
- Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT + object);
- if (!owns(object, property))
- return;
-
- var descriptor, getter, setter;
- descriptor = { enumerable: true, configurable: true };
- if (supportsAccessors) {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
-
- var getter = lookupGetter(object, property);
- var setter = lookupSetter(object, property);
- object.__proto__ = prototype;
-
- if (getter || setter) {
- if (getter) descriptor.get = getter;
- if (setter) descriptor.set = setter;
- return descriptor;
- }
- }
- descriptor.value = object[property];
- return descriptor;
- };
-}
-if (!Object.getOwnPropertyNames) {
- Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
- return Object.keys(object);
- };
-}
-if (!Object.create) {
- var createEmpty;
- if (Object.prototype.__proto__ === null) {
- createEmpty = function () {
- return { "__proto__": null };
- };
- } else {
- createEmpty = function () {
- var empty = {};
- for (var i in empty)
- empty[i] = null;
- empty.constructor =
- empty.hasOwnProperty =
- empty.propertyIsEnumerable =
- empty.isPrototypeOf =
- empty.toLocaleString =
- empty.toString =
- empty.valueOf =
- empty.__proto__ = null;
- return empty;
- }
- }
-
- Object.create = function create(prototype, properties) {
- var object;
- if (prototype === null) {
- object = createEmpty();
- } else {
- if (typeof prototype != "object")
- throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
- var Type = function () {};
- Type.prototype = prototype;
- object = new Type();
- object.__proto__ = prototype;
- }
- if (properties !== void 0)
- Object.defineProperties(object, properties);
- return object;
- };
-}
-
-function doesDefinePropertyWork(object) {
- try {
- Object.defineProperty(object, "sentinel", {});
- return "sentinel" in object;
- } catch (exception) {
- }
-}
-if (Object.defineProperty) {
- var definePropertyWorksOnObject = doesDefinePropertyWork({});
- var definePropertyWorksOnDom = typeof document == "undefined" ||
- doesDefinePropertyWork(document.createElement("div"));
- if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
- var definePropertyFallback = Object.defineProperty;
- }
-}
-
-if (!Object.defineProperty || definePropertyFallback) {
- var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
- var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
- var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
- "on this javascript engine";
-
- Object.defineProperty = function defineProperty(object, property, descriptor) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT_TARGET + object);
- if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
- throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
- if (definePropertyFallback) {
- try {
- return definePropertyFallback.call(Object, object, property, descriptor);
- } catch (exception) {
- }
- }
- if (owns(descriptor, "value")) {
-
- if (supportsAccessors && (lookupGetter(object, property) ||
- lookupSetter(object, property)))
- {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
- delete object[property];
- object[property] = descriptor.value;
- object.__proto__ = prototype;
- } else {
- object[property] = descriptor.value;
- }
- } else {
- if (!supportsAccessors)
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
- if (owns(descriptor, "get"))
- defineGetter(object, property, descriptor.get);
- if (owns(descriptor, "set"))
- defineSetter(object, property, descriptor.set);
- }
-
- return object;
- };
-}
-if (!Object.defineProperties) {
- Object.defineProperties = function defineProperties(object, properties) {
- for (var property in properties) {
- if (owns(properties, property))
- Object.defineProperty(object, property, properties[property]);
- }
- return object;
- };
-}
-if (!Object.seal) {
- Object.seal = function seal(object) {
- return object;
- };
-}
-if (!Object.freeze) {
- Object.freeze = function freeze(object) {
- return object;
- };
-}
-try {
- Object.freeze(function () {});
-} catch (exception) {
- Object.freeze = (function freeze(freezeObject) {
- return function freeze(object) {
- if (typeof object == "function") {
- return object;
- } else {
- return freezeObject(object);
- }
- };
- })(Object.freeze);
-}
-if (!Object.preventExtensions) {
- Object.preventExtensions = function preventExtensions(object) {
- return object;
- };
-}
-if (!Object.isSealed) {
- Object.isSealed = function isSealed(object) {
- return false;
- };
-}
-if (!Object.isFrozen) {
- Object.isFrozen = function isFrozen(object) {
- return false;
- };
-}
-if (!Object.isExtensible) {
- Object.isExtensible = function isExtensible(object) {
- if (Object(object) === object) {
- throw new TypeError(); // TODO message
- }
- var name = '';
- while (owns(object, name)) {
- name += '?';
- }
- object[name] = true;
- var returnValue = owns(object, name);
- delete object[name];
- return returnValue;
- };
-}
-if (!Object.keys) {
- var hasDontEnumBug = true,
- dontEnums = [
- "toString",
- "toLocaleString",
- "valueOf",
- "hasOwnProperty",
- "isPrototypeOf",
- "propertyIsEnumerable",
- "constructor"
- ],
- dontEnumsLength = dontEnums.length;
-
- for (var key in {"toString": null}) {
- hasDontEnumBug = false;
- }
-
- Object.keys = function keys(object) {
-
- if (
- (typeof object != "object" && typeof object != "function") ||
- object === null
- ) {
- throw new TypeError("Object.keys called on a non-object");
- }
-
- var keys = [];
- for (var name in object) {
- if (owns(object, name)) {
- keys.push(name);
- }
- }
-
- if (hasDontEnumBug) {
- for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
- var dontEnum = dontEnums[i];
- if (owns(object, dontEnum)) {
- keys.push(dontEnum);
- }
- }
- }
- return keys;
- };
-
-}
-if (!Date.now) {
- Date.now = function now() {
- return new Date().getTime();
- };
-}
-var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
- "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
- "\u2029\uFEFF";
-if (!String.prototype.trim || ws.trim()) {
- ws = "[" + ws + "]";
- var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
- trimEndRegexp = new RegExp(ws + ws + "*$");
- String.prototype.trim = function trim() {
- return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
- };
-}
-
-function toInteger(n) {
- n = +n;
- if (n !== n) { // isNaN
- n = 0;
- } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- return n;
-}
-
-function isPrimitive(input) {
- var type = typeof input;
- return (
- input === null ||
- type === "undefined" ||
- type === "boolean" ||
- type === "number" ||
- type === "string"
- );
-}
-
-function toPrimitive(input) {
- var val, valueOf, toString;
- if (isPrimitive(input)) {
- return input;
- }
- valueOf = input.valueOf;
- if (typeof valueOf === "function") {
- val = valueOf.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- toString = input.toString;
- if (typeof toString === "function") {
- val = toString.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- throw new TypeError();
-}
-var toObject = function (o) {
- if (o == null) { // this matches both null and undefined
- throw new TypeError("can't convert "+o+" to object");
- }
- return Object(o);
-};
-
-});
-
-ace.define('ace/mode/json_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/json/json_parse'], function(require, exports, module) {
-
-
-var oop = require("../lib/oop");
-var Mirror = require("../worker/mirror").Mirror;
-var parse = require("./json/json_parse");
-
-var JsonWorker = exports.JsonWorker = function(sender) {
- Mirror.call(this, sender);
- this.setTimeout(200);
-};
-
-oop.inherits(JsonWorker, Mirror);
-
-(function() {
-
- this.onUpdate = function() {
- var value = this.doc.getValue();
-
- try {
- var result = parse(value);
- } catch (e) {
- var pos = this.doc.indexToPosition(e.at-1);
- this.sender.emit("error", {
- row: pos.row,
- column: pos.column,
- text: e.message,
- type: "error"
- });
- return;
- }
- this.sender.emit("ok");
- };
-
-}).call(JsonWorker.prototype);
-
-});
-ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
-
-
-var Document = require("../document").Document;
-var lang = require("../lib/lang");
-
-var Mirror = exports.Mirror = function(sender) {
- this.sender = sender;
- var doc = this.doc = new Document("");
-
- var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
-
- var _self = this;
- sender.on("change", function(e) {
- doc.applyDeltas(e.data);
- deferredUpdate.schedule(_self.$timeout);
- });
-};
-
-(function() {
-
- this.$timeout = 500;
-
- this.setTimeout = function(timeout) {
- this.$timeout = timeout;
- };
-
- this.setValue = function(value) {
- this.doc.setValue(value);
- this.deferredUpdate.schedule(this.$timeout);
- };
-
- this.getValue = function(callbackId) {
- this.sender.callback(this.doc.getValue(), callbackId);
- };
-
- this.onUpdate = function() {
- };
-
-}).call(Mirror.prototype);
-
-});
-
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-var Range = require("./range").Range;
-var Anchor = require("./anchor").Anchor;
-
-var Document = function(text) {
- this.$lines = [];
- if (text.length == 0) {
- this.$lines = [""];
- } else if (Array.isArray(text)) {
- this._insertLines(0, text);
- } else {
- this.insert({row: 0, column:0}, text);
- }
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.setValue = function(text) {
- var len = this.getLength();
- this.remove(new Range(0, 0, len, this.getLine(len-1).length));
- this.insert({row: 0, column:0}, text);
- };
- this.getValue = function() {
- return this.getAllLines().join(this.getNewLineCharacter());
- };
- this.createAnchor = function(row, column) {
- return new Anchor(this, row, column);
- };
- if ("aaa".split(/a/).length == 0)
- this.$split = function(text) {
- return text.replace(/\r\n|\r/g, "\n").split("\n");
- }
- else
- this.$split = function(text) {
- return text.split(/\r\n|\r|\n/);
- };
-
-
- this.$detectNewLine = function(text) {
- var match = text.match(/^.*?(\r\n|\r|\n)/m);
- this.$autoNewLine = match ? match[1] : "\n";
- };
- this.getNewLineCharacter = function() {
- switch (this.$newLineMode) {
- case "windows":
- return "\r\n";
- case "unix":
- return "\n";
- default:
- return this.$autoNewLine;
- }
- };
-
- this.$autoNewLine = "\n";
- this.$newLineMode = "auto";
- this.setNewLineMode = function(newLineMode) {
- if (this.$newLineMode === newLineMode)
- return;
-
- this.$newLineMode = newLineMode;
- };
- this.getNewLineMode = function() {
- return this.$newLineMode;
- };
- this.isNewLine = function(text) {
- return (text == "\r\n" || text == "\r" || text == "\n");
- };
- this.getLine = function(row) {
- return this.$lines[row] || "";
- };
- this.getLines = function(firstRow, lastRow) {
- return this.$lines.slice(firstRow, lastRow + 1);
- };
- this.getAllLines = function() {
- return this.getLines(0, this.getLength());
- };
- this.getLength = function() {
- return this.$lines.length;
- };
- this.getTextRange = function(range) {
- if (range.start.row == range.end.row) {
- return this.getLine(range.start.row)
- .substring(range.start.column, range.end.column);
- }
- var lines = this.getLines(range.start.row, range.end.row);
- lines[0] = (lines[0] || "").substring(range.start.column);
- var l = lines.length - 1;
- if (range.end.row - range.start.row == l)
- lines[l] = lines[l].substring(0, range.end.column);
- return lines.join(this.getNewLineCharacter());
- };
-
- this.$clipPosition = function(position) {
- var length = this.getLength();
- if (position.row >= length) {
- position.row = Math.max(0, length - 1);
- position.column = this.getLine(length-1).length;
- } else if (position.row < 0)
- position.row = 0;
- return position;
- };
- this.insert = function(position, text) {
- if (!text || text.length === 0)
- return position;
-
- position = this.$clipPosition(position);
- if (this.getLength() <= 1)
- this.$detectNewLine(text);
-
- var lines = this.$split(text);
- var firstLine = lines.splice(0, 1)[0];
- var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
-
- position = this.insertInLine(position, firstLine);
- if (lastLine !== null) {
- position = this.insertNewLine(position); // terminate first line
- position = this._insertLines(position.row, lines);
- position = this.insertInLine(position, lastLine || "");
- }
- return position;
- };
- this.insertLines = function(row, lines) {
- if (row >= this.getLength())
- return this.insert({row: row, column: 0}, "\n" + lines.join("\n"));
- return this._insertLines(Math.max(row, 0), lines);
- };
- this._insertLines = function(row, lines) {
- if (lines.length == 0)
- return {row: row, column: 0};
- if (lines.length > 0xFFFF) {
- var end = this._insertLines(row, lines.slice(0xFFFF));
- lines = lines.slice(0, 0xFFFF);
- }
-
- var args = [row, 0];
- args.push.apply(args, lines);
- this.$lines.splice.apply(this.$lines, args);
-
- var range = new Range(row, 0, row + lines.length, 0);
- var delta = {
- action: "insertLines",
- range: range,
- lines: lines
- };
- this._emit("change", { data: delta });
- return end || range.end;
- };
- this.insertNewLine = function(position) {
- position = this.$clipPosition(position);
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column);
- this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
-
- var end = {
- row : position.row + 1,
- column : 0
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.insertInLine = function(position, text) {
- if (text.length == 0)
- return position;
-
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column) + text
- + line.substring(position.column);
-
- var end = {
- row : position.row,
- column : position.column + text.length
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: text
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.remove = function(range) {
- range.start = this.$clipPosition(range.start);
- range.end = this.$clipPosition(range.end);
-
- if (range.isEmpty())
- return range.start;
-
- var firstRow = range.start.row;
- var lastRow = range.end.row;
-
- if (range.isMultiLine()) {
- var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
- var lastFullRow = lastRow - 1;
-
- if (range.end.column > 0)
- this.removeInLine(lastRow, 0, range.end.column);
-
- if (lastFullRow >= firstFullRow)
- this._removeLines(firstFullRow, lastFullRow);
-
- if (firstFullRow != firstRow) {
- this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
- this.removeNewLine(range.start.row);
- }
- }
- else {
- this.removeInLine(firstRow, range.start.column, range.end.column);
- }
- return range.start;
- };
- this.removeInLine = function(row, startColumn, endColumn) {
- if (startColumn == endColumn)
- return;
-
- var range = new Range(row, startColumn, row, endColumn);
- var line = this.getLine(row);
- var removed = line.substring(startColumn, endColumn);
- var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
- this.$lines.splice(row, 1, newLine);
-
- var delta = {
- action: "removeText",
- range: range,
- text: removed
- };
- this._emit("change", { data: delta });
- return range.start;
- };
- this.removeLines = function(firstRow, lastRow) {
- if (firstRow < 0 || lastRow >= this.getLength())
- return this.remove(new Range(firstRow, 0, lastRow + 1, 0));
- return this._removeLines(firstRow, lastRow);
- };
-
- this._removeLines = function(firstRow, lastRow) {
- var range = new Range(firstRow, 0, lastRow + 1, 0);
- var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
-
- var delta = {
- action: "removeLines",
- range: range,
- nl: this.getNewLineCharacter(),
- lines: removed
- };
- this._emit("change", { data: delta });
- return removed;
- };
- this.removeNewLine = function(row) {
- var firstLine = this.getLine(row);
- var secondLine = this.getLine(row+1);
-
- var range = new Range(row, firstLine.length, row+1, 0);
- var line = firstLine + secondLine;
-
- this.$lines.splice(row, 2, line);
-
- var delta = {
- action: "removeText",
- range: range,
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
- };
- this.replace = function(range, text) {
- if (text.length == 0 && range.isEmpty())
- return range.start;
- if (text == this.getTextRange(range))
- return range.end;
-
- this.remove(range);
- if (text) {
- var end = this.insert(range.start, text);
- }
- else {
- end = range.start;
- }
-
- return end;
- };
- this.applyDeltas = function(deltas) {
- for (var i=0; i<deltas.length; i++) {
- var delta = deltas[i];
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this.insertLines(range.start.row, delta.lines);
- else if (delta.action == "insertText")
- this.insert(range.start, delta.text);
- else if (delta.action == "removeLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "removeText")
- this.remove(range);
- }
- };
- this.revertDeltas = function(deltas) {
- for (var i=deltas.length-1; i>=0; i--) {
- var delta = deltas[i];
-
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "insertText")
- this.remove(range);
- else if (delta.action == "removeLines")
- this._insertLines(range.start.row, delta.lines);
- else if (delta.action == "removeText")
- this.insert(range.start, delta.text);
- }
- };
- this.indexToPosition = function(index, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- for (var i = startRow || 0, l = lines.length; i < l; i++) {
- index -= lines[i].length + newlineLength;
- if (index < 0)
- return {row: i, column: index + lines[i].length + newlineLength};
- }
- return {row: l-1, column: lines[l-1].length};
- };
- this.positionToIndex = function(pos, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- var index = 0;
- var row = Math.min(pos.row, lines.length);
- for (var i = startRow || 0; i < row; ++i)
- index += lines[i].length + newlineLength;
-
- return index + pos.column;
- };
-
-}).call(Document.prototype);
-
-exports.Document = Document;
-});
-
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-var Range = function(startRow, startColumn, endRow, endColumn) {
- this.start = {
- row: startRow,
- column: startColumn
- };
-
- this.end = {
- row: endRow,
- column: endColumn
- };
-};
-
-(function() {
- this.isEqual = function(range) {
- return this.start.row === range.start.row &&
- this.end.row === range.end.row &&
- this.start.column === range.start.column &&
- this.end.column === range.end.column;
- };
- this.toString = function() {
- return ("Range: [" + this.start.row + "/" + this.start.column +
- "] -> [" + this.end.row + "/" + this.end.column + "]");
- };
-
- this.contains = function(row, column) {
- return this.compare(row, column) == 0;
- };
- this.compareRange = function(range) {
- var cmp,
- end = range.end,
- start = range.start;
-
- cmp = this.compare(end.row, end.column);
- if (cmp == 1) {
- cmp = this.compare(start.row, start.column);
- if (cmp == 1) {
- return 2;
- } else if (cmp == 0) {
- return 1;
- } else {
- return 0;
- }
- } else if (cmp == -1) {
- return -2;
- } else {
- cmp = this.compare(start.row, start.column);
- if (cmp == -1) {
- return -1;
- } else if (cmp == 1) {
- return 42;
- } else {
- return 0;
- }
- }
- };
- this.comparePoint = function(p) {
- return this.compare(p.row, p.column);
- };
- this.containsRange = function(range) {
- return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
- };
- this.intersects = function(range) {
- var cmp = this.compareRange(range);
- return (cmp == -1 || cmp == 0 || cmp == 1);
- };
- this.isEnd = function(row, column) {
- return this.end.row == row && this.end.column == column;
- };
- this.isStart = function(row, column) {
- return this.start.row == row && this.start.column == column;
- };
- this.setStart = function(row, column) {
- if (typeof row == "object") {
- this.start.column = row.column;
- this.start.row = row.row;
- } else {
- this.start.row = row;
- this.start.column = column;
- }
- };
- this.setEnd = function(row, column) {
- if (typeof row == "object") {
- this.end.column = row.column;
- this.end.row = row.row;
- } else {
- this.end.row = row;
- this.end.column = column;
- }
- };
- this.inside = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column) || this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideStart = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideEnd = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.compare = function(row, column) {
- if (!this.isMultiLine()) {
- if (row === this.start.row) {
- return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
- };
- }
-
- if (row < this.start.row)
- return -1;
-
- if (row > this.end.row)
- return 1;
-
- if (this.start.row === row)
- return column >= this.start.column ? 0 : -1;
-
- if (this.end.row === row)
- return column <= this.end.column ? 0 : 1;
-
- return 0;
- };
- this.compareStart = function(row, column) {
- if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareEnd = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareInside = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.clipRows = function(firstRow, lastRow) {
- if (this.end.row > lastRow)
- var end = {row: lastRow + 1, column: 0};
- else if (this.end.row < firstRow)
- var end = {row: firstRow, column: 0};
-
- if (this.start.row > lastRow)
- var start = {row: lastRow + 1, column: 0};
- else if (this.start.row < firstRow)
- var start = {row: firstRow, column: 0};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
- this.extend = function(row, column) {
- var cmp = this.compare(row, column);
-
- if (cmp == 0)
- return this;
- else if (cmp == -1)
- var start = {row: row, column: column};
- else
- var end = {row: row, column: column};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
-
- this.isEmpty = function() {
- return (this.start.row === this.end.row && this.start.column === this.end.column);
- };
- this.isMultiLine = function() {
- return (this.start.row !== this.end.row);
- };
- this.clone = function() {
- return Range.fromPoints(this.start, this.end);
- };
- this.collapseRows = function() {
- if (this.end.column == 0)
- return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
- else
- return new Range(this.start.row, 0, this.end.row, 0)
- };
- this.toScreenRange = function(session) {
- var screenPosStart = session.documentToScreenPosition(this.start);
- var screenPosEnd = session.documentToScreenPosition(this.end);
-
- return new Range(
- screenPosStart.row, screenPosStart.column,
- screenPosEnd.row, screenPosEnd.column
- );
- };
- this.moveBy = function(row, column) {
- this.start.row += row;
- this.start.column += column;
- this.end.row += row;
- this.end.column += column;
- };
-
-}).call(Range.prototype);
-Range.fromPoints = function(start, end) {
- return new Range(start.row, start.column, end.row, end.column);
-};
-Range.comparePoints = comparePoints;
-
-Range.comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-
-
-exports.Range = Range;
-});
-
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-
-var Anchor = exports.Anchor = function(doc, row, column) {
- this.$onChange = this.onChange.bind(this);
- this.attach(doc);
-
- if (typeof column == "undefined")
- this.setPosition(row.row, row.column);
- else
- this.setPosition(row, column);
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.getPosition = function() {
- return this.$clipPositionToDocument(this.row, this.column);
- };
- this.getDocument = function() {
- return this.document;
- };
- this.onChange = function(e) {
- var delta = e.data;
- var range = delta.range;
-
- if (range.start.row == range.end.row && range.start.row != this.row)
- return;
-
- if (range.start.row > this.row)
- return;
-
- if (range.start.row == this.row && range.start.column > this.column)
- return;
-
- var row = this.row;
- var column = this.column;
- var start = range.start;
- var end = range.end;
-
- if (delta.action === "insertText") {
- if (start.row === row && start.column <= column) {
- if (start.row === end.row) {
- column += end.column - start.column;
- } else {
- column -= start.column;
- row += end.row - start.row;
- }
- } else if (start.row !== end.row && start.row < row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "insertLines") {
- if (start.row <= row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "removeText") {
- if (start.row === row && start.column < column) {
- if (end.column >= column)
- column = start.column;
- else
- column = Math.max(0, column - (end.column - start.column));
-
- } else if (start.row !== end.row && start.row < row) {
- if (end.row === row)
- column = Math.max(0, column - end.column) + start.column;
- row -= (end.row - start.row);
- } else if (end.row === row) {
- row -= end.row - start.row;
- column = Math.max(0, column - end.column) + start.column;
- }
- } else if (delta.action == "removeLines") {
- if (start.row <= row) {
- if (end.row <= row)
- row -= end.row - start.row;
- else {
- row = start.row;
- column = 0;
- }
- }
- }
-
- this.setPosition(row, column, true);
- };
- this.setPosition = function(row, column, noClip) {
- var pos;
- if (noClip) {
- pos = {
- row: row,
- column: column
- };
- } else {
- pos = this.$clipPositionToDocument(row, column);
- }
-
- if (this.row == pos.row && this.column == pos.column)
- return;
-
- var old = {
- row: this.row,
- column: this.column
- };
-
- this.row = pos.row;
- this.column = pos.column;
- this._emit("change", {
- old: old,
- value: pos
- });
- };
- this.detach = function() {
- this.document.removeEventListener("change", this.$onChange);
- };
- this.attach = function(doc) {
- this.document = doc || this.document;
- this.document.on("change", this.$onChange);
- };
- this.$clipPositionToDocument = function(row, column) {
- var pos = {};
-
- if (row >= this.document.getLength()) {
- pos.row = Math.max(0, this.document.getLength() - 1);
- pos.column = this.document.getLine(pos.row).length;
- }
- else if (row < 0) {
- pos.row = 0;
- pos.column = 0;
- }
- else {
- pos.row = row;
- pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
- }
-
- if (column < 0)
- pos.column = 0;
-
- return pos;
- };
-
-}).call(Anchor.prototype);
-
-});
-
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.stringReverse = function(string) {
- return string.split("").reverse().join("");
-};
-
-exports.stringRepeat = function (string, count) {
- var result = '';
- while (count > 0) {
- if (count & 1)
- result += string;
-
- if (count >>= 1)
- string += string;
- }
- return result;
-};
-
-var trimBeginRegexp = /^\s\s*/;
-var trimEndRegexp = /\s\s*$/;
-
-exports.stringTrimLeft = function (string) {
- return string.replace(trimBeginRegexp, '');
-};
-
-exports.stringTrimRight = function (string) {
- return string.replace(trimEndRegexp, '');
-};
-
-exports.copyObject = function(obj) {
- var copy = {};
- for (var key in obj) {
- copy[key] = obj[key];
- }
- return copy;
-};
-
-exports.copyArray = function(array){
- var copy = [];
- for (var i=0, l=array.length; i<l; i++) {
- if (array[i] && typeof array[i] == "object")
- copy[i] = this.copyObject( array[i] );
- else
- copy[i] = array[i];
- }
- return copy;
-};
-
-exports.deepCopy = function (obj) {
- if (typeof obj != "object") {
- return obj;
- }
-
- var copy = obj.constructor();
- for (var key in obj) {
- if (typeof obj[key] == "object") {
- copy[key] = this.deepCopy(obj[key]);
- } else {
- copy[key] = obj[key];
- }
- }
- return copy;
-};
-
-exports.arrayToMap = function(arr) {
- var map = {};
- for (var i=0; i<arr.length; i++) {
- map[arr[i]] = 1;
- }
- return map;
-
-};
-
-exports.createMap = function(props) {
- var map = Object.create(null);
- for (var i in props) {
- map[i] = props[i];
- }
- return map;
-};
-exports.arrayRemove = function(array, value) {
- for (var i = 0; i <= array.length; i++) {
- if (value === array[i]) {
- array.splice(i, 1);
- }
- }
-};
-
-exports.escapeRegExp = function(str) {
- return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
-};
-
-exports.escapeHTML = function(str) {
- return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
-};
-
-exports.getMatchOffsets = function(string, regExp) {
- var matches = [];
-
- string.replace(regExp, function(str) {
- matches.push({
- offset: arguments[arguments.length-2],
- length: str.length
- });
- });
-
- return matches;
-};
-exports.deferredCall = function(fcn) {
-
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var deferred = function(timeout) {
- deferred.cancel();
- timer = setTimeout(callback, timeout || 0);
- return deferred;
- };
-
- deferred.schedule = deferred;
-
- deferred.call = function() {
- this.cancel();
- fcn();
- return deferred;
- };
-
- deferred.cancel = function() {
- clearTimeout(timer);
- timer = null;
- return deferred;
- };
-
- return deferred;
-};
-
-
-exports.delayedCall = function(fcn, defaultTimeout) {
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var _self = function(timeout) {
- timer && clearTimeout(timer);
- timer = setTimeout(callback, timeout || defaultTimeout);
- };
-
- _self.delay = _self;
- _self.schedule = function(timeout) {
- if (timer == null)
- timer = setTimeout(callback, timeout || 0);
- };
-
- _self.call = function() {
- this.cancel();
- fcn();
- };
-
- _self.cancel = function() {
- timer && clearTimeout(timer);
- timer = null;
- };
-
- _self.isPending = function() {
- return timer;
- };
-
- return _self;
-};
-});
-
-ace.define('ace/mode/json/json_parse', ['require', 'exports', 'module' ], function(require, exports, module) {
-
- var at, // The index of the current character
- ch, // The current character
- escapee = {
- '"': '"',
- '\\': '\\',
- '/': '/',
- b: '\b',
- f: '\f',
- n: '\n',
- r: '\r',
- t: '\t'
- },
- text,
-
- error = function (m) {
-
- throw {
- name: 'SyntaxError',
- message: m,
- at: at,
- text: text
- };
- },
-
- next = function (c) {
-
- if (c && c !== ch) {
- error("Expected '" + c + "' instead of '" + ch + "'");
- }
-
- ch = text.charAt(at);
- at += 1;
- return ch;
- },
-
- number = function () {
-
- var number,
- string = '';
-
- if (ch === '-') {
- string = '-';
- next('-');
- }
- while (ch >= '0' && ch <= '9') {
- string += ch;
- next();
- }
- if (ch === '.') {
- string += '.';
- while (next() && ch >= '0' && ch <= '9') {
- string += ch;
- }
- }
- if (ch === 'e' || ch === 'E') {
- string += ch;
- next();
- if (ch === '-' || ch === '+') {
- string += ch;
- next();
- }
- while (ch >= '0' && ch <= '9') {
- string += ch;
- next();
- }
- }
- number = +string;
- if (isNaN(number)) {
- error("Bad number");
- } else {
- return number;
- }
- },
-
- string = function () {
-
- var hex,
- i,
- string = '',
- uffff;
-
- if (ch === '"') {
- while (next()) {
- if (ch === '"') {
- next();
- return string;
- } else if (ch === '\\') {
- next();
- if (ch === 'u') {
- uffff = 0;
- for (i = 0; i < 4; i += 1) {
- hex = parseInt(next(), 16);
- if (!isFinite(hex)) {
- break;
- }
- uffff = uffff * 16 + hex;
- }
- string += String.fromCharCode(uffff);
- } else if (typeof escapee[ch] === 'string') {
- string += escapee[ch];
- } else {
- break;
- }
- } else {
- string += ch;
- }
- }
- }
- error("Bad string");
- },
-
- white = function () {
-
- while (ch && ch <= ' ') {
- next();
- }
- },
-
- word = function () {
-
- switch (ch) {
- case 't':
- next('t');
- next('r');
- next('u');
- next('e');
- return true;
- case 'f':
- next('f');
- next('a');
- next('l');
- next('s');
- next('e');
- return false;
- case 'n':
- next('n');
- next('u');
- next('l');
- next('l');
- return null;
- }
- error("Unexpected '" + ch + "'");
- },
-
- value, // Place holder for the value function.
-
- array = function () {
-
- var array = [];
-
- if (ch === '[') {
- next('[');
- white();
- if (ch === ']') {
- next(']');
- return array; // empty array
- }
- while (ch) {
- array.push(value());
- white();
- if (ch === ']') {
- next(']');
- return array;
- }
- next(',');
- white();
- }
- }
- error("Bad array");
- },
-
- object = function () {
-
- var key,
- object = {};
-
- if (ch === '{') {
- next('{');
- white();
- if (ch === '}') {
- next('}');
- return object; // empty object
- }
- while (ch) {
- key = string();
- white();
- next(':');
- if (Object.hasOwnProperty.call(object, key)) {
- error('Duplicate key "' + key + '"');
- }
- object[key] = value();
- white();
- if (ch === '}') {
- next('}');
- return object;
- }
- next(',');
- white();
- }
- }
- error("Bad object");
- };
-
- value = function () {
-
- white();
- switch (ch) {
- case '{':
- return object();
- case '[':
- return array();
- case '"':
- return string();
- case '-':
- return number();
- default:
- return ch >= '0' && ch <= '9' ? number() : word();
- }
- };
-
- return function (source, reviver) {
- var result;
-
- text = source;
- at = 0;
- ch = ' ';
- result = value();
- white();
- if (ch) {
- error("Syntax error");
- }
-
- return typeof reviver === 'function' ? function walk(holder, key) {
- var k, v, value = holder[key];
- if (value && typeof value === 'object') {
- for (k in value) {
- if (Object.hasOwnProperty.call(value, k)) {
- v = walk(value, k);
- if (v !== undefined) {
- value[k] = v;
- } else {
- delete value[k];
- }
- }
- }
- }
- return reviver.call(holder, key, value);
- }({'': result}, '') : result;
- };
-});
diff --git a/js/vendor/ace/src-noconflict/worker-lua.js b/js/vendor/ace/src-noconflict/worker-lua.js
deleted file mode 100644
index 42ad831..0000000
--- a/js/vendor/ace/src-noconflict/worker-lua.js
+++ /dev/null
@@ -1,3487 +0,0 @@
-"no use strict";
-;(function(window) {
-if (typeof window.window != "undefined" && window.document) {
- return;
-}
-
-window.console = function() {
- var msgs = Array.prototype.slice.call(arguments, 0);
- postMessage({type: "log", data: msgs});
-};
-window.console.error =
-window.console.warn =
-window.console.log =
-window.console.trace = window.console;
-
-window.window = window;
-window.ace = window;
-
-window.normalizeModule = function(parentId, moduleName) {
- if (moduleName.indexOf("!") !== -1) {
- var chunks = moduleName.split("!");
- return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
- }
- if (moduleName.charAt(0) == ".") {
- var base = parentId.split("/").slice(0, -1).join("/");
- moduleName = base + "/" + moduleName;
-
- while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
- var previous = moduleName;
- moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
- }
- }
-
- return moduleName;
-};
-
-window.require = function(parentId, id) {
- if (!id) {
- id = parentId
- parentId = null;
- }
- if (!id.charAt)
- throw new Error("worker.js require() accepts only (parentId, id) as arguments");
-
- id = normalizeModule(parentId, id);
-
- var module = require.modules[id];
- if (module) {
- if (!module.initialized) {
- module.initialized = true;
- module.exports = module.factory().exports;
- }
- return module.exports;
- }
-
- var chunks = id.split("/");
- chunks[0] = require.tlns[chunks[0]] || chunks[0];
- var path = chunks.join("/") + ".js";
-
- require.id = id;
- importScripts(path);
- return require(parentId, id);
-};
-
-require.modules = {};
-require.tlns = {};
-
-window.define = function(id, deps, factory) {
- if (arguments.length == 2) {
- factory = deps;
- if (typeof id != "string") {
- deps = id;
- id = require.id;
- }
- } else if (arguments.length == 1) {
- factory = id;
- id = require.id;
- }
-
- if (id.indexOf("text!") === 0)
- return;
-
- var req = function(deps, factory) {
- return require(id, deps, factory);
- };
-
- require.modules[id] = {
- exports: {},
- factory: function() {
- var module = this;
- var returnExports = factory(req, module.exports, module);
- if (returnExports)
- module.exports = returnExports;
- return module;
- }
- };
-};
-
-window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
- require.tlns = topLevelNamespaces;
-}
-
-window.initSender = function initSender() {
-
- var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
- var oop = require("ace/lib/oop");
-
- var Sender = function() {};
-
- (function() {
-
- oop.implement(this, EventEmitter);
-
- this.callback = function(data, callbackId) {
- postMessage({
- type: "call",
- id: callbackId,
- data: data
- });
- };
-
- this.emit = function(name, data) {
- postMessage({
- type: "event",
- name: name,
- data: data
- });
- };
-
- }).call(Sender.prototype);
-
- return new Sender();
-}
-
-window.main = null;
-window.sender = null;
-
-window.onmessage = function(e) {
- var msg = e.data;
- if (msg.command) {
- if (main[msg.command])
- main[msg.command].apply(main, msg.args);
- else
- throw new Error("Unknown command:" + msg.command);
- }
- else if (msg.init) {
- initBaseUrls(msg.tlns);
- require("ace/lib/es5-shim");
- sender = initSender();
- var clazz = require(msg.module)[msg.classname];
- main = new clazz(sender);
- }
- else if (msg.event && sender) {
- sender._emit(msg.event, msg.data);
- }
-};
-})(this);
-
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-var EventEmitter = {};
-var stopPropagation = function() { this.propagationStopped = true; };
-var preventDefault = function() { this.defaultPrevented = true; };
-
-EventEmitter._emit =
-EventEmitter._dispatchEvent = function(eventName, e) {
- this._eventRegistry || (this._eventRegistry = {});
- this._defaultHandlers || (this._defaultHandlers = {});
-
- var listeners = this._eventRegistry[eventName] || [];
- var defaultHandler = this._defaultHandlers[eventName];
- if (!listeners.length && !defaultHandler)
- return;
-
- if (typeof e != "object" || !e)
- e = {};
-
- if (!e.type)
- e.type = eventName;
- if (!e.stopPropagation)
- e.stopPropagation = stopPropagation;
- if (!e.preventDefault)
- e.preventDefault = preventDefault;
-
- for (var i=0; i<listeners.length; i++) {
- listeners[i](e, this);
- if (e.propagationStopped)
- break;
- }
-
- if (defaultHandler && !e.defaultPrevented)
- return defaultHandler(e, this);
-};
-
-
-EventEmitter._signal = function(eventName, e) {
- var listeners = (this._eventRegistry || {})[eventName];
- if (!listeners)
- return;
-
- for (var i=0; i<listeners.length; i++)
- listeners[i](e, this);
-};
-
-EventEmitter.once = function(eventName, callback) {
- var _self = this;
- callback && this.addEventListener(eventName, function newCallback() {
- _self.removeEventListener(eventName, newCallback);
- callback.apply(null, arguments);
- });
-};
-
-
-EventEmitter.setDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- handlers = this._defaultHandlers = {_disabled_: {}};
-
- if (handlers[eventName]) {
- var old = handlers[eventName];
- var disabled = handlers._disabled_[eventName];
- if (!disabled)
- handlers._disabled_[eventName] = disabled = [];
- disabled.push(old);
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
- handlers[eventName] = callback;
-};
-EventEmitter.removeDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- return;
- var disabled = handlers._disabled_[eventName];
-
- if (handlers[eventName] == callback) {
- var old = handlers[eventName];
- if (disabled)
- this.setDefaultHandler(eventName, disabled.pop());
- } else if (disabled) {
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
-};
-
-EventEmitter.on =
-EventEmitter.addEventListener = function(eventName, callback, capturing) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- listeners = this._eventRegistry[eventName] = [];
-
- if (listeners.indexOf(callback) == -1)
- listeners[capturing ? "unshift" : "push"](callback);
- return callback;
-};
-
-EventEmitter.off =
-EventEmitter.removeListener =
-EventEmitter.removeEventListener = function(eventName, callback) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- return;
-
- var index = listeners.indexOf(callback);
- if (index !== -1)
- listeners.splice(index, 1);
-};
-
-EventEmitter.removeAllListeners = function(eventName) {
- if (this._eventRegistry) this._eventRegistry[eventName] = [];
-};
-
-exports.EventEmitter = EventEmitter;
-
-});
-
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.inherits = (function() {
- var tempCtor = function() {};
- return function(ctor, superCtor) {
- tempCtor.prototype = superCtor.prototype;
- ctor.super_ = superCtor.prototype;
- ctor.prototype = new tempCtor();
- ctor.prototype.constructor = ctor;
- };
-}());
-
-exports.mixin = function(obj, mixin) {
- for (var key in mixin) {
- obj[key] = mixin[key];
- }
- return obj;
-};
-
-exports.implement = function(proto, mixin) {
- exports.mixin(proto, mixin);
-};
-
-});
-
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-function Empty() {}
-
-if (!Function.prototype.bind) {
- Function.prototype.bind = function bind(that) { // .length is 1
- var target = this;
- if (typeof target != "function") {
- throw new TypeError("Function.prototype.bind called on incompatible " + target);
- }
- var args = slice.call(arguments, 1); // for normal call
- var bound = function () {
-
- if (this instanceof bound) {
-
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
-
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
-
- }
-
- };
- if(target.prototype) {
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
-}
-var call = Function.prototype.call;
-var prototypeOfArray = Array.prototype;
-var prototypeOfObject = Object.prototype;
-var slice = prototypeOfArray.slice;
-var _toString = call.bind(prototypeOfObject.toString);
-var owns = call.bind(prototypeOfObject.hasOwnProperty);
-var defineGetter;
-var defineSetter;
-var lookupGetter;
-var lookupSetter;
-var supportsAccessors;
-if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
- defineGetter = call.bind(prototypeOfObject.__defineGetter__);
- defineSetter = call.bind(prototypeOfObject.__defineSetter__);
- lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
- lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
-}
-if ([1,2].splice(0).length != 2) {
- if(function() { // test IE < 9 to splice bug - see issue #138
- function makeArray(l) {
- var a = new Array(l+2);
- a[0] = a[1] = 0;
- return a;
- }
- var array = [], lengthBefore;
-
- array.splice.apply(array, makeArray(20));
- array.splice.apply(array, makeArray(26));
-
- lengthBefore = array.length; //46
- array.splice(5, 0, "XXX"); // add one element
-
- lengthBefore + 1 == array.length
-
- if (lengthBefore + 1 == array.length) {
- return true;// has right splice implementation without bugs
- }
- }()) {//IE 6/7
- var array_splice = Array.prototype.splice;
- Array.prototype.splice = function(start, deleteCount) {
- if (!arguments.length) {
- return [];
- } else {
- return array_splice.apply(this, [
- start === void 0 ? 0 : start,
- deleteCount === void 0 ? (this.length - start) : deleteCount
- ].concat(slice.call(arguments, 2)))
- }
- };
- } else {//IE8
- Array.prototype.splice = function(pos, removeCount){
- var length = this.length;
- if (pos > 0) {
- if (pos > length)
- pos = length;
- } else if (pos == void 0) {
- pos = 0;
- } else if (pos < 0) {
- pos = Math.max(length + pos, 0);
- }
-
- if (!(pos+removeCount < length))
- removeCount = length - pos;
-
- var removed = this.slice(pos, pos+removeCount);
- var insert = slice.call(arguments, 2);
- var add = insert.length;
- if (pos === length) {
- if (add) {
- this.push.apply(this, insert);
- }
- } else {
- var remove = Math.min(removeCount, length - pos);
- var tailOldPos = pos + remove;
- var tailNewPos = tailOldPos + add - remove;
- var tailCount = length - tailOldPos;
- var lengthAfterRemove = length - remove;
-
- if (tailNewPos < tailOldPos) { // case A
- for (var i = 0; i < tailCount; ++i) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } else if (tailNewPos > tailOldPos) { // case B
- for (i = tailCount; i--; ) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } // else, add == remove (nothing to do)
-
- if (add && pos === lengthAfterRemove) {
- this.length = lengthAfterRemove; // truncate array
- this.push.apply(this, insert);
- } else {
- this.length = lengthAfterRemove + add; // reserves space
- for (i = 0; i < add; ++i) {
- this[pos+i] = insert[i];
- }
- }
- }
- return removed;
- };
- }
-}
-if (!Array.isArray) {
- Array.isArray = function isArray(obj) {
- return _toString(obj) == "[object Array]";
- };
-}
-var boxedString = Object("a"),
- splitString = boxedString[0] != "a" || !(0 in boxedString);
-
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function forEach(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- thisp = arguments[1],
- i = -1,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(); // TODO message
- }
-
- while (++i < length) {
- if (i in self) {
- fun.call(thisp, self[i], i, object);
- }
- }
- };
-}
-if (!Array.prototype.map) {
- Array.prototype.map = function map(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = Array(length),
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self)
- result[i] = fun.call(thisp, self[i], i, object);
- }
- return result;
- };
-}
-if (!Array.prototype.filter) {
- Array.prototype.filter = function filter(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = [],
- value,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self) {
- value = self[i];
- if (fun.call(thisp, value, i, object)) {
- result.push(value);
- }
- }
- }
- return result;
- };
-}
-if (!Array.prototype.every) {
- Array.prototype.every = function every(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && !fun.call(thisp, self[i], i, object)) {
- return false;
- }
- }
- return true;
- };
-}
-if (!Array.prototype.some) {
- Array.prototype.some = function some(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && fun.call(thisp, self[i], i, object)) {
- return true;
- }
- }
- return false;
- };
-}
-if (!Array.prototype.reduce) {
- Array.prototype.reduce = function reduce(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduce of empty array with no initial value");
- }
-
- var i = 0;
- var result;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i++];
- break;
- }
- if (++i >= length) {
- throw new TypeError("reduce of empty array with no initial value");
- }
- } while (true);
- }
-
- for (; i < length; i++) {
- if (i in self) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- }
-
- return result;
- };
-}
-if (!Array.prototype.reduceRight) {
- Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
-
- var result, i = length - 1;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i--];
- break;
- }
- if (--i < 0) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
- } while (true);
- }
-
- do {
- if (i in this) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- } while (i--);
-
- return result;
- };
-}
-if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
- Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
-
- var i = 0;
- if (arguments.length > 1) {
- i = toInteger(arguments[1]);
- }
- i = i >= 0 ? i : Math.max(0, length + i);
- for (; i < length; i++) {
- if (i in self && self[i] === sought) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
- Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
- var i = length - 1;
- if (arguments.length > 1) {
- i = Math.min(i, toInteger(arguments[1]));
- }
- i = i >= 0 ? i : length - Math.abs(i);
- for (; i >= 0; i--) {
- if (i in self && sought === self[i]) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Object.getPrototypeOf) {
- Object.getPrototypeOf = function getPrototypeOf(object) {
- return object.__proto__ || (
- object.constructor ?
- object.constructor.prototype :
- prototypeOfObject
- );
- };
-}
-if (!Object.getOwnPropertyDescriptor) {
- var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
- "non-object: ";
- Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT + object);
- if (!owns(object, property))
- return;
-
- var descriptor, getter, setter;
- descriptor = { enumerable: true, configurable: true };
- if (supportsAccessors) {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
-
- var getter = lookupGetter(object, property);
- var setter = lookupSetter(object, property);
- object.__proto__ = prototype;
-
- if (getter || setter) {
- if (getter) descriptor.get = getter;
- if (setter) descriptor.set = setter;
- return descriptor;
- }
- }
- descriptor.value = object[property];
- return descriptor;
- };
-}
-if (!Object.getOwnPropertyNames) {
- Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
- return Object.keys(object);
- };
-}
-if (!Object.create) {
- var createEmpty;
- if (Object.prototype.__proto__ === null) {
- createEmpty = function () {
- return { "__proto__": null };
- };
- } else {
- createEmpty = function () {
- var empty = {};
- for (var i in empty)
- empty[i] = null;
- empty.constructor =
- empty.hasOwnProperty =
- empty.propertyIsEnumerable =
- empty.isPrototypeOf =
- empty.toLocaleString =
- empty.toString =
- empty.valueOf =
- empty.__proto__ = null;
- return empty;
- }
- }
-
- Object.create = function create(prototype, properties) {
- var object;
- if (prototype === null) {
- object = createEmpty();
- } else {
- if (typeof prototype != "object")
- throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
- var Type = function () {};
- Type.prototype = prototype;
- object = new Type();
- object.__proto__ = prototype;
- }
- if (properties !== void 0)
- Object.defineProperties(object, properties);
- return object;
- };
-}
-
-function doesDefinePropertyWork(object) {
- try {
- Object.defineProperty(object, "sentinel", {});
- return "sentinel" in object;
- } catch (exception) {
- }
-}
-if (Object.defineProperty) {
- var definePropertyWorksOnObject = doesDefinePropertyWork({});
- var definePropertyWorksOnDom = typeof document == "undefined" ||
- doesDefinePropertyWork(document.createElement("div"));
- if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
- var definePropertyFallback = Object.defineProperty;
- }
-}
-
-if (!Object.defineProperty || definePropertyFallback) {
- var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
- var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
- var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
- "on this javascript engine";
-
- Object.defineProperty = function defineProperty(object, property, descriptor) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT_TARGET + object);
- if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
- throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
- if (definePropertyFallback) {
- try {
- return definePropertyFallback.call(Object, object, property, descriptor);
- } catch (exception) {
- }
- }
- if (owns(descriptor, "value")) {
-
- if (supportsAccessors && (lookupGetter(object, property) ||
- lookupSetter(object, property)))
- {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
- delete object[property];
- object[property] = descriptor.value;
- object.__proto__ = prototype;
- } else {
- object[property] = descriptor.value;
- }
- } else {
- if (!supportsAccessors)
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
- if (owns(descriptor, "get"))
- defineGetter(object, property, descriptor.get);
- if (owns(descriptor, "set"))
- defineSetter(object, property, descriptor.set);
- }
-
- return object;
- };
-}
-if (!Object.defineProperties) {
- Object.defineProperties = function defineProperties(object, properties) {
- for (var property in properties) {
- if (owns(properties, property))
- Object.defineProperty(object, property, properties[property]);
- }
- return object;
- };
-}
-if (!Object.seal) {
- Object.seal = function seal(object) {
- return object;
- };
-}
-if (!Object.freeze) {
- Object.freeze = function freeze(object) {
- return object;
- };
-}
-try {
- Object.freeze(function () {});
-} catch (exception) {
- Object.freeze = (function freeze(freezeObject) {
- return function freeze(object) {
- if (typeof object == "function") {
- return object;
- } else {
- return freezeObject(object);
- }
- };
- })(Object.freeze);
-}
-if (!Object.preventExtensions) {
- Object.preventExtensions = function preventExtensions(object) {
- return object;
- };
-}
-if (!Object.isSealed) {
- Object.isSealed = function isSealed(object) {
- return false;
- };
-}
-if (!Object.isFrozen) {
- Object.isFrozen = function isFrozen(object) {
- return false;
- };
-}
-if (!Object.isExtensible) {
- Object.isExtensible = function isExtensible(object) {
- if (Object(object) === object) {
- throw new TypeError(); // TODO message
- }
- var name = '';
- while (owns(object, name)) {
- name += '?';
- }
- object[name] = true;
- var returnValue = owns(object, name);
- delete object[name];
- return returnValue;
- };
-}
-if (!Object.keys) {
- var hasDontEnumBug = true,
- dontEnums = [
- "toString",
- "toLocaleString",
- "valueOf",
- "hasOwnProperty",
- "isPrototypeOf",
- "propertyIsEnumerable",
- "constructor"
- ],
- dontEnumsLength = dontEnums.length;
-
- for (var key in {"toString": null}) {
- hasDontEnumBug = false;
- }
-
- Object.keys = function keys(object) {
-
- if (
- (typeof object != "object" && typeof object != "function") ||
- object === null
- ) {
- throw new TypeError("Object.keys called on a non-object");
- }
-
- var keys = [];
- for (var name in object) {
- if (owns(object, name)) {
- keys.push(name);
- }
- }
-
- if (hasDontEnumBug) {
- for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
- var dontEnum = dontEnums[i];
- if (owns(object, dontEnum)) {
- keys.push(dontEnum);
- }
- }
- }
- return keys;
- };
-
-}
-if (!Date.now) {
- Date.now = function now() {
- return new Date().getTime();
- };
-}
-var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
- "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
- "\u2029\uFEFF";
-if (!String.prototype.trim || ws.trim()) {
- ws = "[" + ws + "]";
- var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
- trimEndRegexp = new RegExp(ws + ws + "*$");
- String.prototype.trim = function trim() {
- return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
- };
-}
-
-function toInteger(n) {
- n = +n;
- if (n !== n) { // isNaN
- n = 0;
- } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- return n;
-}
-
-function isPrimitive(input) {
- var type = typeof input;
- return (
- input === null ||
- type === "undefined" ||
- type === "boolean" ||
- type === "number" ||
- type === "string"
- );
-}
-
-function toPrimitive(input) {
- var val, valueOf, toString;
- if (isPrimitive(input)) {
- return input;
- }
- valueOf = input.valueOf;
- if (typeof valueOf === "function") {
- val = valueOf.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- toString = input.toString;
- if (typeof toString === "function") {
- val = toString.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- throw new TypeError();
-}
-var toObject = function (o) {
- if (o == null) { // this matches both null and undefined
- throw new TypeError("can't convert "+o+" to object");
- }
- return Object(o);
-};
-
-});
-
-ace.define('ace/mode/lua_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/lua/luaparse'], function(require, exports, module) {
-
-
-var oop = require("../lib/oop");
-var Mirror = require("../worker/mirror").Mirror;
-var luaparse = require("../mode/lua/luaparse");
-
-var Worker = exports.Worker = function(sender) {
- Mirror.call(this, sender);
- this.setTimeout(500);
-};
-
-oop.inherits(Worker, Mirror);
-
-(function() {
-
- this.onUpdate = function() {
- var value = this.doc.getValue();
- try {
- luaparse.parse(value);
- } catch(e) {
- if (e instanceof SyntaxError) {
- this.sender.emit("error", {
- row: e.line - 1,
- column: e.column,
- text: e.message,
- type: "error"
- });
- }
- return;
- }
- this.sender.emit("ok");
- };
-
-}).call(Worker.prototype);
-
-});
-ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
-
-
-var Document = require("../document").Document;
-var lang = require("../lib/lang");
-
-var Mirror = exports.Mirror = function(sender) {
- this.sender = sender;
- var doc = this.doc = new Document("");
-
- var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
-
- var _self = this;
- sender.on("change", function(e) {
- doc.applyDeltas(e.data);
- deferredUpdate.schedule(_self.$timeout);
- });
-};
-
-(function() {
-
- this.$timeout = 500;
-
- this.setTimeout = function(timeout) {
- this.$timeout = timeout;
- };
-
- this.setValue = function(value) {
- this.doc.setValue(value);
- this.deferredUpdate.schedule(this.$timeout);
- };
-
- this.getValue = function(callbackId) {
- this.sender.callback(this.doc.getValue(), callbackId);
- };
-
- this.onUpdate = function() {
- };
-
-}).call(Mirror.prototype);
-
-});
-
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-var Range = require("./range").Range;
-var Anchor = require("./anchor").Anchor;
-
-var Document = function(text) {
- this.$lines = [];
- if (text.length == 0) {
- this.$lines = [""];
- } else if (Array.isArray(text)) {
- this._insertLines(0, text);
- } else {
- this.insert({row: 0, column:0}, text);
- }
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.setValue = function(text) {
- var len = this.getLength();
- this.remove(new Range(0, 0, len, this.getLine(len-1).length));
- this.insert({row: 0, column:0}, text);
- };
- this.getValue = function() {
- return this.getAllLines().join(this.getNewLineCharacter());
- };
- this.createAnchor = function(row, column) {
- return new Anchor(this, row, column);
- };
- if ("aaa".split(/a/).length == 0)
- this.$split = function(text) {
- return text.replace(/\r\n|\r/g, "\n").split("\n");
- }
- else
- this.$split = function(text) {
- return text.split(/\r\n|\r|\n/);
- };
-
-
- this.$detectNewLine = function(text) {
- var match = text.match(/^.*?(\r\n|\r|\n)/m);
- this.$autoNewLine = match ? match[1] : "\n";
- };
- this.getNewLineCharacter = function() {
- switch (this.$newLineMode) {
- case "windows":
- return "\r\n";
- case "unix":
- return "\n";
- default:
- return this.$autoNewLine;
- }
- };
-
- this.$autoNewLine = "\n";
- this.$newLineMode = "auto";
- this.setNewLineMode = function(newLineMode) {
- if (this.$newLineMode === newLineMode)
- return;
-
- this.$newLineMode = newLineMode;
- };
- this.getNewLineMode = function() {
- return this.$newLineMode;
- };
- this.isNewLine = function(text) {
- return (text == "\r\n" || text == "\r" || text == "\n");
- };
- this.getLine = function(row) {
- return this.$lines[row] || "";
- };
- this.getLines = function(firstRow, lastRow) {
- return this.$lines.slice(firstRow, lastRow + 1);
- };
- this.getAllLines = function() {
- return this.getLines(0, this.getLength());
- };
- this.getLength = function() {
- return this.$lines.length;
- };
- this.getTextRange = function(range) {
- if (range.start.row == range.end.row) {
- return this.getLine(range.start.row)
- .substring(range.start.column, range.end.column);
- }
- var lines = this.getLines(range.start.row, range.end.row);
- lines[0] = (lines[0] || "").substring(range.start.column);
- var l = lines.length - 1;
- if (range.end.row - range.start.row == l)
- lines[l] = lines[l].substring(0, range.end.column);
- return lines.join(this.getNewLineCharacter());
- };
-
- this.$clipPosition = function(position) {
- var length = this.getLength();
- if (position.row >= length) {
- position.row = Math.max(0, length - 1);
- position.column = this.getLine(length-1).length;
- } else if (position.row < 0)
- position.row = 0;
- return position;
- };
- this.insert = function(position, text) {
- if (!text || text.length === 0)
- return position;
-
- position = this.$clipPosition(position);
- if (this.getLength() <= 1)
- this.$detectNewLine(text);
-
- var lines = this.$split(text);
- var firstLine = lines.splice(0, 1)[0];
- var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
-
- position = this.insertInLine(position, firstLine);
- if (lastLine !== null) {
- position = this.insertNewLine(position); // terminate first line
- position = this._insertLines(position.row, lines);
- position = this.insertInLine(position, lastLine || "");
- }
- return position;
- };
- this.insertLines = function(row, lines) {
- if (row >= this.getLength())
- return this.insert({row: row, column: 0}, "\n" + lines.join("\n"));
- return this._insertLines(Math.max(row, 0), lines);
- };
- this._insertLines = function(row, lines) {
- if (lines.length == 0)
- return {row: row, column: 0};
- if (lines.length > 0xFFFF) {
- var end = this._insertLines(row, lines.slice(0xFFFF));
- lines = lines.slice(0, 0xFFFF);
- }
-
- var args = [row, 0];
- args.push.apply(args, lines);
- this.$lines.splice.apply(this.$lines, args);
-
- var range = new Range(row, 0, row + lines.length, 0);
- var delta = {
- action: "insertLines",
- range: range,
- lines: lines
- };
- this._emit("change", { data: delta });
- return end || range.end;
- };
- this.insertNewLine = function(position) {
- position = this.$clipPosition(position);
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column);
- this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
-
- var end = {
- row : position.row + 1,
- column : 0
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.insertInLine = function(position, text) {
- if (text.length == 0)
- return position;
-
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column) + text
- + line.substring(position.column);
-
- var end = {
- row : position.row,
- column : position.column + text.length
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: text
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.remove = function(range) {
- range.start = this.$clipPosition(range.start);
- range.end = this.$clipPosition(range.end);
-
- if (range.isEmpty())
- return range.start;
-
- var firstRow = range.start.row;
- var lastRow = range.end.row;
-
- if (range.isMultiLine()) {
- var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
- var lastFullRow = lastRow - 1;
-
- if (range.end.column > 0)
- this.removeInLine(lastRow, 0, range.end.column);
-
- if (lastFullRow >= firstFullRow)
- this._removeLines(firstFullRow, lastFullRow);
-
- if (firstFullRow != firstRow) {
- this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
- this.removeNewLine(range.start.row);
- }
- }
- else {
- this.removeInLine(firstRow, range.start.column, range.end.column);
- }
- return range.start;
- };
- this.removeInLine = function(row, startColumn, endColumn) {
- if (startColumn == endColumn)
- return;
-
- var range = new Range(row, startColumn, row, endColumn);
- var line = this.getLine(row);
- var removed = line.substring(startColumn, endColumn);
- var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
- this.$lines.splice(row, 1, newLine);
-
- var delta = {
- action: "removeText",
- range: range,
- text: removed
- };
- this._emit("change", { data: delta });
- return range.start;
- };
- this.removeLines = function(firstRow, lastRow) {
- if (firstRow < 0 || lastRow >= this.getLength())
- return this.remove(new Range(firstRow, 0, lastRow + 1, 0));
- return this._removeLines(firstRow, lastRow);
- };
-
- this._removeLines = function(firstRow, lastRow) {
- var range = new Range(firstRow, 0, lastRow + 1, 0);
- var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
-
- var delta = {
- action: "removeLines",
- range: range,
- nl: this.getNewLineCharacter(),
- lines: removed
- };
- this._emit("change", { data: delta });
- return removed;
- };
- this.removeNewLine = function(row) {
- var firstLine = this.getLine(row);
- var secondLine = this.getLine(row+1);
-
- var range = new Range(row, firstLine.length, row+1, 0);
- var line = firstLine + secondLine;
-
- this.$lines.splice(row, 2, line);
-
- var delta = {
- action: "removeText",
- range: range,
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
- };
- this.replace = function(range, text) {
- if (text.length == 0 && range.isEmpty())
- return range.start;
- if (text == this.getTextRange(range))
- return range.end;
-
- this.remove(range);
- if (text) {
- var end = this.insert(range.start, text);
- }
- else {
- end = range.start;
- }
-
- return end;
- };
- this.applyDeltas = function(deltas) {
- for (var i=0; i<deltas.length; i++) {
- var delta = deltas[i];
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this.insertLines(range.start.row, delta.lines);
- else if (delta.action == "insertText")
- this.insert(range.start, delta.text);
- else if (delta.action == "removeLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "removeText")
- this.remove(range);
- }
- };
- this.revertDeltas = function(deltas) {
- for (var i=deltas.length-1; i>=0; i--) {
- var delta = deltas[i];
-
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "insertText")
- this.remove(range);
- else if (delta.action == "removeLines")
- this._insertLines(range.start.row, delta.lines);
- else if (delta.action == "removeText")
- this.insert(range.start, delta.text);
- }
- };
- this.indexToPosition = function(index, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- for (var i = startRow || 0, l = lines.length; i < l; i++) {
- index -= lines[i].length + newlineLength;
- if (index < 0)
- return {row: i, column: index + lines[i].length + newlineLength};
- }
- return {row: l-1, column: lines[l-1].length};
- };
- this.positionToIndex = function(pos, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- var index = 0;
- var row = Math.min(pos.row, lines.length);
- for (var i = startRow || 0; i < row; ++i)
- index += lines[i].length + newlineLength;
-
- return index + pos.column;
- };
-
-}).call(Document.prototype);
-
-exports.Document = Document;
-});
-
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-var Range = function(startRow, startColumn, endRow, endColumn) {
- this.start = {
- row: startRow,
- column: startColumn
- };
-
- this.end = {
- row: endRow,
- column: endColumn
- };
-};
-
-(function() {
- this.isEqual = function(range) {
- return this.start.row === range.start.row &&
- this.end.row === range.end.row &&
- this.start.column === range.start.column &&
- this.end.column === range.end.column;
- };
- this.toString = function() {
- return ("Range: [" + this.start.row + "/" + this.start.column +
- "] -> [" + this.end.row + "/" + this.end.column + "]");
- };
-
- this.contains = function(row, column) {
- return this.compare(row, column) == 0;
- };
- this.compareRange = function(range) {
- var cmp,
- end = range.end,
- start = range.start;
-
- cmp = this.compare(end.row, end.column);
- if (cmp == 1) {
- cmp = this.compare(start.row, start.column);
- if (cmp == 1) {
- return 2;
- } else if (cmp == 0) {
- return 1;
- } else {
- return 0;
- }
- } else if (cmp == -1) {
- return -2;
- } else {
- cmp = this.compare(start.row, start.column);
- if (cmp == -1) {
- return -1;
- } else if (cmp == 1) {
- return 42;
- } else {
- return 0;
- }
- }
- };
- this.comparePoint = function(p) {
- return this.compare(p.row, p.column);
- };
- this.containsRange = function(range) {
- return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
- };
- this.intersects = function(range) {
- var cmp = this.compareRange(range);
- return (cmp == -1 || cmp == 0 || cmp == 1);
- };
- this.isEnd = function(row, column) {
- return this.end.row == row && this.end.column == column;
- };
- this.isStart = function(row, column) {
- return this.start.row == row && this.start.column == column;
- };
- this.setStart = function(row, column) {
- if (typeof row == "object") {
- this.start.column = row.column;
- this.start.row = row.row;
- } else {
- this.start.row = row;
- this.start.column = column;
- }
- };
- this.setEnd = function(row, column) {
- if (typeof row == "object") {
- this.end.column = row.column;
- this.end.row = row.row;
- } else {
- this.end.row = row;
- this.end.column = column;
- }
- };
- this.inside = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column) || this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideStart = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideEnd = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.compare = function(row, column) {
- if (!this.isMultiLine()) {
- if (row === this.start.row) {
- return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
- };
- }
-
- if (row < this.start.row)
- return -1;
-
- if (row > this.end.row)
- return 1;
-
- if (this.start.row === row)
- return column >= this.start.column ? 0 : -1;
-
- if (this.end.row === row)
- return column <= this.end.column ? 0 : 1;
-
- return 0;
- };
- this.compareStart = function(row, column) {
- if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareEnd = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareInside = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.clipRows = function(firstRow, lastRow) {
- if (this.end.row > lastRow)
- var end = {row: lastRow + 1, column: 0};
- else if (this.end.row < firstRow)
- var end = {row: firstRow, column: 0};
-
- if (this.start.row > lastRow)
- var start = {row: lastRow + 1, column: 0};
- else if (this.start.row < firstRow)
- var start = {row: firstRow, column: 0};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
- this.extend = function(row, column) {
- var cmp = this.compare(row, column);
-
- if (cmp == 0)
- return this;
- else if (cmp == -1)
- var start = {row: row, column: column};
- else
- var end = {row: row, column: column};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
-
- this.isEmpty = function() {
- return (this.start.row === this.end.row && this.start.column === this.end.column);
- };
- this.isMultiLine = function() {
- return (this.start.row !== this.end.row);
- };
- this.clone = function() {
- return Range.fromPoints(this.start, this.end);
- };
- this.collapseRows = function() {
- if (this.end.column == 0)
- return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
- else
- return new Range(this.start.row, 0, this.end.row, 0)
- };
- this.toScreenRange = function(session) {
- var screenPosStart = session.documentToScreenPosition(this.start);
- var screenPosEnd = session.documentToScreenPosition(this.end);
-
- return new Range(
- screenPosStart.row, screenPosStart.column,
- screenPosEnd.row, screenPosEnd.column
- );
- };
- this.moveBy = function(row, column) {
- this.start.row += row;
- this.start.column += column;
- this.end.row += row;
- this.end.column += column;
- };
-
-}).call(Range.prototype);
-Range.fromPoints = function(start, end) {
- return new Range(start.row, start.column, end.row, end.column);
-};
-Range.comparePoints = comparePoints;
-
-Range.comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-
-
-exports.Range = Range;
-});
-
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-
-var Anchor = exports.Anchor = function(doc, row, column) {
- this.$onChange = this.onChange.bind(this);
- this.attach(doc);
-
- if (typeof column == "undefined")
- this.setPosition(row.row, row.column);
- else
- this.setPosition(row, column);
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.getPosition = function() {
- return this.$clipPositionToDocument(this.row, this.column);
- };
- this.getDocument = function() {
- return this.document;
- };
- this.onChange = function(e) {
- var delta = e.data;
- var range = delta.range;
-
- if (range.start.row == range.end.row && range.start.row != this.row)
- return;
-
- if (range.start.row > this.row)
- return;
-
- if (range.start.row == this.row && range.start.column > this.column)
- return;
-
- var row = this.row;
- var column = this.column;
- var start = range.start;
- var end = range.end;
-
- if (delta.action === "insertText") {
- if (start.row === row && start.column <= column) {
- if (start.row === end.row) {
- column += end.column - start.column;
- } else {
- column -= start.column;
- row += end.row - start.row;
- }
- } else if (start.row !== end.row && start.row < row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "insertLines") {
- if (start.row <= row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "removeText") {
- if (start.row === row && start.column < column) {
- if (end.column >= column)
- column = start.column;
- else
- column = Math.max(0, column - (end.column - start.column));
-
- } else if (start.row !== end.row && start.row < row) {
- if (end.row === row)
- column = Math.max(0, column - end.column) + start.column;
- row -= (end.row - start.row);
- } else if (end.row === row) {
- row -= end.row - start.row;
- column = Math.max(0, column - end.column) + start.column;
- }
- } else if (delta.action == "removeLines") {
- if (start.row <= row) {
- if (end.row <= row)
- row -= end.row - start.row;
- else {
- row = start.row;
- column = 0;
- }
- }
- }
-
- this.setPosition(row, column, true);
- };
- this.setPosition = function(row, column, noClip) {
- var pos;
- if (noClip) {
- pos = {
- row: row,
- column: column
- };
- } else {
- pos = this.$clipPositionToDocument(row, column);
- }
-
- if (this.row == pos.row && this.column == pos.column)
- return;
-
- var old = {
- row: this.row,
- column: this.column
- };
-
- this.row = pos.row;
- this.column = pos.column;
- this._emit("change", {
- old: old,
- value: pos
- });
- };
- this.detach = function() {
- this.document.removeEventListener("change", this.$onChange);
- };
- this.attach = function(doc) {
- this.document = doc || this.document;
- this.document.on("change", this.$onChange);
- };
- this.$clipPositionToDocument = function(row, column) {
- var pos = {};
-
- if (row >= this.document.getLength()) {
- pos.row = Math.max(0, this.document.getLength() - 1);
- pos.column = this.document.getLine(pos.row).length;
- }
- else if (row < 0) {
- pos.row = 0;
- pos.column = 0;
- }
- else {
- pos.row = row;
- pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
- }
-
- if (column < 0)
- pos.column = 0;
-
- return pos;
- };
-
-}).call(Anchor.prototype);
-
-});
-
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.stringReverse = function(string) {
- return string.split("").reverse().join("");
-};
-
-exports.stringRepeat = function (string, count) {
- var result = '';
- while (count > 0) {
- if (count & 1)
- result += string;
-
- if (count >>= 1)
- string += string;
- }
- return result;
-};
-
-var trimBeginRegexp = /^\s\s*/;
-var trimEndRegexp = /\s\s*$/;
-
-exports.stringTrimLeft = function (string) {
- return string.replace(trimBeginRegexp, '');
-};
-
-exports.stringTrimRight = function (string) {
- return string.replace(trimEndRegexp, '');
-};
-
-exports.copyObject = function(obj) {
- var copy = {};
- for (var key in obj) {
- copy[key] = obj[key];
- }
- return copy;
-};
-
-exports.copyArray = function(array){
- var copy = [];
- for (var i=0, l=array.length; i<l; i++) {
- if (array[i] && typeof array[i] == "object")
- copy[i] = this.copyObject( array[i] );
- else
- copy[i] = array[i];
- }
- return copy;
-};
-
-exports.deepCopy = function (obj) {
- if (typeof obj != "object") {
- return obj;
- }
-
- var copy = obj.constructor();
- for (var key in obj) {
- if (typeof obj[key] == "object") {
- copy[key] = this.deepCopy(obj[key]);
- } else {
- copy[key] = obj[key];
- }
- }
- return copy;
-};
-
-exports.arrayToMap = function(arr) {
- var map = {};
- for (var i=0; i<arr.length; i++) {
- map[arr[i]] = 1;
- }
- return map;
-
-};
-
-exports.createMap = function(props) {
- var map = Object.create(null);
- for (var i in props) {
- map[i] = props[i];
- }
- return map;
-};
-exports.arrayRemove = function(array, value) {
- for (var i = 0; i <= array.length; i++) {
- if (value === array[i]) {
- array.splice(i, 1);
- }
- }
-};
-
-exports.escapeRegExp = function(str) {
- return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
-};
-
-exports.escapeHTML = function(str) {
- return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
-};
-
-exports.getMatchOffsets = function(string, regExp) {
- var matches = [];
-
- string.replace(regExp, function(str) {
- matches.push({
- offset: arguments[arguments.length-2],
- length: str.length
- });
- });
-
- return matches;
-};
-exports.deferredCall = function(fcn) {
-
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var deferred = function(timeout) {
- deferred.cancel();
- timer = setTimeout(callback, timeout || 0);
- return deferred;
- };
-
- deferred.schedule = deferred;
-
- deferred.call = function() {
- this.cancel();
- fcn();
- return deferred;
- };
-
- deferred.cancel = function() {
- clearTimeout(timer);
- timer = null;
- return deferred;
- };
-
- return deferred;
-};
-
-
-exports.delayedCall = function(fcn, defaultTimeout) {
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var _self = function(timeout) {
- timer && clearTimeout(timer);
- timer = setTimeout(callback, timeout || defaultTimeout);
- };
-
- _self.delay = _self;
- _self.schedule = function(timeout) {
- if (timer == null)
- timer = setTimeout(callback, timeout || 0);
- };
-
- _self.call = function() {
- this.cancel();
- fcn();
- };
-
- _self.cancel = function() {
- timer && clearTimeout(timer);
- timer = null;
- };
-
- _self.isPending = function() {
- return timer;
- };
-
- return _self;
-};
-});
-ace.define('ace/mode/lua/luaparse', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-(function (root, name, factory) {
- factory(exports)
-}(this, 'luaparse', function (exports) {
-
-
- exports.version = '0.1.4';
-
- var input, options, length;
- var defaultOptions = exports.defaultOptions = {
- wait: false
- , comments: true
- , scope: false
- , locations: false
- , ranges: false
- };
-
- var EOF = 1, StringLiteral = 2, Keyword = 4, Identifier = 8
- , NumericLiteral = 16, Punctuator = 32, BooleanLiteral = 64
- , NilLiteral = 128, VarargLiteral = 256;
-
- exports.tokenTypes = { EOF: EOF, StringLiteral: StringLiteral
- , Keyword: Keyword, Identifier: Identifier, NumericLiteral: NumericLiteral
- , Punctuator: Punctuator, BooleanLiteral: BooleanLiteral
- , NilLiteral: NilLiteral, VarargLiteral: VarargLiteral
- };
-
- var errors = exports.errors = {
- unexpected: 'Unexpected %1 \'%2\' near \'%3\''
- , expected: '\'%1\' expected near \'%2\''
- , expectedToken: '%1 expected near \'%2\''
- , unfinishedString: 'unfinished string near \'%1\''
- , malformedNumber: 'malformed number near \'%1\''
- };
-
- var ast = exports.ast = {
- labelStatement: function(label) {
- return {
- type: 'LabelStatement'
- , label: label
- };
- }
-
- , breakStatement: function() {
- return {
- type: 'BreakStatement'
- };
- }
-
- , gotoStatement: function(label) {
- return {
- type: 'GotoStatement'
- , label: label
- };
- }
-
- , returnStatement: function(args) {
- return {
- type: 'ReturnStatement'
- , 'arguments': args
- };
- }
-
- , ifStatement: function(clauses) {
- return {
- type: 'IfStatement'
- , clauses: clauses
- };
- }
- , ifClause: function(condition, body) {
- return {
- type: 'IfClause'
- , condition: condition
- , body: body
- };
- }
- , elseifClause: function(condition, body) {
- return {
- type: 'ElseifClause'
- , condition: condition
- , body: body
- };
- }
- , elseClause: function(body) {
- return {
- type: 'ElseClause'
- , body: body
- };
- }
-
- , whileStatement: function(condition, body) {
- return {
- type: 'WhileStatement'
- , condition: condition
- , body: body
- };
- }
-
- , doStatement: function(body) {
- return {
- type: 'DoStatement'
- , body: body
- };
- }
-
- , repeatStatement: function(condition, body) {
- return {
- type: 'RepeatStatement'
- , condition: condition
- , body: body
- };
- }
-
- , localStatement: function(variables, init) {
- return {
- type: 'LocalStatement'
- , variables: variables
- , init: init
- };
- }
-
- , assignmentStatement: function(variables, init) {
- return {
- type: 'AssignmentStatement'
- , variables: variables
- , init: init
- };
- }
-
- , callStatement: function(expression) {
- return {
- type: 'CallStatement'
- , expression: expression
- };
- }
-
- , functionStatement: function(identifier, parameters, isLocal, body) {
- return {
- type: 'FunctionDeclaration'
- , identifier: identifier
- , isLocal: isLocal
- , parameters: parameters
- , body: body
- };
- }
-
- , forNumericStatement: function(variable, start, end, step, body) {
- return {
- type: 'ForNumericStatement'
- , variable: variable
- , start: start
- , end: end
- , step: step
- , body: body
- };
- }
-
- , forGenericStatement: function(variables, iterators, body) {
- return {
- type: 'ForGenericStatement'
- , variables: variables
- , iterators: iterators
- , body: body
- };
- }
-
- , chunk: function(body) {
- return {
- type: 'Chunk'
- , body: body
- };
- }
-
- , identifier: function(name) {
- return {
- type: 'Identifier'
- , name: name
- };
- }
-
- , literal: function(type, value, raw) {
- type = (type === StringLiteral) ? 'StringLiteral'
- : (type === NumericLiteral) ? 'NumericLiteral'
- : (type === BooleanLiteral) ? 'BooleanLiteral'
- : (type === NilLiteral) ? 'NilLiteral'
- : 'VarargLiteral';
-
- return {
- type: type
- , value: value
- , raw: raw
- };
- }
-
- , tableKey: function(key, value) {
- return {
- type: 'TableKey'
- , key: key
- , value: value
- };
- }
- , tableKeyString: function(key, value) {
- return {
- type: 'TableKeyString'
- , key: key
- , value: value
- };
- }
- , tableValue: function(value) {
- return {
- type: 'TableValue'
- , value: value
- };
- }
-
-
- , tableConstructorExpression: function(fields) {
- return {
- type: 'TableConstructorExpression'
- , fields: fields
- };
- }
- , binaryExpression: function(operator, left, right) {
- var type = ('and' === operator || 'or' === operator) ?
- 'LogicalExpression' :
- 'BinaryExpression';
-
- return {
- type: type
- , operator: operator
- , left: left
- , right: right
- };
- }
- , unaryExpression: function(operator, argument) {
- return {
- type: 'UnaryExpression'
- , operator: operator
- , argument: argument
- };
- }
- , memberExpression: function(base, indexer, identifier) {
- return {
- type: 'MemberExpression'
- , indexer: indexer
- , identifier: identifier
- , base: base
- };
- }
-
- , indexExpression: function(base, index) {
- return {
- type: 'IndexExpression'
- , base: base
- , index: index
- };
- }
-
- , callExpression: function(base, args) {
- return {
- type: 'CallExpression'
- , base: base
- , 'arguments': args
- };
- }
-
- , tableCallExpression: function(base, args) {
- return {
- type: 'TableCallExpression'
- , base: base
- , 'arguments': args
- };
- }
-
- , stringCallExpression: function(base, argument) {
- return {
- type: 'StringCallExpression'
- , base: base
- , argument: argument
- };
- }
-
- , comment: function(value, raw) {
- return {
- type: 'Comment'
- , value: value
- , raw: raw
- };
- }
- };
-
- function finishNode(node) {
- if (trackLocations) {
- var location = locations.pop();
- location.complete();
- if (options.locations) node.loc = location.loc;
- if (options.ranges) node.range = location.range;
- }
- return node;
- }
-
- var slice = Array.prototype.slice
- , toString = Object.prototype.toString
- , indexOf = function indexOf(array, element) {
- for (var i = 0, length = array.length; i < length; i++) {
- if (array[i] === element) return i;
- }
- return -1;
- };
-
- function indexOfObject(array, property, element) {
- for (var i = 0, length = array.length; i < length; i++) {
- if (array[i][property] === element) return i;
- }
- return -1;
- }
-
- function sprintf(format) {
- var args = slice.call(arguments, 1);
- format = format.replace(/%(\d)/g, function (match, index) {
- return '' + args[index - 1] || '';
- });
- return format;
- }
-
- function extend() {
- var args = slice.call(arguments)
- , dest = {}
- , src, prop;
-
- for (var i = 0, length = args.length; i < length; i++) {
- src = args[i];
- for (prop in src) if (src.hasOwnProperty(prop)) {
- dest[prop] = src[prop];
- }
- }
- return dest;
- }
-
- function raise(token) {
- var message = sprintf.apply(null, slice.call(arguments, 1))
- , error, col;
-
- if ('undefined' !== typeof token.line) {
- col = token.range[0] - token.lineStart;
- error = new SyntaxError(sprintf('[%1:%2] %3', token.line, col, message));
- error.line = token.line;
- error.index = token.range[0];
- error.column = col;
- } else {
- col = index - lineStart + 1;
- error = new SyntaxError(sprintf('[%1:%2] %3', line, col, message));
- error.index = index;
- error.line = line;
- error.column = col;
- }
- throw error;
- }
-
- function raiseUnexpectedToken(type, token) {
- raise(token, errors.expectedToken, type, token.value);
- }
-
- function unexpected(found, near) {
- if ('undefined' === typeof near) near = lookahead.value;
- if ('undefined' !== typeof found.type) {
- var type;
- switch (found.type) {
- case StringLiteral: type = 'string'; break;
- case Keyword: type = 'keyword'; break;
- case Identifier: type = 'identifier'; break;
- case NumericLiteral: type = 'number'; break;
- case Punctuator: type = 'symbol'; break;
- case BooleanLiteral: type = 'boolean'; break;
- case NilLiteral:
- return raise(found, errors.unexpected, 'symbol', 'nil', near);
- }
- return raise(found, errors.unexpected, type, found.value, near);
- }
- return raise(found, errors.unexpected, 'symbol', found, near);
- }
-
- var index
- , token
- , previousToken
- , lookahead
- , comments
- , tokenStart
- , line
- , lineStart;
-
- exports.lex = lex;
-
- function lex() {
- skipWhiteSpace();
- while (45 === input.charCodeAt(index) &&
- 45 === input.charCodeAt(index + 1)) {
- scanComment();
- skipWhiteSpace();
- }
- if (index >= length) return {
- type : EOF
- , value: '<eof>'
- , line: line
- , lineStart: lineStart
- , range: [index, index]
- };
-
- var charCode = input.charCodeAt(index)
- , next = input.charCodeAt(index + 1);
- tokenStart = index;
- if (isIdentifierStart(charCode)) return scanIdentifierOrKeyword();
-
- switch (charCode) {
- case 39: case 34: // '"
- return scanStringLiteral();
- case 48: case 49: case 50: case 51: case 52: case 53:
- case 54: case 55: case 56: case 57:
- return scanNumericLiteral();
-
- case 46: // .
- if (isDecDigit(next)) return scanNumericLiteral();
- if (46 === next) {
- if (46 === input.charCodeAt(index + 2)) return scanVarargLiteral();
- return scanPunctuator('..');
- }
- return scanPunctuator('.');
-
- case 61: // =
- if (61 === next) return scanPunctuator('==');
- return scanPunctuator('=');
-
- case 62: // >
- if (61 === next) return scanPunctuator('>=');
- return scanPunctuator('>');
-
- case 60: // <
- if (61 === next) return scanPunctuator('<=');
- return scanPunctuator('<');
-
- case 126: // ~
- if (61 === next) return scanPunctuator('~=');
- return raise({}, errors.expected, '=', '~');
-
- case 58: // :
- if (58 === next) return scanPunctuator('::');
- return scanPunctuator(':');
-
- case 91: // [
- if (91 === next || 61 === next) return scanLongStringLiteral();
- return scanPunctuator('[');
- case 42: case 47: case 94: case 37: case 44: case 123: case 125:
- case 93: case 40: case 41: case 59: case 35: case 45: case 43:
- return scanPunctuator(input.charAt(index));
- }
-
- return unexpected(input.charAt(index));
- }
-
- function skipWhiteSpace() {
- while (index < length) {
- var charCode = input.charCodeAt(index);
- if (isWhiteSpace(charCode)) {
- index++;
- } else if (isLineTerminator(charCode)) {
- line++;
- lineStart = ++index;
- } else {
- break;
- }
- }
- }
-
- function scanIdentifierOrKeyword() {
- var value, type;
- while (isIdentifierPart(input.charCodeAt(++index)));
- value = input.slice(tokenStart, index);
- if (isKeyword(value)) {
- type = Keyword;
- } else if ('true' === value || 'false' === value) {
- type = BooleanLiteral;
- value = ('true' === value);
- } else if ('nil' === value) {
- type = NilLiteral;
- value = null;
- } else {
- type = Identifier;
- }
-
- return {
- type: type
- , value: value
- , line: line
- , lineStart: lineStart
- , range: [tokenStart, index]
- };
- }
-
- function scanPunctuator(value) {
- index += value.length;
- return {
- type: Punctuator
- , value: value
- , line: line
- , lineStart: lineStart
- , range: [tokenStart, index]
- };
- }
-
- function scanVarargLiteral() {
- index += 3;
- return {
- type: VarargLiteral
- , value: '...'
- , line: line
- , lineStart: lineStart
- , range: [tokenStart, index]
- };
- }
-
- function scanStringLiteral() {
- var delimiter = input.charCodeAt(index++)
- , stringStart = index
- , string = ''
- , charCode;
-
- while (index < length) {
- charCode = input.charCodeAt(index++);
- if (delimiter === charCode) break;
- if (92 === charCode) { // \
- string += input.slice(stringStart, index - 1) + readEscapeSequence();
- stringStart = index;
- }
- else if (index >= length || isLineTerminator(charCode)) {
- string += input.slice(stringStart, index - 1);
- raise({}, errors.unfinishedString, string + String.fromCharCode(charCode));
- }
- }
- string += input.slice(stringStart, index - 1);
-
- return {
- type: StringLiteral
- , value: string
- , line: line
- , lineStart: lineStart
- , range: [tokenStart, index]
- };
- }
-
- function scanLongStringLiteral() {
- var string = readLongString();
- if (false === string) raise(token, errors.expected, '[', token.value);
-
- return {
- type: StringLiteral
- , value: string
- , line: line
- , lineStart: lineStart
- , range: [tokenStart, index]
- };
- }
-
- function scanNumericLiteral() {
- var character = input.charAt(index)
- , next = input.charAt(index + 1);
-
- var value = ('0' === character && 'xX'.indexOf(next || null) >= 0) ?
- readHexLiteral() : readDecLiteral();
-
- return {
- type: NumericLiteral
- , value: value
- , line: line
- , lineStart: lineStart
- , range: [tokenStart, index]
- };
- }
-
- function readHexLiteral() {
- var fraction = 0 // defaults to 0 as it gets summed
- , binaryExponent = 1 // defaults to 1 as it gets multiplied
- , binarySign = 1 // positive
- , digit, fractionStart, exponentStart, digitStart;
-
- digitStart = index += 2; // Skip 0x part
- if (!isHexDigit(input.charCodeAt(index)))
- raise({}, errors.malformedNumber, input.slice(tokenStart, index));
-
- while (isHexDigit(input.charCodeAt(index))) index++;
- digit = parseInt(input.slice(digitStart, index), 16);
- if ('.' === input.charAt(index)) {
- fractionStart = ++index;
-
- while (isHexDigit(input.charCodeAt(index))) index++;
- fraction = input.slice(fractionStart, index);
- fraction = (fractionStart === index) ? 0
- : parseInt(fraction, 16) / Math.pow(16, index - fractionStart);
- }
- if ('pP'.indexOf(input.charAt(index) || null) >= 0) {
- index++;
- if ('+-'.indexOf(input.charAt(index) || null) >= 0)
- binarySign = ('+' === input.charAt(index++)) ? 1 : -1;
-
- exponentStart = index;
- if (!isDecDigit(input.charCodeAt(index)))
- raise({}, errors.malformedNumber, input.slice(tokenStart, index));
-
- while (isDecDigit(input.charCodeAt(index))) index++;
- binaryExponent = input.slice(exponentStart, index);
- binaryExponent = Math.pow(2, binaryExponent * binarySign);
- }
-
- return (digit + fraction) * binaryExponent;
- }
-
- function readDecLiteral() {
- while (isDecDigit(input.charCodeAt(index))) index++;
- if ('.' === input.charAt(index)) {
- index++;
- while (isDecDigit(input.charCodeAt(index))) index++;
- }
- if ('eE'.indexOf(input.charAt(index) || null) >= 0) {
- index++;
- if ('+-'.indexOf(input.charAt(index) || null) >= 0) index++;
- if (!isDecDigit(input.charCodeAt(index)))
- raise({}, errors.malformedNumber, input.slice(tokenStart, index));
-
- while (isDecDigit(input.charCodeAt(index))) index++;
- }
-
- return parseFloat(input.slice(tokenStart, index));
- }
-
- function readEscapeSequence() {
- var sequenceStart = index;
- switch (input.charAt(index)) {
- case 'n': index++; return '\n';
- case 'r': index++; return '\r';
- case 't': index++; return '\t';
- case 'v': index++; return '\x0B';
- case 'b': index++; return '\b';
- case 'f': index++; return '\f';
- case 'z': index++; skipWhiteSpace(); return '';
- case 'x':
- if (isHexDigit(input.charCodeAt(index + 1)) &&
- isHexDigit(input.charCodeAt(index + 2))) {
- index += 3;
- return '\\' + input.slice(sequenceStart, index);
- }
- return '\\' + input.charAt(index++);
- default:
- if (isDecDigit(input.charCodeAt(index))) {
- while (isDecDigit(input.charCodeAt(++index)));
- return '\\' + input.slice(sequenceStart, index);
- }
- return input.charAt(index++);
- }
- }
-
- function scanComment() {
- tokenStart = index;
- index += 2; // --
-
- var character = input.charAt(index)
- , content = ''
- , isLong = false
- , commentStart = index
- , lineStartComment = lineStart
- , lineComment = line;
-
- if ('[' === character) {
- content = readLongString();
- if (false === content) content = character;
- else isLong = true;
- }
- if (!isLong) {
- while (index < length) {
- if (isLineTerminator(input.charCodeAt(index))) break;
- index++;
- }
- if (options.comments) content = input.slice(commentStart, index);
- }
-
- if (options.comments) {
- var node = ast.comment(content, input.slice(tokenStart, index));
- if (options.locations) {
- node.loc = {
- start: { line: lineComment, column: tokenStart - lineStartComment }
- , end: { line: line, column: index - lineStart }
- };
- }
- if (options.ranges) {
- node.range = [tokenStart, index];
- }
- comments.push(node);
- }
- }
-
- function readLongString() {
- var level = 0
- , content = ''
- , terminator = false
- , character, stringStart;
-
- index++; // [
- while ('=' === input.charAt(index + level)) level++;
- if ('[' !== input.charAt(index + level)) return false;
-
- index += level + 1;
- if (isLineTerminator(input.charCodeAt(index))) {
- line++;
- lineStart = index++;
- }
-
- stringStart = index;
- while (index < length) {
- character = input.charAt(index++);
- if (isLineTerminator(character.charCodeAt(0))) {
- line++;
- lineStart = index;
- }
- if (']' === character) {
- terminator = true;
- for (var i = 0; i < level; i++) {
- if ('=' !== input.charAt(index + i)) terminator = false;
- }
- if (']' !== input.charAt(index + level)) terminator = false;
- }
- if (terminator) break;
- }
- content += input.slice(stringStart, index - 1);
- index += level + 1;
-
- return content;
- }
-
- function next() {
- previousToken = token;
- token = lookahead;
- lookahead = lex();
- }
-
- function consume(value) {
- if (value === token.value) {
- next();
- return true;
- }
- return false;
- }
-
- function expect(value) {
- if (value === token.value) next();
- else raise(token, errors.expected, value, token.value);
- }
-
- function isWhiteSpace(charCode) {
- return 9 === charCode || 32 === charCode || 0xB === charCode || 0xC === charCode;
- }
-
- function isLineTerminator(charCode) {
- return 10 === charCode || 13 === charCode;
- }
-
- function isDecDigit(charCode) {
- return charCode >= 48 && charCode <= 57;
- }
-
- function isHexDigit(charCode) {
- return (charCode >= 48 && charCode <= 57) || (charCode >= 97 && charCode <= 102) || (charCode >= 65 && charCode <= 70);
- }
-
- function isIdentifierStart(charCode) {
- return (charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122) || 95 === charCode;
- }
-
- function isIdentifierPart(charCode) {
- return (charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122) || 95 === charCode || (charCode >= 48 && charCode <= 57);
- }
-
- function isKeyword(id) {
- switch (id.length) {
- case 2:
- return 'do' === id || 'if' === id || 'in' === id || 'or' === id;
- case 3:
- return 'and' === id || 'end' === id || 'for' === id || 'not' === id;
- case 4:
- return 'else' === id || 'goto' === id || 'then' === id;
- case 5:
- return 'break' === id || 'local' === id || 'until' === id || 'while' === id;
- case 6:
- return 'elseif' === id || 'repeat' === id || 'return' === id;
- case 8:
- return 'function' === id;
- }
- return false;
- }
-
- function isUnary(token) {
- if (Punctuator === token.type) return '#-'.indexOf(token.value) >= 0;
- if (Keyword === token.type) return 'not' === token.value;
- return false;
- }
- function isCallExpression(expression) {
- switch (expression.type) {
- case 'CallExpression':
- case 'TableCallExpression':
- case 'StringCallExpression':
- return true;
- }
- return false;
- }
-
- function isBlockFollow(token) {
- if (EOF === token.type) return true;
- if (Keyword !== token.type) return false;
- switch (token.value) {
- case 'else': case 'elseif':
- case 'end': case 'until':
- return true;
- default:
- return false;
- }
- }
- var scopes
- , scopeDepth
- , globals;
- function createScope() {
- scopes.push(Array.apply(null, scopes[scopeDepth++]));
- }
- function exitScope() {
- scopes.pop();
- scopeDepth--;
- }
- function scopeIdentifierName(name) {
- if (-1 !== indexOf(scopes[scopeDepth], name)) return;
- scopes[scopeDepth].push(name);
- }
- function scopeIdentifier(node) {
- scopeIdentifierName(node.name);
- attachScope(node, true);
- }
- function attachScope(node, isLocal) {
- if (!isLocal && -1 === indexOfObject(globals, 'name', node.name))
- globals.push(node);
-
- node.isLocal = isLocal;
- }
- function scopeHasName(name) {
- return (-1 !== indexOf(scopes[scopeDepth], name));
- }
-
- var locations = []
- , trackLocations;
-
- function createLocationMarker() {
- return new Marker(token);
- }
-
- function Marker(token) {
- if (options.locations) {
- this.loc = {
- start: {
- line: token.line
- , column: token.range[0] - token.lineStart
- }
- , end: {
- line: 0
- , column: 0
- }
- };
- }
- if (options.ranges) this.range = [token.range[0], 0];
- }
- Marker.prototype.complete = function() {
- if (options.locations) {
- this.loc.end.line = previousToken.line;
- this.loc.end.column = previousToken.range[1] - previousToken.lineStart;
- }
- if (options.ranges) {
- this.range[1] = previousToken.range[1];
- }
- };
- function markLocation() {
- if (trackLocations) locations.push(createLocationMarker());
- }
- function pushLocation(marker) {
- if (trackLocations) locations.push(marker);
- }
-
- function parseChunk() {
- next();
- markLocation();
- var body = parseBlock();
- if (EOF !== token.type) unexpected(token);
- if (trackLocations && !body.length) previousToken = token;
- return finishNode(ast.chunk(body));
- }
-
- function parseBlock(terminator) {
- var block = []
- , statement;
- if (options.scope) createScope();
-
- while (!isBlockFollow(token)) {
- if ('return' === token.value) {
- block.push(parseStatement());
- break;
- }
- statement = parseStatement();
- if (statement) block.push(statement);
- }
-
- if (options.scope) exitScope();
- return block;
- }
-
- function parseStatement() {
- markLocation();
- if (Keyword === token.type) {
- switch (token.value) {
- case 'local': next(); return parseLocalStatement();
- case 'if': next(); return parseIfStatement();
- case 'return': next(); return parseReturnStatement();
- case 'function': next();
- var name = parseFunctionName();
- return parseFunctionDeclaration(name);
- case 'while': next(); return parseWhileStatement();
- case 'for': next(); return parseForStatement();
- case 'repeat': next(); return parseRepeatStatement();
- case 'break': next(); return parseBreakStatement();
- case 'do': next(); return parseDoStatement();
- case 'goto': next(); return parseGotoStatement();
- }
- }
-
- if (Punctuator === token.type) {
- if (consume('::')) return parseLabelStatement();
- }
- if (trackLocations) locations.pop();
- if (consume(';')) return;
-
- return parseAssignmentOrCallStatement();
- }
-
- function parseLabelStatement() {
- var name = token.value
- , label = parseIdentifier();
-
- if (options.scope) {
- scopeIdentifierName('::' + name + '::');
- attachScope(label, true);
- }
-
- expect('::');
- return finishNode(ast.labelStatement(label));
- }
-
- function parseBreakStatement() {
- return finishNode(ast.breakStatement());
- }
-
- function parseGotoStatement() {
- var name = token.value
- , label = parseIdentifier();
-
- if (options.scope) label.isLabel = scopeHasName('::' + name + '::');
- return finishNode(ast.gotoStatement(label));
- }
-
- function parseDoStatement() {
- var body = parseBlock();
- expect('end');
- return finishNode(ast.doStatement(body));
- }
-
- function parseWhileStatement() {
- var condition = parseExpectedExpression();
- expect('do');
- var body = parseBlock();
- expect('end');
- return finishNode(ast.whileStatement(condition, body));
- }
-
- function parseRepeatStatement() {
- var body = parseBlock();
- expect('until');
- var condition = parseExpectedExpression();
- return finishNode(ast.repeatStatement(condition, body));
- }
-
- function parseReturnStatement() {
- var expressions = [];
-
- if ('end' !== token.value) {
- var expression = parseExpression();
- if (null != expression) expressions.push(expression);
- while (consume(',')) {
- expression = parseExpectedExpression();
- expressions.push(expression);
- }
- consume(';'); // grammar tells us ; is optional here.
- }
- return finishNode(ast.returnStatement(expressions));
- }
-
- function parseIfStatement() {
- var clauses = []
- , condition
- , body
- , marker;
- if (trackLocations) {
- marker = locations[locations.length - 1];
- locations.push(marker);
- }
- condition = parseExpectedExpression();
- expect('then');
- body = parseBlock();
- clauses.push(finishNode(ast.ifClause(condition, body)));
-
- if (trackLocations) marker = createLocationMarker();
- while (consume('elseif')) {
- pushLocation(marker);
- condition = parseExpectedExpression();
- expect('then');
- body = parseBlock();
- clauses.push(finishNode(ast.elseifClause(condition, body)));
- if (trackLocations) marker = createLocationMarker();
- }
-
- if (consume('else')) {
- if (trackLocations) {
- marker = new Marker(previousToken);
- locations.push(marker);
- }
- body = parseBlock();
- clauses.push(finishNode(ast.elseClause(body)));
- }
-
- expect('end');
- return finishNode(ast.ifStatement(clauses));
- }
-
- function parseForStatement() {
- var variable = parseIdentifier()
- , body;
- if (options.scope) scopeIdentifier(variable);
- if (consume('=')) {
- var start = parseExpectedExpression();
- expect(',');
- var end = parseExpectedExpression();
- var step = consume(',') ? parseExpectedExpression() : null;
-
- expect('do');
- body = parseBlock();
- expect('end');
-
- return finishNode(ast.forNumericStatement(variable, start, end, step, body));
- }
- else {
- var variables = [variable];
- while (consume(',')) {
- variable = parseIdentifier();
- if (options.scope) scopeIdentifier(variable);
- variables.push(variable);
- }
- expect('in');
- var iterators = [];
- do {
- var expression = parseExpectedExpression();
- iterators.push(expression);
- } while (consume(','));
-
- expect('do');
- body = parseBlock();
- expect('end');
-
- return finishNode(ast.forGenericStatement(variables, iterators, body));
- }
- }
-
- function parseLocalStatement() {
- var name;
-
- if (Identifier === token.type) {
- var variables = []
- , init = [];
-
- do {
- name = parseIdentifier();
-
- variables.push(name);
- } while (consume(','));
-
- if (consume('=')) {
- do {
- var expression = parseExpectedExpression();
- init.push(expression);
- } while (consume(','));
- }
- if (options.scope) {
- for (var i = 0, l = variables.length; i < l; i++) {
- scopeIdentifier(variables[i]);
- }
- }
-
- return finishNode(ast.localStatement(variables, init));
- }
- if (consume('function')) {
- name = parseIdentifier();
- if (options.scope) scopeIdentifier(name);
- return parseFunctionDeclaration(name, true);
- } else {
- raiseUnexpectedToken('<name>', token);
- }
- }
-
- function parseAssignmentOrCallStatement() {
- var previous = token
- , expression, marker;
-
- if (trackLocations) marker = createLocationMarker();
- expression = parsePrefixExpression();
-
- if (null == expression) return unexpected(token);
- if (',='.indexOf(token.value) >= 0) {
- var variables = [expression]
- , init = []
- , exp;
-
- while (consume(',')) {
- exp = parsePrefixExpression();
- if (null == exp) raiseUnexpectedToken('<expression>', token);
- variables.push(exp);
- }
- expect('=');
- do {
- exp = parseExpectedExpression();
- init.push(exp);
- } while (consume(','));
-
- pushLocation(marker);
- return finishNode(ast.assignmentStatement(variables, init));
- }
- if (isCallExpression(expression)) {
- pushLocation(marker);
- return finishNode(ast.callStatement(expression));
- }
- return unexpected(previous);
- }
-
- function parseIdentifier() {
- markLocation();
- var identifier = token.value;
- if (Identifier !== token.type) raiseUnexpectedToken('<name>', token);
- next();
- return finishNode(ast.identifier(identifier));
- }
-
- function parseFunctionDeclaration(name, isLocal) {
- var parameters = [];
- expect('(');
- if (!consume(')')) {
- while (true) {
- if (Identifier === token.type) {
- var parameter = parseIdentifier();
- if (options.scope) scopeIdentifier(parameter);
-
- parameters.push(parameter);
-
- if (consume(',')) continue;
- else if (consume(')')) break;
- }
- else if (VarargLiteral === token.type) {
- parameters.push(parsePrimaryExpression());
- expect(')');
- break;
- } else {
- raiseUnexpectedToken('<name> or \'...\'', token);
- }
- }
- }
-
- var body = parseBlock();
- expect('end');
-
- isLocal = isLocal || false;
- return finishNode(ast.functionStatement(name, parameters, isLocal, body));
- }
-
- function parseFunctionName() {
- var base, name, marker;
-
- if (trackLocations) marker = createLocationMarker();
- base = parseIdentifier();
-
- if (options.scope) attachScope(base, false);
-
- while (consume('.')) {
- pushLocation(marker);
- name = parseIdentifier();
- if (options.scope) attachScope(name, false);
- base = finishNode(ast.memberExpression(base, '.', name));
- }
-
- if (consume(':')) {
- pushLocation(marker);
- name = parseIdentifier();
- if (options.scope) attachScope(name, false);
- base = finishNode(ast.memberExpression(base, ':', name));
- }
-
- return base;
- }
-
- function parseTableConstructor() {
- var fields = []
- , key, value;
-
- while (true) {
- markLocation();
- if (Punctuator === token.type && consume('[')) {
- key = parseExpectedExpression();
- expect(']');
- expect('=');
- value = parseExpectedExpression();
- fields.push(finishNode(ast.tableKey(key, value)));
- } else if (Identifier === token.type) {
- key = parseExpectedExpression();
- if (consume('=')) {
- value = parseExpectedExpression();
- fields.push(finishNode(ast.tableKeyString(key, value)));
- } else {
- fields.push(finishNode(ast.tableValue(key)));
- }
- } else {
- if (null == (value = parseExpression())) {
- locations.pop();
- break;
- }
- fields.push(finishNode(ast.tableValue(value)));
- }
- if (',;'.indexOf(token.value) >= 0) {
- next();
- continue;
- }
- if ('}' === token.value) break;
- }
- expect('}');
- return finishNode(ast.tableConstructorExpression(fields));
- }
-
- function parseExpression() {
- var expression = parseSubExpression(0);
- return expression;
- }
-
- function parseExpectedExpression() {
- var expression = parseExpression();
- if (null == expression) raiseUnexpectedToken('<expression>', token);
- else return expression;
- }
-
- function binaryPrecedence(operator) {
- var charCode = operator.charCodeAt(0)
- , length = operator.length;
-
- if (1 === length) {
- switch (charCode) {
- case 94: return 10; // ^
- case 42: case 47: case 37: return 7; // * / %
- case 43: case 45: return 6; // + -
- case 60: case 62: return 3; // < >
- }
- } else if (2 === length) {
- switch (charCode) {
- case 46: return 5; // ..
- case 60: case 62: case 61: case 126: return 3; // <= >= == ~=
- case 111: return 1; // or
- }
- } else if (97 === charCode && 'and' === operator) return 2;
- return 0;
- }
-
- function parseSubExpression(minPrecedence) {
- var operator = token.value
- , expression, marker;
-
- if (trackLocations) marker = createLocationMarker();
- if (isUnary(token)) {
- markLocation();
- next();
- var argument = parseSubExpression(8);
- if (argument == null) raiseUnexpectedToken('<expression>', token);
- expression = finishNode(ast.unaryExpression(operator, argument));
- }
- if (null == expression) {
- expression = parsePrimaryExpression();
- if (null == expression) {
- expression = parsePrefixExpression();
- }
- }
- if (null == expression) return null;
-
- var precedence;
- while (true) {
- operator = token.value;
-
- precedence = (Punctuator === token.type || Keyword === token.type) ?
- binaryPrecedence(operator) : 0;
-
- if (precedence === 0 || precedence <= minPrecedence) break;
- if ('^' === operator || '..' === operator) precedence--;
- next();
- var right = parseSubExpression(precedence);
- if (null == right) raiseUnexpectedToken('<expression>', token);
- if (trackLocations) locations.push(marker);
- expression = finishNode(ast.binaryExpression(operator, expression, right));
-
- }
- return expression;
- }
-
- function parsePrefixExpression() {
- var base, name, marker
- , isLocal;
-
- if (trackLocations) marker = createLocationMarker();
- if (Identifier === token.type) {
- name = token.value;
- base = parseIdentifier();
- if (options.scope) attachScope(base, isLocal = scopeHasName(name));
- } else if (consume('(')) {
- base = parseExpectedExpression();
- expect(')');
- if (options.scope) isLocal = base.isLocal;
- } else {
- return null;
- }
- var expression, identifier;
- while (true) {
- if (Punctuator === token.type) {
- switch (token.value) {
- case '[':
- pushLocation(marker);
- next();
- expression = parseExpectedExpression();
- base = finishNode(ast.indexExpression(base, expression));
- expect(']');
- break;
- case '.':
- pushLocation(marker);
- next();
- identifier = parseIdentifier();
- if (options.scope) attachScope(identifier, isLocal);
- base = finishNode(ast.memberExpression(base, '.', identifier));
- break;
- case ':':
- pushLocation(marker);
- next();
- identifier = parseIdentifier();
- if (options.scope) attachScope(identifier, isLocal);
- base = finishNode(ast.memberExpression(base, ':', identifier));
- pushLocation(marker);
- base = parseCallExpression(base);
- break;
- case '(': case '{': // args
- pushLocation(marker);
- base = parseCallExpression(base);
- break;
- default:
- return base;
- }
- } else if (StringLiteral === token.type) {
- pushLocation(marker);
- base = parseCallExpression(base);
- } else {
- break;
- }
- }
-
- return base;
- }
-
- function parseCallExpression(base) {
- if (Punctuator === token.type) {
- switch (token.value) {
- case '(':
- next();
- var expressions = [];
- var expression = parseExpression();
- if (null != expression) expressions.push(expression);
- while (consume(',')) {
- expression = parseExpectedExpression();
- expressions.push(expression);
- }
-
- expect(')');
- return finishNode(ast.callExpression(base, expressions));
-
- case '{':
- markLocation();
- next();
- var table = parseTableConstructor();
- return finishNode(ast.tableCallExpression(base, table));
- }
- } else if (StringLiteral === token.type) {
- return finishNode(ast.stringCallExpression(base, parsePrimaryExpression()));
- }
-
- raiseUnexpectedToken('function arguments', token);
- }
-
- function parsePrimaryExpression() {
- var literals = StringLiteral | NumericLiteral | BooleanLiteral | NilLiteral | VarargLiteral
- , value = token.value
- , type = token.type
- , marker;
-
- if (trackLocations) marker = createLocationMarker();
-
- if (type & literals) {
- pushLocation(marker);
- var raw = input.slice(token.range[0], token.range[1]);
- next();
- return finishNode(ast.literal(type, value, raw));
- } else if (Keyword === type && 'function' === value) {
- pushLocation(marker);
- next();
- return parseFunctionDeclaration(null);
- } else if (consume('{')) {
- pushLocation(marker);
- return parseTableConstructor();
- }
- }
-
- exports.parse = parse;
-
- function parse(_input, _options) {
- if ('undefined' === typeof _options && 'object' === typeof _input) {
- _options = _input;
- _input = undefined;
- }
- if (!_options) _options = {};
-
- input = _input || '';
- options = extend(defaultOptions, _options);
- index = 0;
- line = 1;
- lineStart = 0;
- length = input.length;
- scopes = [[]];
- scopeDepth = 0;
- globals = [];
- locations = [];
-
- if (options.comments) comments = [];
- if (!options.wait) return end();
- return exports;
- }
- exports.write = write;
-
- function write(_input) {
- input += String(_input);
- length = input.length;
- return exports;
- }
- exports.end = end;
-
- function end(_input) {
- if ('undefined' !== typeof _input) write(_input);
-
- length = input.length;
- trackLocations = options.locations || options.ranges;
- lookahead = lex();
-
- var chunk = parseChunk();
- if (options.comments) chunk.comments = comments;
- if (options.scope) chunk.globals = globals;
-
- if (locations.length > 0)
- throw new Error('Location tracking failed. This is most likely a bug in luaparse');
-
- return chunk;
- }
-
-}));
-
-}); \ No newline at end of file
diff --git a/js/vendor/ace/src-noconflict/worker-php.js b/js/vendor/ace/src-noconflict/worker-php.js
deleted file mode 100644
index 2419c1b..0000000
--- a/js/vendor/ace/src-noconflict/worker-php.js
+++ /dev/null
@@ -1,6847 +0,0 @@
-"no use strict";
-;(function(window) {
-if (typeof window.window != "undefined" && window.document) {
- return;
-}
-
-window.console = function() {
- var msgs = Array.prototype.slice.call(arguments, 0);
- postMessage({type: "log", data: msgs});
-};
-window.console.error =
-window.console.warn =
-window.console.log =
-window.console.trace = window.console;
-
-window.window = window;
-window.ace = window;
-
-window.normalizeModule = function(parentId, moduleName) {
- if (moduleName.indexOf("!") !== -1) {
- var chunks = moduleName.split("!");
- return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
- }
- if (moduleName.charAt(0) == ".") {
- var base = parentId.split("/").slice(0, -1).join("/");
- moduleName = base + "/" + moduleName;
-
- while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
- var previous = moduleName;
- moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
- }
- }
-
- return moduleName;
-};
-
-window.require = function(parentId, id) {
- if (!id) {
- id = parentId
- parentId = null;
- }
- if (!id.charAt)
- throw new Error("worker.js require() accepts only (parentId, id) as arguments");
-
- id = normalizeModule(parentId, id);
-
- var module = require.modules[id];
- if (module) {
- if (!module.initialized) {
- module.initialized = true;
- module.exports = module.factory().exports;
- }
- return module.exports;
- }
-
- var chunks = id.split("/");
- chunks[0] = require.tlns[chunks[0]] || chunks[0];
- var path = chunks.join("/") + ".js";
-
- require.id = id;
- importScripts(path);
- return require(parentId, id);
-};
-
-require.modules = {};
-require.tlns = {};
-
-window.define = function(id, deps, factory) {
- if (arguments.length == 2) {
- factory = deps;
- if (typeof id != "string") {
- deps = id;
- id = require.id;
- }
- } else if (arguments.length == 1) {
- factory = id;
- id = require.id;
- }
-
- if (id.indexOf("text!") === 0)
- return;
-
- var req = function(deps, factory) {
- return require(id, deps, factory);
- };
-
- require.modules[id] = {
- exports: {},
- factory: function() {
- var module = this;
- var returnExports = factory(req, module.exports, module);
- if (returnExports)
- module.exports = returnExports;
- return module;
- }
- };
-};
-
-window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
- require.tlns = topLevelNamespaces;
-}
-
-window.initSender = function initSender() {
-
- var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
- var oop = require("ace/lib/oop");
-
- var Sender = function() {};
-
- (function() {
-
- oop.implement(this, EventEmitter);
-
- this.callback = function(data, callbackId) {
- postMessage({
- type: "call",
- id: callbackId,
- data: data
- });
- };
-
- this.emit = function(name, data) {
- postMessage({
- type: "event",
- name: name,
- data: data
- });
- };
-
- }).call(Sender.prototype);
-
- return new Sender();
-}
-
-window.main = null;
-window.sender = null;
-
-window.onmessage = function(e) {
- var msg = e.data;
- if (msg.command) {
- if (main[msg.command])
- main[msg.command].apply(main, msg.args);
- else
- throw new Error("Unknown command:" + msg.command);
- }
- else if (msg.init) {
- initBaseUrls(msg.tlns);
- require("ace/lib/es5-shim");
- sender = initSender();
- var clazz = require(msg.module)[msg.classname];
- main = new clazz(sender);
- }
- else if (msg.event && sender) {
- sender._emit(msg.event, msg.data);
- }
-};
-})(this);
-
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-var EventEmitter = {};
-var stopPropagation = function() { this.propagationStopped = true; };
-var preventDefault = function() { this.defaultPrevented = true; };
-
-EventEmitter._emit =
-EventEmitter._dispatchEvent = function(eventName, e) {
- this._eventRegistry || (this._eventRegistry = {});
- this._defaultHandlers || (this._defaultHandlers = {});
-
- var listeners = this._eventRegistry[eventName] || [];
- var defaultHandler = this._defaultHandlers[eventName];
- if (!listeners.length && !defaultHandler)
- return;
-
- if (typeof e != "object" || !e)
- e = {};
-
- if (!e.type)
- e.type = eventName;
- if (!e.stopPropagation)
- e.stopPropagation = stopPropagation;
- if (!e.preventDefault)
- e.preventDefault = preventDefault;
-
- for (var i=0; i<listeners.length; i++) {
- listeners[i](e, this);
- if (e.propagationStopped)
- break;
- }
-
- if (defaultHandler && !e.defaultPrevented)
- return defaultHandler(e, this);
-};
-
-
-EventEmitter._signal = function(eventName, e) {
- var listeners = (this._eventRegistry || {})[eventName];
- if (!listeners)
- return;
-
- for (var i=0; i<listeners.length; i++)
- listeners[i](e, this);
-};
-
-EventEmitter.once = function(eventName, callback) {
- var _self = this;
- callback && this.addEventListener(eventName, function newCallback() {
- _self.removeEventListener(eventName, newCallback);
- callback.apply(null, arguments);
- });
-};
-
-
-EventEmitter.setDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- handlers = this._defaultHandlers = {_disabled_: {}};
-
- if (handlers[eventName]) {
- var old = handlers[eventName];
- var disabled = handlers._disabled_[eventName];
- if (!disabled)
- handlers._disabled_[eventName] = disabled = [];
- disabled.push(old);
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
- handlers[eventName] = callback;
-};
-EventEmitter.removeDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- return;
- var disabled = handlers._disabled_[eventName];
-
- if (handlers[eventName] == callback) {
- var old = handlers[eventName];
- if (disabled)
- this.setDefaultHandler(eventName, disabled.pop());
- } else if (disabled) {
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
-};
-
-EventEmitter.on =
-EventEmitter.addEventListener = function(eventName, callback, capturing) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- listeners = this._eventRegistry[eventName] = [];
-
- if (listeners.indexOf(callback) == -1)
- listeners[capturing ? "unshift" : "push"](callback);
- return callback;
-};
-
-EventEmitter.off =
-EventEmitter.removeListener =
-EventEmitter.removeEventListener = function(eventName, callback) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- return;
-
- var index = listeners.indexOf(callback);
- if (index !== -1)
- listeners.splice(index, 1);
-};
-
-EventEmitter.removeAllListeners = function(eventName) {
- if (this._eventRegistry) this._eventRegistry[eventName] = [];
-};
-
-exports.EventEmitter = EventEmitter;
-
-});
-
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.inherits = (function() {
- var tempCtor = function() {};
- return function(ctor, superCtor) {
- tempCtor.prototype = superCtor.prototype;
- ctor.super_ = superCtor.prototype;
- ctor.prototype = new tempCtor();
- ctor.prototype.constructor = ctor;
- };
-}());
-
-exports.mixin = function(obj, mixin) {
- for (var key in mixin) {
- obj[key] = mixin[key];
- }
- return obj;
-};
-
-exports.implement = function(proto, mixin) {
- exports.mixin(proto, mixin);
-};
-
-});
-
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-function Empty() {}
-
-if (!Function.prototype.bind) {
- Function.prototype.bind = function bind(that) { // .length is 1
- var target = this;
- if (typeof target != "function") {
- throw new TypeError("Function.prototype.bind called on incompatible " + target);
- }
- var args = slice.call(arguments, 1); // for normal call
- var bound = function () {
-
- if (this instanceof bound) {
-
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
-
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
-
- }
-
- };
- if(target.prototype) {
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
-}
-var call = Function.prototype.call;
-var prototypeOfArray = Array.prototype;
-var prototypeOfObject = Object.prototype;
-var slice = prototypeOfArray.slice;
-var _toString = call.bind(prototypeOfObject.toString);
-var owns = call.bind(prototypeOfObject.hasOwnProperty);
-var defineGetter;
-var defineSetter;
-var lookupGetter;
-var lookupSetter;
-var supportsAccessors;
-if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
- defineGetter = call.bind(prototypeOfObject.__defineGetter__);
- defineSetter = call.bind(prototypeOfObject.__defineSetter__);
- lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
- lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
-}
-if ([1,2].splice(0).length != 2) {
- if(function() { // test IE < 9 to splice bug - see issue #138
- function makeArray(l) {
- var a = new Array(l+2);
- a[0] = a[1] = 0;
- return a;
- }
- var array = [], lengthBefore;
-
- array.splice.apply(array, makeArray(20));
- array.splice.apply(array, makeArray(26));
-
- lengthBefore = array.length; //46
- array.splice(5, 0, "XXX"); // add one element
-
- lengthBefore + 1 == array.length
-
- if (lengthBefore + 1 == array.length) {
- return true;// has right splice implementation without bugs
- }
- }()) {//IE 6/7
- var array_splice = Array.prototype.splice;
- Array.prototype.splice = function(start, deleteCount) {
- if (!arguments.length) {
- return [];
- } else {
- return array_splice.apply(this, [
- start === void 0 ? 0 : start,
- deleteCount === void 0 ? (this.length - start) : deleteCount
- ].concat(slice.call(arguments, 2)))
- }
- };
- } else {//IE8
- Array.prototype.splice = function(pos, removeCount){
- var length = this.length;
- if (pos > 0) {
- if (pos > length)
- pos = length;
- } else if (pos == void 0) {
- pos = 0;
- } else if (pos < 0) {
- pos = Math.max(length + pos, 0);
- }
-
- if (!(pos+removeCount < length))
- removeCount = length - pos;
-
- var removed = this.slice(pos, pos+removeCount);
- var insert = slice.call(arguments, 2);
- var add = insert.length;
- if (pos === length) {
- if (add) {
- this.push.apply(this, insert);
- }
- } else {
- var remove = Math.min(removeCount, length - pos);
- var tailOldPos = pos + remove;
- var tailNewPos = tailOldPos + add - remove;
- var tailCount = length - tailOldPos;
- var lengthAfterRemove = length - remove;
-
- if (tailNewPos < tailOldPos) { // case A
- for (var i = 0; i < tailCount; ++i) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } else if (tailNewPos > tailOldPos) { // case B
- for (i = tailCount; i--; ) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } // else, add == remove (nothing to do)
-
- if (add && pos === lengthAfterRemove) {
- this.length = lengthAfterRemove; // truncate array
- this.push.apply(this, insert);
- } else {
- this.length = lengthAfterRemove + add; // reserves space
- for (i = 0; i < add; ++i) {
- this[pos+i] = insert[i];
- }
- }
- }
- return removed;
- };
- }
-}
-if (!Array.isArray) {
- Array.isArray = function isArray(obj) {
- return _toString(obj) == "[object Array]";
- };
-}
-var boxedString = Object("a"),
- splitString = boxedString[0] != "a" || !(0 in boxedString);
-
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function forEach(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- thisp = arguments[1],
- i = -1,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(); // TODO message
- }
-
- while (++i < length) {
- if (i in self) {
- fun.call(thisp, self[i], i, object);
- }
- }
- };
-}
-if (!Array.prototype.map) {
- Array.prototype.map = function map(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = Array(length),
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self)
- result[i] = fun.call(thisp, self[i], i, object);
- }
- return result;
- };
-}
-if (!Array.prototype.filter) {
- Array.prototype.filter = function filter(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = [],
- value,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self) {
- value = self[i];
- if (fun.call(thisp, value, i, object)) {
- result.push(value);
- }
- }
- }
- return result;
- };
-}
-if (!Array.prototype.every) {
- Array.prototype.every = function every(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && !fun.call(thisp, self[i], i, object)) {
- return false;
- }
- }
- return true;
- };
-}
-if (!Array.prototype.some) {
- Array.prototype.some = function some(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && fun.call(thisp, self[i], i, object)) {
- return true;
- }
- }
- return false;
- };
-}
-if (!Array.prototype.reduce) {
- Array.prototype.reduce = function reduce(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduce of empty array with no initial value");
- }
-
- var i = 0;
- var result;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i++];
- break;
- }
- if (++i >= length) {
- throw new TypeError("reduce of empty array with no initial value");
- }
- } while (true);
- }
-
- for (; i < length; i++) {
- if (i in self) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- }
-
- return result;
- };
-}
-if (!Array.prototype.reduceRight) {
- Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
-
- var result, i = length - 1;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i--];
- break;
- }
- if (--i < 0) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
- } while (true);
- }
-
- do {
- if (i in this) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- } while (i--);
-
- return result;
- };
-}
-if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
- Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
-
- var i = 0;
- if (arguments.length > 1) {
- i = toInteger(arguments[1]);
- }
- i = i >= 0 ? i : Math.max(0, length + i);
- for (; i < length; i++) {
- if (i in self && self[i] === sought) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
- Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
- var i = length - 1;
- if (arguments.length > 1) {
- i = Math.min(i, toInteger(arguments[1]));
- }
- i = i >= 0 ? i : length - Math.abs(i);
- for (; i >= 0; i--) {
- if (i in self && sought === self[i]) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Object.getPrototypeOf) {
- Object.getPrototypeOf = function getPrototypeOf(object) {
- return object.__proto__ || (
- object.constructor ?
- object.constructor.prototype :
- prototypeOfObject
- );
- };
-}
-if (!Object.getOwnPropertyDescriptor) {
- var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
- "non-object: ";
- Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT + object);
- if (!owns(object, property))
- return;
-
- var descriptor, getter, setter;
- descriptor = { enumerable: true, configurable: true };
- if (supportsAccessors) {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
-
- var getter = lookupGetter(object, property);
- var setter = lookupSetter(object, property);
- object.__proto__ = prototype;
-
- if (getter || setter) {
- if (getter) descriptor.get = getter;
- if (setter) descriptor.set = setter;
- return descriptor;
- }
- }
- descriptor.value = object[property];
- return descriptor;
- };
-}
-if (!Object.getOwnPropertyNames) {
- Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
- return Object.keys(object);
- };
-}
-if (!Object.create) {
- var createEmpty;
- if (Object.prototype.__proto__ === null) {
- createEmpty = function () {
- return { "__proto__": null };
- };
- } else {
- createEmpty = function () {
- var empty = {};
- for (var i in empty)
- empty[i] = null;
- empty.constructor =
- empty.hasOwnProperty =
- empty.propertyIsEnumerable =
- empty.isPrototypeOf =
- empty.toLocaleString =
- empty.toString =
- empty.valueOf =
- empty.__proto__ = null;
- return empty;
- }
- }
-
- Object.create = function create(prototype, properties) {
- var object;
- if (prototype === null) {
- object = createEmpty();
- } else {
- if (typeof prototype != "object")
- throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
- var Type = function () {};
- Type.prototype = prototype;
- object = new Type();
- object.__proto__ = prototype;
- }
- if (properties !== void 0)
- Object.defineProperties(object, properties);
- return object;
- };
-}
-
-function doesDefinePropertyWork(object) {
- try {
- Object.defineProperty(object, "sentinel", {});
- return "sentinel" in object;
- } catch (exception) {
- }
-}
-if (Object.defineProperty) {
- var definePropertyWorksOnObject = doesDefinePropertyWork({});
- var definePropertyWorksOnDom = typeof document == "undefined" ||
- doesDefinePropertyWork(document.createElement("div"));
- if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
- var definePropertyFallback = Object.defineProperty;
- }
-}
-
-if (!Object.defineProperty || definePropertyFallback) {
- var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
- var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
- var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
- "on this javascript engine";
-
- Object.defineProperty = function defineProperty(object, property, descriptor) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT_TARGET + object);
- if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
- throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
- if (definePropertyFallback) {
- try {
- return definePropertyFallback.call(Object, object, property, descriptor);
- } catch (exception) {
- }
- }
- if (owns(descriptor, "value")) {
-
- if (supportsAccessors && (lookupGetter(object, property) ||
- lookupSetter(object, property)))
- {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
- delete object[property];
- object[property] = descriptor.value;
- object.__proto__ = prototype;
- } else {
- object[property] = descriptor.value;
- }
- } else {
- if (!supportsAccessors)
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
- if (owns(descriptor, "get"))
- defineGetter(object, property, descriptor.get);
- if (owns(descriptor, "set"))
- defineSetter(object, property, descriptor.set);
- }
-
- return object;
- };
-}
-if (!Object.defineProperties) {
- Object.defineProperties = function defineProperties(object, properties) {
- for (var property in properties) {
- if (owns(properties, property))
- Object.defineProperty(object, property, properties[property]);
- }
- return object;
- };
-}
-if (!Object.seal) {
- Object.seal = function seal(object) {
- return object;
- };
-}
-if (!Object.freeze) {
- Object.freeze = function freeze(object) {
- return object;
- };
-}
-try {
- Object.freeze(function () {});
-} catch (exception) {
- Object.freeze = (function freeze(freezeObject) {
- return function freeze(object) {
- if (typeof object == "function") {
- return object;
- } else {
- return freezeObject(object);
- }
- };
- })(Object.freeze);
-}
-if (!Object.preventExtensions) {
- Object.preventExtensions = function preventExtensions(object) {
- return object;
- };
-}
-if (!Object.isSealed) {
- Object.isSealed = function isSealed(object) {
- return false;
- };
-}
-if (!Object.isFrozen) {
- Object.isFrozen = function isFrozen(object) {
- return false;
- };
-}
-if (!Object.isExtensible) {
- Object.isExtensible = function isExtensible(object) {
- if (Object(object) === object) {
- throw new TypeError(); // TODO message
- }
- var name = '';
- while (owns(object, name)) {
- name += '?';
- }
- object[name] = true;
- var returnValue = owns(object, name);
- delete object[name];
- return returnValue;
- };
-}
-if (!Object.keys) {
- var hasDontEnumBug = true,
- dontEnums = [
- "toString",
- "toLocaleString",
- "valueOf",
- "hasOwnProperty",
- "isPrototypeOf",
- "propertyIsEnumerable",
- "constructor"
- ],
- dontEnumsLength = dontEnums.length;
-
- for (var key in {"toString": null}) {
- hasDontEnumBug = false;
- }
-
- Object.keys = function keys(object) {
-
- if (
- (typeof object != "object" && typeof object != "function") ||
- object === null
- ) {
- throw new TypeError("Object.keys called on a non-object");
- }
-
- var keys = [];
- for (var name in object) {
- if (owns(object, name)) {
- keys.push(name);
- }
- }
-
- if (hasDontEnumBug) {
- for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
- var dontEnum = dontEnums[i];
- if (owns(object, dontEnum)) {
- keys.push(dontEnum);
- }
- }
- }
- return keys;
- };
-
-}
-if (!Date.now) {
- Date.now = function now() {
- return new Date().getTime();
- };
-}
-var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
- "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
- "\u2029\uFEFF";
-if (!String.prototype.trim || ws.trim()) {
- ws = "[" + ws + "]";
- var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
- trimEndRegexp = new RegExp(ws + ws + "*$");
- String.prototype.trim = function trim() {
- return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
- };
-}
-
-function toInteger(n) {
- n = +n;
- if (n !== n) { // isNaN
- n = 0;
- } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- return n;
-}
-
-function isPrimitive(input) {
- var type = typeof input;
- return (
- input === null ||
- type === "undefined" ||
- type === "boolean" ||
- type === "number" ||
- type === "string"
- );
-}
-
-function toPrimitive(input) {
- var val, valueOf, toString;
- if (isPrimitive(input)) {
- return input;
- }
- valueOf = input.valueOf;
- if (typeof valueOf === "function") {
- val = valueOf.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- toString = input.toString;
- if (typeof toString === "function") {
- val = toString.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- throw new TypeError();
-}
-var toObject = function (o) {
- if (o == null) { // this matches both null and undefined
- throw new TypeError("can't convert "+o+" to object");
- }
- return Object(o);
-};
-
-});
-
-ace.define('ace/mode/php_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/php/php'], function(require, exports, module) {
-
-
-var oop = require("../lib/oop");
-var Mirror = require("../worker/mirror").Mirror;
-var PHP = require("./php/php").PHP;
-
-var PhpWorker = exports.PhpWorker = function(sender) {
- Mirror.call(this, sender);
- this.setTimeout(500);
-};
-
-oop.inherits(PhpWorker, Mirror);
-
-(function() {
-
- this.onUpdate = function() {
- var value = this.doc.getValue();
- var errors = [];
-
- var tokens = PHP.Lexer(value, {short_open_tag: 1});
- try {
- new PHP.Parser(tokens);
- } catch(e) {
- errors.push({
- row: e.line - 1,
- column: null,
- text: e.message.charAt(0).toUpperCase() + e.message.substring(1),
- type: "error"
- });
- }
-
- if (errors.length) {
- this.sender.emit("error", errors);
- } else {
- this.sender.emit("ok");
- }
- };
-
-}).call(PhpWorker.prototype);
-
-});
-ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
-
-
-var Document = require("../document").Document;
-var lang = require("../lib/lang");
-
-var Mirror = exports.Mirror = function(sender) {
- this.sender = sender;
- var doc = this.doc = new Document("");
-
- var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
-
- var _self = this;
- sender.on("change", function(e) {
- doc.applyDeltas(e.data);
- deferredUpdate.schedule(_self.$timeout);
- });
-};
-
-(function() {
-
- this.$timeout = 500;
-
- this.setTimeout = function(timeout) {
- this.$timeout = timeout;
- };
-
- this.setValue = function(value) {
- this.doc.setValue(value);
- this.deferredUpdate.schedule(this.$timeout);
- };
-
- this.getValue = function(callbackId) {
- this.sender.callback(this.doc.getValue(), callbackId);
- };
-
- this.onUpdate = function() {
- };
-
-}).call(Mirror.prototype);
-
-});
-
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-var Range = require("./range").Range;
-var Anchor = require("./anchor").Anchor;
-
-var Document = function(text) {
- this.$lines = [];
- if (text.length == 0) {
- this.$lines = [""];
- } else if (Array.isArray(text)) {
- this._insertLines(0, text);
- } else {
- this.insert({row: 0, column:0}, text);
- }
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.setValue = function(text) {
- var len = this.getLength();
- this.remove(new Range(0, 0, len, this.getLine(len-1).length));
- this.insert({row: 0, column:0}, text);
- };
- this.getValue = function() {
- return this.getAllLines().join(this.getNewLineCharacter());
- };
- this.createAnchor = function(row, column) {
- return new Anchor(this, row, column);
- };
- if ("aaa".split(/a/).length == 0)
- this.$split = function(text) {
- return text.replace(/\r\n|\r/g, "\n").split("\n");
- }
- else
- this.$split = function(text) {
- return text.split(/\r\n|\r|\n/);
- };
-
-
- this.$detectNewLine = function(text) {
- var match = text.match(/^.*?(\r\n|\r|\n)/m);
- this.$autoNewLine = match ? match[1] : "\n";
- };
- this.getNewLineCharacter = function() {
- switch (this.$newLineMode) {
- case "windows":
- return "\r\n";
- case "unix":
- return "\n";
- default:
- return this.$autoNewLine;
- }
- };
-
- this.$autoNewLine = "\n";
- this.$newLineMode = "auto";
- this.setNewLineMode = function(newLineMode) {
- if (this.$newLineMode === newLineMode)
- return;
-
- this.$newLineMode = newLineMode;
- };
- this.getNewLineMode = function() {
- return this.$newLineMode;
- };
- this.isNewLine = function(text) {
- return (text == "\r\n" || text == "\r" || text == "\n");
- };
- this.getLine = function(row) {
- return this.$lines[row] || "";
- };
- this.getLines = function(firstRow, lastRow) {
- return this.$lines.slice(firstRow, lastRow + 1);
- };
- this.getAllLines = function() {
- return this.getLines(0, this.getLength());
- };
- this.getLength = function() {
- return this.$lines.length;
- };
- this.getTextRange = function(range) {
- if (range.start.row == range.end.row) {
- return this.getLine(range.start.row)
- .substring(range.start.column, range.end.column);
- }
- var lines = this.getLines(range.start.row, range.end.row);
- lines[0] = (lines[0] || "").substring(range.start.column);
- var l = lines.length - 1;
- if (range.end.row - range.start.row == l)
- lines[l] = lines[l].substring(0, range.end.column);
- return lines.join(this.getNewLineCharacter());
- };
-
- this.$clipPosition = function(position) {
- var length = this.getLength();
- if (position.row >= length) {
- position.row = Math.max(0, length - 1);
- position.column = this.getLine(length-1).length;
- } else if (position.row < 0)
- position.row = 0;
- return position;
- };
- this.insert = function(position, text) {
- if (!text || text.length === 0)
- return position;
-
- position = this.$clipPosition(position);
- if (this.getLength() <= 1)
- this.$detectNewLine(text);
-
- var lines = this.$split(text);
- var firstLine = lines.splice(0, 1)[0];
- var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
-
- position = this.insertInLine(position, firstLine);
- if (lastLine !== null) {
- position = this.insertNewLine(position); // terminate first line
- position = this._insertLines(position.row, lines);
- position = this.insertInLine(position, lastLine || "");
- }
- return position;
- };
- this.insertLines = function(row, lines) {
- if (row >= this.getLength())
- return this.insert({row: row, column: 0}, "\n" + lines.join("\n"));
- return this._insertLines(Math.max(row, 0), lines);
- };
- this._insertLines = function(row, lines) {
- if (lines.length == 0)
- return {row: row, column: 0};
- if (lines.length > 0xFFFF) {
- var end = this._insertLines(row, lines.slice(0xFFFF));
- lines = lines.slice(0, 0xFFFF);
- }
-
- var args = [row, 0];
- args.push.apply(args, lines);
- this.$lines.splice.apply(this.$lines, args);
-
- var range = new Range(row, 0, row + lines.length, 0);
- var delta = {
- action: "insertLines",
- range: range,
- lines: lines
- };
- this._emit("change", { data: delta });
- return end || range.end;
- };
- this.insertNewLine = function(position) {
- position = this.$clipPosition(position);
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column);
- this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
-
- var end = {
- row : position.row + 1,
- column : 0
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.insertInLine = function(position, text) {
- if (text.length == 0)
- return position;
-
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column) + text
- + line.substring(position.column);
-
- var end = {
- row : position.row,
- column : position.column + text.length
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: text
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.remove = function(range) {
- range.start = this.$clipPosition(range.start);
- range.end = this.$clipPosition(range.end);
-
- if (range.isEmpty())
- return range.start;
-
- var firstRow = range.start.row;
- var lastRow = range.end.row;
-
- if (range.isMultiLine()) {
- var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
- var lastFullRow = lastRow - 1;
-
- if (range.end.column > 0)
- this.removeInLine(lastRow, 0, range.end.column);
-
- if (lastFullRow >= firstFullRow)
- this._removeLines(firstFullRow, lastFullRow);
-
- if (firstFullRow != firstRow) {
- this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
- this.removeNewLine(range.start.row);
- }
- }
- else {
- this.removeInLine(firstRow, range.start.column, range.end.column);
- }
- return range.start;
- };
- this.removeInLine = function(row, startColumn, endColumn) {
- if (startColumn == endColumn)
- return;
-
- var range = new Range(row, startColumn, row, endColumn);
- var line = this.getLine(row);
- var removed = line.substring(startColumn, endColumn);
- var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
- this.$lines.splice(row, 1, newLine);
-
- var delta = {
- action: "removeText",
- range: range,
- text: removed
- };
- this._emit("change", { data: delta });
- return range.start;
- };
- this.removeLines = function(firstRow, lastRow) {
- if (firstRow < 0 || lastRow >= this.getLength())
- return this.remove(new Range(firstRow, 0, lastRow + 1, 0));
- return this._removeLines(firstRow, lastRow);
- };
-
- this._removeLines = function(firstRow, lastRow) {
- var range = new Range(firstRow, 0, lastRow + 1, 0);
- var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
-
- var delta = {
- action: "removeLines",
- range: range,
- nl: this.getNewLineCharacter(),
- lines: removed
- };
- this._emit("change", { data: delta });
- return removed;
- };
- this.removeNewLine = function(row) {
- var firstLine = this.getLine(row);
- var secondLine = this.getLine(row+1);
-
- var range = new Range(row, firstLine.length, row+1, 0);
- var line = firstLine + secondLine;
-
- this.$lines.splice(row, 2, line);
-
- var delta = {
- action: "removeText",
- range: range,
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
- };
- this.replace = function(range, text) {
- if (text.length == 0 && range.isEmpty())
- return range.start;
- if (text == this.getTextRange(range))
- return range.end;
-
- this.remove(range);
- if (text) {
- var end = this.insert(range.start, text);
- }
- else {
- end = range.start;
- }
-
- return end;
- };
- this.applyDeltas = function(deltas) {
- for (var i=0; i<deltas.length; i++) {
- var delta = deltas[i];
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this.insertLines(range.start.row, delta.lines);
- else if (delta.action == "insertText")
- this.insert(range.start, delta.text);
- else if (delta.action == "removeLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "removeText")
- this.remove(range);
- }
- };
- this.revertDeltas = function(deltas) {
- for (var i=deltas.length-1; i>=0; i--) {
- var delta = deltas[i];
-
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "insertText")
- this.remove(range);
- else if (delta.action == "removeLines")
- this._insertLines(range.start.row, delta.lines);
- else if (delta.action == "removeText")
- this.insert(range.start, delta.text);
- }
- };
- this.indexToPosition = function(index, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- for (var i = startRow || 0, l = lines.length; i < l; i++) {
- index -= lines[i].length + newlineLength;
- if (index < 0)
- return {row: i, column: index + lines[i].length + newlineLength};
- }
- return {row: l-1, column: lines[l-1].length};
- };
- this.positionToIndex = function(pos, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- var index = 0;
- var row = Math.min(pos.row, lines.length);
- for (var i = startRow || 0; i < row; ++i)
- index += lines[i].length + newlineLength;
-
- return index + pos.column;
- };
-
-}).call(Document.prototype);
-
-exports.Document = Document;
-});
-
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-var Range = function(startRow, startColumn, endRow, endColumn) {
- this.start = {
- row: startRow,
- column: startColumn
- };
-
- this.end = {
- row: endRow,
- column: endColumn
- };
-};
-
-(function() {
- this.isEqual = function(range) {
- return this.start.row === range.start.row &&
- this.end.row === range.end.row &&
- this.start.column === range.start.column &&
- this.end.column === range.end.column;
- };
- this.toString = function() {
- return ("Range: [" + this.start.row + "/" + this.start.column +
- "] -> [" + this.end.row + "/" + this.end.column + "]");
- };
-
- this.contains = function(row, column) {
- return this.compare(row, column) == 0;
- };
- this.compareRange = function(range) {
- var cmp,
- end = range.end,
- start = range.start;
-
- cmp = this.compare(end.row, end.column);
- if (cmp == 1) {
- cmp = this.compare(start.row, start.column);
- if (cmp == 1) {
- return 2;
- } else if (cmp == 0) {
- return 1;
- } else {
- return 0;
- }
- } else if (cmp == -1) {
- return -2;
- } else {
- cmp = this.compare(start.row, start.column);
- if (cmp == -1) {
- return -1;
- } else if (cmp == 1) {
- return 42;
- } else {
- return 0;
- }
- }
- };
- this.comparePoint = function(p) {
- return this.compare(p.row, p.column);
- };
- this.containsRange = function(range) {
- return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
- };
- this.intersects = function(range) {
- var cmp = this.compareRange(range);
- return (cmp == -1 || cmp == 0 || cmp == 1);
- };
- this.isEnd = function(row, column) {
- return this.end.row == row && this.end.column == column;
- };
- this.isStart = function(row, column) {
- return this.start.row == row && this.start.column == column;
- };
- this.setStart = function(row, column) {
- if (typeof row == "object") {
- this.start.column = row.column;
- this.start.row = row.row;
- } else {
- this.start.row = row;
- this.start.column = column;
- }
- };
- this.setEnd = function(row, column) {
- if (typeof row == "object") {
- this.end.column = row.column;
- this.end.row = row.row;
- } else {
- this.end.row = row;
- this.end.column = column;
- }
- };
- this.inside = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column) || this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideStart = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideEnd = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.compare = function(row, column) {
- if (!this.isMultiLine()) {
- if (row === this.start.row) {
- return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
- };
- }
-
- if (row < this.start.row)
- return -1;
-
- if (row > this.end.row)
- return 1;
-
- if (this.start.row === row)
- return column >= this.start.column ? 0 : -1;
-
- if (this.end.row === row)
- return column <= this.end.column ? 0 : 1;
-
- return 0;
- };
- this.compareStart = function(row, column) {
- if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareEnd = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareInside = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.clipRows = function(firstRow, lastRow) {
- if (this.end.row > lastRow)
- var end = {row: lastRow + 1, column: 0};
- else if (this.end.row < firstRow)
- var end = {row: firstRow, column: 0};
-
- if (this.start.row > lastRow)
- var start = {row: lastRow + 1, column: 0};
- else if (this.start.row < firstRow)
- var start = {row: firstRow, column: 0};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
- this.extend = function(row, column) {
- var cmp = this.compare(row, column);
-
- if (cmp == 0)
- return this;
- else if (cmp == -1)
- var start = {row: row, column: column};
- else
- var end = {row: row, column: column};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
-
- this.isEmpty = function() {
- return (this.start.row === this.end.row && this.start.column === this.end.column);
- };
- this.isMultiLine = function() {
- return (this.start.row !== this.end.row);
- };
- this.clone = function() {
- return Range.fromPoints(this.start, this.end);
- };
- this.collapseRows = function() {
- if (this.end.column == 0)
- return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
- else
- return new Range(this.start.row, 0, this.end.row, 0)
- };
- this.toScreenRange = function(session) {
- var screenPosStart = session.documentToScreenPosition(this.start);
- var screenPosEnd = session.documentToScreenPosition(this.end);
-
- return new Range(
- screenPosStart.row, screenPosStart.column,
- screenPosEnd.row, screenPosEnd.column
- );
- };
- this.moveBy = function(row, column) {
- this.start.row += row;
- this.start.column += column;
- this.end.row += row;
- this.end.column += column;
- };
-
-}).call(Range.prototype);
-Range.fromPoints = function(start, end) {
- return new Range(start.row, start.column, end.row, end.column);
-};
-Range.comparePoints = comparePoints;
-
-Range.comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-
-
-exports.Range = Range;
-});
-
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-
-var Anchor = exports.Anchor = function(doc, row, column) {
- this.$onChange = this.onChange.bind(this);
- this.attach(doc);
-
- if (typeof column == "undefined")
- this.setPosition(row.row, row.column);
- else
- this.setPosition(row, column);
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.getPosition = function() {
- return this.$clipPositionToDocument(this.row, this.column);
- };
- this.getDocument = function() {
- return this.document;
- };
- this.onChange = function(e) {
- var delta = e.data;
- var range = delta.range;
-
- if (range.start.row == range.end.row && range.start.row != this.row)
- return;
-
- if (range.start.row > this.row)
- return;
-
- if (range.start.row == this.row && range.start.column > this.column)
- return;
-
- var row = this.row;
- var column = this.column;
- var start = range.start;
- var end = range.end;
-
- if (delta.action === "insertText") {
- if (start.row === row && start.column <= column) {
- if (start.row === end.row) {
- column += end.column - start.column;
- } else {
- column -= start.column;
- row += end.row - start.row;
- }
- } else if (start.row !== end.row && start.row < row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "insertLines") {
- if (start.row <= row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "removeText") {
- if (start.row === row && start.column < column) {
- if (end.column >= column)
- column = start.column;
- else
- column = Math.max(0, column - (end.column - start.column));
-
- } else if (start.row !== end.row && start.row < row) {
- if (end.row === row)
- column = Math.max(0, column - end.column) + start.column;
- row -= (end.row - start.row);
- } else if (end.row === row) {
- row -= end.row - start.row;
- column = Math.max(0, column - end.column) + start.column;
- }
- } else if (delta.action == "removeLines") {
- if (start.row <= row) {
- if (end.row <= row)
- row -= end.row - start.row;
- else {
- row = start.row;
- column = 0;
- }
- }
- }
-
- this.setPosition(row, column, true);
- };
- this.setPosition = function(row, column, noClip) {
- var pos;
- if (noClip) {
- pos = {
- row: row,
- column: column
- };
- } else {
- pos = this.$clipPositionToDocument(row, column);
- }
-
- if (this.row == pos.row && this.column == pos.column)
- return;
-
- var old = {
- row: this.row,
- column: this.column
- };
-
- this.row = pos.row;
- this.column = pos.column;
- this._emit("change", {
- old: old,
- value: pos
- });
- };
- this.detach = function() {
- this.document.removeEventListener("change", this.$onChange);
- };
- this.attach = function(doc) {
- this.document = doc || this.document;
- this.document.on("change", this.$onChange);
- };
- this.$clipPositionToDocument = function(row, column) {
- var pos = {};
-
- if (row >= this.document.getLength()) {
- pos.row = Math.max(0, this.document.getLength() - 1);
- pos.column = this.document.getLine(pos.row).length;
- }
- else if (row < 0) {
- pos.row = 0;
- pos.column = 0;
- }
- else {
- pos.row = row;
- pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
- }
-
- if (column < 0)
- pos.column = 0;
-
- return pos;
- };
-
-}).call(Anchor.prototype);
-
-});
-
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.stringReverse = function(string) {
- return string.split("").reverse().join("");
-};
-
-exports.stringRepeat = function (string, count) {
- var result = '';
- while (count > 0) {
- if (count & 1)
- result += string;
-
- if (count >>= 1)
- string += string;
- }
- return result;
-};
-
-var trimBeginRegexp = /^\s\s*/;
-var trimEndRegexp = /\s\s*$/;
-
-exports.stringTrimLeft = function (string) {
- return string.replace(trimBeginRegexp, '');
-};
-
-exports.stringTrimRight = function (string) {
- return string.replace(trimEndRegexp, '');
-};
-
-exports.copyObject = function(obj) {
- var copy = {};
- for (var key in obj) {
- copy[key] = obj[key];
- }
- return copy;
-};
-
-exports.copyArray = function(array){
- var copy = [];
- for (var i=0, l=array.length; i<l; i++) {
- if (array[i] && typeof array[i] == "object")
- copy[i] = this.copyObject( array[i] );
- else
- copy[i] = array[i];
- }
- return copy;
-};
-
-exports.deepCopy = function (obj) {
- if (typeof obj != "object") {
- return obj;
- }
-
- var copy = obj.constructor();
- for (var key in obj) {
- if (typeof obj[key] == "object") {
- copy[key] = this.deepCopy(obj[key]);
- } else {
- copy[key] = obj[key];
- }
- }
- return copy;
-};
-
-exports.arrayToMap = function(arr) {
- var map = {};
- for (var i=0; i<arr.length; i++) {
- map[arr[i]] = 1;
- }
- return map;
-
-};
-
-exports.createMap = function(props) {
- var map = Object.create(null);
- for (var i in props) {
- map[i] = props[i];
- }
- return map;
-};
-exports.arrayRemove = function(array, value) {
- for (var i = 0; i <= array.length; i++) {
- if (value === array[i]) {
- array.splice(i, 1);
- }
- }
-};
-
-exports.escapeRegExp = function(str) {
- return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
-};
-
-exports.escapeHTML = function(str) {
- return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
-};
-
-exports.getMatchOffsets = function(string, regExp) {
- var matches = [];
-
- string.replace(regExp, function(str) {
- matches.push({
- offset: arguments[arguments.length-2],
- length: str.length
- });
- });
-
- return matches;
-};
-exports.deferredCall = function(fcn) {
-
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var deferred = function(timeout) {
- deferred.cancel();
- timer = setTimeout(callback, timeout || 0);
- return deferred;
- };
-
- deferred.schedule = deferred;
-
- deferred.call = function() {
- this.cancel();
- fcn();
- return deferred;
- };
-
- deferred.cancel = function() {
- clearTimeout(timer);
- timer = null;
- return deferred;
- };
-
- return deferred;
-};
-
-
-exports.delayedCall = function(fcn, defaultTimeout) {
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var _self = function(timeout) {
- timer && clearTimeout(timer);
- timer = setTimeout(callback, timeout || defaultTimeout);
- };
-
- _self.delay = _self;
- _self.schedule = function(timeout) {
- if (timer == null)
- timer = setTimeout(callback, timeout || 0);
- };
-
- _self.call = function() {
- this.cancel();
- fcn();
- };
-
- _self.cancel = function() {
- timer && clearTimeout(timer);
- timer = null;
- };
-
- _self.isPending = function() {
- return timer;
- };
-
- return _self;
-};
-});
-
-
-
-ace.define('ace/mode/php/php', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var PHP = {Constants:{}};
-
-
-
-
-PHP.Constants.T_INCLUDE = 262;
-PHP.Constants.T_INCLUDE_ONCE = 261;
-PHP.Constants.T_EVAL = 260;
-PHP.Constants.T_REQUIRE = 259;
-PHP.Constants.T_REQUIRE_ONCE = 258;
-PHP.Constants.T_LOGICAL_OR = 263;
-PHP.Constants.T_LOGICAL_XOR = 264;
-PHP.Constants.T_LOGICAL_AND = 265;
-PHP.Constants.T_PRINT = 266;
-PHP.Constants.T_PLUS_EQUAL = 277;
-PHP.Constants.T_MINUS_EQUAL = 276;
-PHP.Constants.T_MUL_EQUAL = 275;
-PHP.Constants.T_DIV_EQUAL = 274;
-PHP.Constants.T_CONCAT_EQUAL = 273;
-PHP.Constants.T_MOD_EQUAL = 272;
-PHP.Constants.T_AND_EQUAL = 271;
-PHP.Constants.T_OR_EQUAL = 270;
-PHP.Constants.T_XOR_EQUAL = 269;
-PHP.Constants.T_SL_EQUAL = 268;
-PHP.Constants.T_SR_EQUAL = 267;
-PHP.Constants.T_BOOLEAN_OR = 278;
-PHP.Constants.T_BOOLEAN_AND = 279;
-PHP.Constants.T_IS_EQUAL = 283;
-PHP.Constants.T_IS_NOT_EQUAL = 282;
-PHP.Constants.T_IS_IDENTICAL = 281;
-PHP.Constants.T_IS_NOT_IDENTICAL = 280;
-PHP.Constants.T_IS_SMALLER_OR_EQUAL = 285;
-PHP.Constants.T_IS_GREATER_OR_EQUAL = 284;
-PHP.Constants.T_SL = 287;
-PHP.Constants.T_SR = 286;
-PHP.Constants.T_INSTANCEOF = 288;
-PHP.Constants.T_INC = 297;
-PHP.Constants.T_DEC = 296;
-PHP.Constants.T_INT_CAST = 295;
-PHP.Constants.T_DOUBLE_CAST = 294;
-PHP.Constants.T_STRING_CAST = 293;
-PHP.Constants.T_ARRAY_CAST = 292;
-PHP.Constants.T_OBJECT_CAST = 291;
-PHP.Constants.T_BOOL_CAST = 290;
-PHP.Constants.T_UNSET_CAST = 289;
-PHP.Constants.T_NEW = 299;
-PHP.Constants.T_CLONE = 298;
-PHP.Constants.T_EXIT = 300;
-PHP.Constants.T_IF = 301;
-PHP.Constants.T_ELSEIF = 302;
-PHP.Constants.T_ELSE = 303;
-PHP.Constants.T_ENDIF = 304;
-PHP.Constants.T_LNUMBER = 305;
-PHP.Constants.T_DNUMBER = 306;
-PHP.Constants.T_STRING = 307;
-PHP.Constants.T_STRING_VARNAME = 308;
-PHP.Constants.T_VARIABLE = 309;
-PHP.Constants.T_NUM_STRING = 310;
-PHP.Constants.T_INLINE_HTML = 311;
-PHP.Constants.T_CHARACTER = 312;
-PHP.Constants.T_BAD_CHARACTER = 313;
-PHP.Constants.T_ENCAPSED_AND_WHITESPACE = 314;
-PHP.Constants.T_CONSTANT_ENCAPSED_STRING = 315;
-PHP.Constants.T_ECHO = 316;
-PHP.Constants.T_DO = 317;
-PHP.Constants.T_WHILE = 318;
-PHP.Constants.T_ENDWHILE = 319;
-PHP.Constants.T_FOR = 320;
-PHP.Constants.T_ENDFOR = 321;
-PHP.Constants.T_FOREACH = 322;
-PHP.Constants.T_ENDFOREACH = 323;
-PHP.Constants.T_DECLARE = 324;
-PHP.Constants.T_ENDDECLARE = 325;
-PHP.Constants.T_AS = 326;
-PHP.Constants.T_SWITCH = 327;
-PHP.Constants.T_ENDSWITCH = 328;
-PHP.Constants.T_CASE = 329;
-PHP.Constants.T_DEFAULT = 330;
-PHP.Constants.T_BREAK = 331;
-PHP.Constants.T_CONTINUE = 332;
-PHP.Constants.T_GOTO = 333;
-PHP.Constants.T_FUNCTION = 334;
-PHP.Constants.T_CONST = 335;
-PHP.Constants.T_RETURN = 336;
-PHP.Constants.T_TRY = 337;
-PHP.Constants.T_CATCH = 338;
-PHP.Constants.T_THROW = 339;
-PHP.Constants.T_USE = 340;
-PHP.Constants.T_GLOBAL = 341;
-PHP.Constants.T_STATIC = 347;
-PHP.Constants.T_ABSTRACT = 346;
-PHP.Constants.T_FINAL = 345;
-PHP.Constants.T_PRIVATE = 344;
-PHP.Constants.T_PROTECTED = 343;
-PHP.Constants.T_PUBLIC = 342;
-PHP.Constants.T_VAR = 348;
-PHP.Constants.T_UNSET = 349;
-PHP.Constants.T_ISSET = 350;
-PHP.Constants.T_EMPTY = 351;
-PHP.Constants.T_HALT_COMPILER = 352;
-PHP.Constants.T_CLASS = 353;
-PHP.Constants.T_TRAIT = 382;
-PHP.Constants.T_INTERFACE = 354;
-PHP.Constants.T_EXTENDS = 355;
-PHP.Constants.T_IMPLEMENTS = 356;
-PHP.Constants.T_OBJECT_OPERATOR = 357;
-PHP.Constants.T_DOUBLE_ARROW = 358;
-PHP.Constants.T_LIST = 359;
-PHP.Constants.T_ARRAY = 360;
-PHP.Constants.T_CLASS_C = 361;
-PHP.Constants.T_TRAIT_C = 381;
-PHP.Constants.T_METHOD_C = 362;
-PHP.Constants.T_FUNC_C = 363;
-PHP.Constants.T_LINE = 364;
-PHP.Constants.T_FILE = 365;
-PHP.Constants.T_COMMENT = 366;
-PHP.Constants.T_DOC_COMMENT = 367;
-PHP.Constants.T_OPEN_TAG = 368;
-PHP.Constants.T_OPEN_TAG_WITH_ECHO = 369;
-PHP.Constants.T_CLOSE_TAG = 370;
-PHP.Constants.T_WHITESPACE = 371;
-PHP.Constants.T_START_HEREDOC = 372;
-PHP.Constants.T_END_HEREDOC = 373;
-PHP.Constants.T_DOLLAR_OPEN_CURLY_BRACES = 374;
-PHP.Constants.T_CURLY_OPEN = 375;
-PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM = 376;
-PHP.Constants.T_DOUBLE_COLON = 376;
-PHP.Constants.T_NAMESPACE = 377;
-PHP.Constants.T_NS_C = 378;
-PHP.Constants.T_DIR = 379;
-PHP.Constants.T_NS_SEPARATOR = 380;
-PHP.Lexer = function( src, ini ) {
-
-
- var heredoc,
- lineBreaker = function( result ) {
- if (result.match(/\n/) !== null) {
- var quote = result.substring(0, 1);
- result = '[' + result.split(/\n/).join( quote + "," + quote ) + '].join("\\n")';
-
- }
-
- return result;
- },
- prev,
-
- openTag = (ini === undefined || (/^(on|true|1)$/i.test(ini.short_open_tag) ) ? /(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i : /(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i),
- openTagStart = (ini === undefined || (/^(on|true|1)$/i.test(ini.short_open_tag)) ? /^(\<\?php\s|\<\?|\<\%|\<script language\=('|")?php('|")?\>)/i : /^(\<\?php\s|<\?=|\<script language\=('|")?php('|")?\>)/i),
- tokens = [
- {
- value: PHP.Constants.T_NAMESPACE,
- re: /^namespace(?=\s)/i
- },
- {
- value: PHP.Constants.T_USE,
- re: /^use(?=\s)/i
- },
- {
- value: PHP.Constants.T_ABSTRACT,
- re: /^abstract(?=\s)/i
- },
- {
- value: PHP.Constants.T_IMPLEMENTS,
- re: /^implements(?=\s)/i
- },
- {
- value: PHP.Constants.T_INTERFACE,
- re: /^interface(?=\s)/i
- },
- {
- value: PHP.Constants.T_CONST,
- re: /^const(?=\s)/i
- },
- {
- value: PHP.Constants.T_STATIC,
- re: /^static(?=\s)/i
- },
- {
- value: PHP.Constants.T_FINAL,
- re: /^final(?=\s)/i
- },
- {
- value: PHP.Constants.T_VAR,
- re: /^var(?=\s)/i
- },
- {
- value: PHP.Constants.T_GLOBAL,
- re: /^global(?=\s)/i
- },
- {
- value: PHP.Constants.T_CLONE,
- re: /^clone(?=\s)/i
- },
- {
- value: PHP.Constants.T_THROW,
- re: /^throw(?=\s)/i
- },
- {
- value: PHP.Constants.T_EXTENDS,
- re: /^extends(?=\s)/i
- },
- {
- value: PHP.Constants.T_AND_EQUAL,
- re: /^&=/
- },
- {
- value: PHP.Constants.T_AS,
- re: /^as(?=\s)/i
- },
- {
- value: PHP.Constants.T_ARRAY_CAST,
- re: /^\(array\)/i
- },
- {
- value: PHP.Constants.T_BOOL_CAST,
- re: /^\((bool|boolean)\)/i
- },
- {
- value: PHP.Constants.T_DOUBLE_CAST,
- re: /^\((real|float|double)\)/i
- },
- {
- value: PHP.Constants.T_INT_CAST,
- re: /^\((int|integer)\)/i
- },
- {
- value: PHP.Constants.T_OBJECT_CAST,
- re: /^\(object\)/i
- },
- {
- value: PHP.Constants.T_STRING_CAST,
- re: /^\(string\)/i
- },
- {
- value: PHP.Constants.T_UNSET_CAST,
- re: /^\(unset\)/i
- },
- {
- value: PHP.Constants.T_TRY,
- re: /^try(?=\s*{)/i
- },
- {
- value: PHP.Constants.T_CATCH,
- re: /^catch(?=\s*\()/i
- },
- {
- value: PHP.Constants.T_INSTANCEOF,
- re: /^instanceof(?=\s)/i
- },
- {
- value: PHP.Constants.T_LOGICAL_OR,
- re: /^or(?=\s)/i
- },
- {
- value: PHP.Constants.T_LOGICAL_AND,
- re: /^and(?=\s)/i
- },
- {
- value: PHP.Constants.T_LOGICAL_XOR,
- re: /^xor(?=\s)/i
- },
- {
- value: PHP.Constants.T_BOOLEAN_AND,
- re: /^&&/
- },
- {
- value: PHP.Constants.T_BOOLEAN_OR,
- re: /^\|\|/
- },
- {
- value: PHP.Constants.T_CONTINUE,
- re: /^continue(?=\s|;)/i
- },
- {
- value: PHP.Constants.T_BREAK,
- re: /^break(?=\s|;)/i
- },
- {
- value: PHP.Constants.T_ENDDECLARE,
- re: /^enddeclare(?=\s|;)/i
- },
- {
- value: PHP.Constants.T_ENDFOR,
- re: /^endfor(?=\s|;)/i
- },
- {
- value: PHP.Constants.T_ENDFOREACH,
- re: /^endforeach(?=\s|;)/i
- },
- {
- value: PHP.Constants.T_ENDIF,
- re: /^endif(?=\s|;)/i
- },
- {
- value: PHP.Constants.T_ENDSWITCH,
- re: /^endswitch(?=\s|;)/i
- },
- {
- value: PHP.Constants.T_ENDWHILE,
- re: /^endwhile(?=\s|;)/i
- },
- {
- value: PHP.Constants.T_CASE,
- re: /^case(?=\s)/i
- },
- {
- value: PHP.Constants.T_DEFAULT,
- re: /^default(?=\s|:)/i
- },
- {
- value: PHP.Constants.T_SWITCH,
- re: /^switch(?=[ (])/i
- },
- {
- value: PHP.Constants.T_EXIT,
- re: /^(exit|die)(?=[ \(;])/i
- },
- {
- value: PHP.Constants.T_CLOSE_TAG,
- re: /^(\?\>|\%\>|\<\/script\>)\s?\s?/i,
- func: function( result ) {
- insidePHP = false;
- return result;
- }
- },
- {
- value: PHP.Constants.T_DOUBLE_ARROW,
- re: /^\=\>/
- },
- {
- value: PHP.Constants.T_DOUBLE_COLON,
- re: /^\:\:/
- },
- {
- value: PHP.Constants.T_METHOD_C,
- re: /^__METHOD__/
- },
- {
- value: PHP.Constants.T_LINE,
- re: /^__LINE__/
- },
- {
- value: PHP.Constants.T_FILE,
- re: /^__FILE__/
- },
- {
- value: PHP.Constants.T_FUNC_C,
- re: /^__FUNCTION__/
- },
- {
- value: PHP.Constants.T_NS_C,
- re: /^__NAMESPACE__/
- },
- {
- value: PHP.Constants.T_TRAIT_C,
- re: /^__TRAIT__/
- },
- {
- value: PHP.Constants.T_DIR,
- re: /^__DIR__/
- },
- {
- value: PHP.Constants.T_CLASS_C,
- re: /^__CLASS__/
- },
- {
- value: PHP.Constants.T_INC,
- re: /^\+\+/
- },
- {
- value: PHP.Constants.T_DEC,
- re: /^\-\-/
- },
- {
- value: PHP.Constants.T_CONCAT_EQUAL,
- re: /^\.\=/
- },
- {
- value: PHP.Constants.T_DIV_EQUAL,
- re: /^\/\=/
- },
- {
- value: PHP.Constants.T_XOR_EQUAL,
- re: /^\^\=/
- },
- {
- value: PHP.Constants.T_MUL_EQUAL,
- re: /^\*\=/
- },
- {
- value: PHP.Constants.T_MOD_EQUAL,
- re: /^\%\=/
- },
- {
- value: PHP.Constants.T_SL_EQUAL,
- re: /^<<=/
- },
- {
- value: PHP.Constants.T_START_HEREDOC,
- re: /^<<<[A-Z_0-9]+\s/i,
- func: function( result ){
- heredoc = result.substring(3, result.length - 1);
- return result;
- }
- },
- {
- value: PHP.Constants.T_SL,
- re: /^<</
- },
- {
- value: PHP.Constants.T_IS_SMALLER_OR_EQUAL,
- re: /^<=/
- },
- {
- value: PHP.Constants.T_SR_EQUAL,
- re: /^>>=/
- },
- {
- value: PHP.Constants.T_SR,
- re: /^>>/
- },
- {
- value: PHP.Constants.T_IS_GREATER_OR_EQUAL,
- re: /^>=/
- },
- {
- value: PHP.Constants.T_OR_EQUAL,
- re: /^\|\=/
- },
- {
- value: PHP.Constants.T_PLUS_EQUAL,
- re: /^\+\=/
- },
- {
- value: PHP.Constants.T_MINUS_EQUAL,
- re: /^-\=/
- },
- {
- value: PHP.Constants.T_OBJECT_OPERATOR,
- re: /^\-\>/i
- },
- {
- value: PHP.Constants.T_CLASS,
- re: /^class(?=[\s\{])/i,
- afterWhitespace: true
- },
- {
- value: PHP.Constants.T_TRAIT,
- re: /^trait(?=[\s]+[A-Za-z])/i,
- },
- {
- value: PHP.Constants.T_PUBLIC,
- re: /^public(?=[\s])/i
- },
- {
- value: PHP.Constants.T_PRIVATE,
- re: /^private(?=[\s])/i
- },
- {
- value: PHP.Constants.T_PROTECTED,
- re: /^protected(?=[\s])/i
- },
- {
- value: PHP.Constants.T_ARRAY,
- re: /^array(?=\s*?\()/i
- },
- {
- value: PHP.Constants.T_EMPTY,
- re: /^empty(?=[ \(])/i
- },
- {
- value: PHP.Constants.T_ISSET,
- re: /^isset(?=[ \(])/i
- },
- {
- value: PHP.Constants.T_UNSET,
- re: /^unset(?=[ \(])/i
- },
- {
- value: PHP.Constants.T_RETURN,
- re: /^return(?=[ "'(;])/i
- },
- {
- value: PHP.Constants.T_FUNCTION,
- re: /^function(?=[ "'(;])/i
- },
- {
- value: PHP.Constants.T_ECHO,
- re: /^echo(?=[ "'(;])/i
- },
- {
- value: PHP.Constants.T_LIST,
- re: /^list(?=\s*?\()/i
- },
- {
- value: PHP.Constants.T_PRINT,
- re: /^print(?=[ "'(;])/i
- },
- {
- value: PHP.Constants.T_INCLUDE,
- re: /^include(?=[ "'(;])/i
- },
- {
- value: PHP.Constants.T_INCLUDE_ONCE,
- re: /^include_once(?=[ "'(;])/i
- },
- {
- value: PHP.Constants.T_REQUIRE,
- re: /^require(?=[ "'(;])/i
- },
- {
- value: PHP.Constants.T_REQUIRE_ONCE,
- re: /^require_once(?=[ "'(;])/i
- },
- {
- value: PHP.Constants.T_NEW,
- re: /^new(?=[ ])/i
- },
- {
- value: PHP.Constants.T_COMMENT,
- re: /^\/\*([\S\s]*?)(?:\*\/|$)/
- },
- {
- value: PHP.Constants.T_COMMENT,
- re: /^\/\/.*(\s)?/
- },
- {
- value: PHP.Constants.T_COMMENT,
- re: /^\#.*(\s)?/
- },
- {
- value: PHP.Constants.T_ELSEIF,
- re: /^elseif(?=[\s(])/i
- },
- {
- value: PHP.Constants.T_GOTO,
- re: /^goto(?=[\s(])/i
- },
- {
- value: PHP.Constants.T_ELSE,
- re: /^else(?=[\s{:])/i
- },
- {
- value: PHP.Constants.T_IF,
- re: /^if(?=[\s(])/i
- },
- {
- value: PHP.Constants.T_DO,
- re: /^do(?=[ {])/i
- },
- {
- value: PHP.Constants.T_WHILE,
- re: /^while(?=[ (])/i
- },
- {
- value: PHP.Constants.T_FOREACH,
- re: /^foreach(?=[ (])/i
- },
- {
- value: PHP.Constants.T_ISSET,
- re: /^isset(?=[ (])/i
- },
- {
- value: PHP.Constants.T_IS_IDENTICAL,
- re: /^===/
- },
- {
- value: PHP.Constants.T_IS_EQUAL,
- re: /^==/
- },
- {
- value: PHP.Constants.T_IS_NOT_IDENTICAL,
- re: /^\!==/
- },
- {
- value: PHP.Constants.T_IS_NOT_EQUAL,
- re: /^(\!=|\<\>)/
- },
- {
- value: PHP.Constants.T_FOR,
- re: /^for(?=[ (])/i
- },
-
- {
- value: PHP.Constants.T_DNUMBER,
- re: /^[0-9]*\.[0-9]+([eE][-]?[0-9]*)?/
-
- },
- {
- value: PHP.Constants.T_LNUMBER,
- re: /^(0x[0-9A-F]+|[0-9]+)/i
- },
- {
- value: PHP.Constants.T_OPEN_TAG_WITH_ECHO,
- re: /^(\<\?=|\<\%=)/i
- },
- {
- value: PHP.Constants.T_OPEN_TAG,
- re: openTagStart
- },
- {
- value: PHP.Constants.T_VARIABLE,
- re: /^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
- },
- {
- value: PHP.Constants.T_WHITESPACE,
- re: /^\s+/
- },
- {
- value: PHP.Constants.T_CONSTANT_ENCAPSED_STRING,
- re: /^("(?:[^"\\]|\\[\s\S])*"|'(?:[^'\\]|\\[\s\S])*')/,
- func: function( result, token ) {
-
- var curlyOpen = 0,
- len,
- bracketOpen = 0;
-
- if (result.substring( 0,1 ) === "'") {
- return result;
- }
-
- var match = result.match( /(?:[^\\]|\\.)*[^\\]\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/g );
- if ( match !== null ) {
-
- while( result.length > 0 ) {
- len = result.length;
- match = result.match( /^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\@\^\%\"\'\{\}]/ );
-
- if ( match !== null ) {
-
- results.push( match[ 0 ] );
- result = result.substring( 1 );
-
- if ( curlyOpen > 0 && match[ 0 ] === "}") {
- curlyOpen--;
- }
-
- if ( match[ 0 ] === "[" ) {
- bracketOpen++;
- }
-
- if ( match[ 0 ] === "]" ) {
- bracketOpen--;
- }
-
- }
-
- match = result.match(/^\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/);
-
-
-
- if ( match !== null ) {
-
- results.push([
- parseInt(PHP.Constants.T_VARIABLE, 10),
- match[ 0 ],
- line
- ]);
-
- result = result.substring( match[ 0 ].length );
-
- match = result.match(/^(\-\>)([a-zA-Z0-9_\x7f-\xff]*)/);
-
- if ( match !== null ) {
-
- results.push([
- parseInt(PHP.Constants.T_OBJECT_OPERATOR, 10),
- match[ 1 ],
- line
- ]);
- results.push([
- parseInt(PHP.Constants.T_STRING, 10),
- match[ 2 ],
- line
- ]);
- result = result.substring( match[ 0 ].length );
- }
-
-
- if ( result.match( /^\[/g ) !== null ) {
- continue;
- }
- }
-
- var re;
- if ( curlyOpen > 0) {
- re = /^([^\\\$"{}\]]|\\.)+/g;
- } else {
- re = /^([^\\\$"{]|\\.|{[^\$])+/g;
- }
-
- while(( match = result.match( re )) !== null ) {
-
-
- if (result.length === 1) {
- throw new Error(match);
- }
-
-
-
- results.push([
- parseInt(( curlyOpen > 0 ) ? PHP.Constants.T_CONSTANT_ENCAPSED_STRING : PHP.Constants.T_ENCAPSED_AND_WHITESPACE, 10),
- match[ 0 ].replace(/\n/g,"\\n").replace(/\r/g,""),
- line
- ]);
-
- line += match[ 0 ].split('\n').length - 1;
-
- result = result.substring( match[ 0 ].length );
-
- }
-
- if( result.match(/^{\$/) !== null ) {
-
- results.push([
- parseInt(PHP.Constants.T_CURLY_OPEN, 10),
- "{",
- line
- ]);
- result = result.substring( 1 );
- curlyOpen++;
- }
-
- if (len === result.length) {
- if ((match = result.match( /^(([^\\]|\\.)*?[^\\]\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)/g )) !== null) {
- return;
- }
- }
-
- }
-
- return undefined;
-
- } else {
- result = result.replace(/\n/g,"\\n").replace(/\r/g,"");
- }
- return result;
- }
- },
- {
- value: PHP.Constants.T_NS_SEPARATOR,
- re: /^\\(?=[a-zA-Z_])/
- },
- {
- value: PHP.Constants.T_STRING,
- re: /^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/
- },
- {
- value: -1,
- re: /^[\[\]\;\:\?\(\)\!\.\,\>\<\=\+\-\/\*\|\&\{\}\@\^\%\"\'\$\~]/
- }];
-
-
-
-
-
- var results = [],
- line = 1,
- insidePHP = false,
- cancel = true;
-
- if ( src === null ) {
- return results;
- }
-
- if ( typeof src !== "string" ) {
- src = src.toString();
- }
-
-
-
- while (src.length > 0 && cancel === true) {
-
- if ( insidePHP === true ) {
-
- if ( heredoc !== undefined ) {
-
- var regexp = new RegExp('([\\S\\s]*)(\\r\\n|\\n|\\r)(' + heredoc + ')(;|\\r\\n|\\n)',"i");
-
-
-
- var result = src.match( regexp );
- if ( result !== null ) {
-
- results.push([
- parseInt(PHP.Constants.T_ENCAPSED_AND_WHITESPACE, 10),
- result[ 1 ].replace(/^\n/g,"").replace(/\\\$/g,"$") + "\n",
- line
- ]);
- line += result[ 1 ].split('\n').length;
- results.push([
- parseInt(PHP.Constants.T_END_HEREDOC, 10),
- result[ 3 ],
- line
- ]);
-
- src = src.substring( result[1].length + result[2].length + result[3].length );
- heredoc = undefined;
- }
-
- if (result === null) {
- throw Error("sup");
- }
-
-
- } else {
- cancel = tokens.some(function( token ){
- if ( token.afterWhitespace === true ) {
- var last = results[ results.length - 1 ];
- if ( !Array.isArray( last ) || (last[ 0 ] !== PHP.Constants.T_WHITESPACE && last[ 0 ] !== PHP.Constants.T_OPEN_TAG && last[ 0 ] !== PHP.Constants.T_COMMENT)) {
- return false;
- }
- }
- var result = src.match( token.re );
-
- if ( result !== null ) {
- if ( token.value !== -1) {
- var resultString = result[ 0 ];
-
-
-
- if (token.func !== undefined ) {
- resultString = token.func( resultString, token );
- }
- if (resultString !== undefined ) {
-
- results.push([
- parseInt(token.value, 10),
- resultString,
- line
- ]);
- line += resultString.split('\n').length - 1;
- }
-
- } else {
- results.push( result[ 0 ] );
- }
-
- src = src.substring(result[ 0 ].length);
-
- return true;
- }
- return false;
-
-
- });
- }
-
- } else {
-
- var result = openTag.exec( src );
-
-
- if ( result !== null ) {
- if ( result.index > 0 ) {
- var resultString = src.substring(0, result.index);
- results.push ([
- parseInt(PHP.Constants.T_INLINE_HTML, 10),
- resultString,
- line
- ]);
-
- line += resultString.split('\n').length - 1;
-
- src = src.substring( result.index );
- }
-
- insidePHP = true;
- } else {
-
- results.push ([
- parseInt(PHP.Constants.T_INLINE_HTML, 10),
- src.replace(/^\n/, ""),
- line
- ]);
- return results;
- }
-
- }
-
-
-
- }
-
-
-
- return results;
-
-
-
- };
-
-
-PHP.Parser = function ( preprocessedTokens, eval ) {
-
- var yybase = this.yybase,
- yydefault = this.yydefault,
- yycheck = this.yycheck,
- yyaction = this.yyaction,
- yylen = this.yylen,
- yygbase = this.yygbase,
- yygcheck = this.yygcheck,
- yyp = this.yyp,
- yygoto = this.yygoto,
- yylhs = this.yylhs,
- terminals = this.terminals,
- translate = this.translate,
- yygdefault = this.yygdefault;
-
-
- this.pos = -1;
- this.line = 1;
-
- this.tokenMap = this.createTokenMap( );
-
- this.dropTokens = {};
- this.dropTokens[ PHP.Constants.T_WHITESPACE ] = 1;
- this.dropTokens[ PHP.Constants.T_OPEN_TAG ] = 1;
- var tokens = [];
- preprocessedTokens.forEach( function( token, index ) {
- if ( typeof token === "object" && token[ 0 ] === PHP.Constants.T_OPEN_TAG_WITH_ECHO) {
- tokens.push([
- PHP.Constants.T_OPEN_TAG,
- token[ 1 ],
- token[ 2 ]
- ]);
- tokens.push([
- PHP.Constants.T_ECHO,
- token[ 1 ],
- token[ 2 ]
- ]);
- } else {
- tokens.push( token );
- }
- });
- this.tokens = tokens;
- var tokenId = this.TOKEN_NONE;
- this.startAttributes = {
- 'startLine': 1
- };
-
- this.endAttributes = {};
- var attributeStack = [ this.startAttributes ];
- var state = 0;
- var stateStack = [ state ];
- this.yyastk = [];
- this.stackPos = 0;
-
- var yyn;
-
- var origTokenId;
-
-
- for (;;) {
-
- if ( yybase[ state ] === 0 ) {
- yyn = yydefault[ state ];
- } else {
- if (tokenId === this.TOKEN_NONE ) {
- origTokenId = this.getNextToken( );
- tokenId = (origTokenId >= 0 && origTokenId < this.TOKEN_MAP_SIZE) ? translate[ origTokenId ] : this.TOKEN_INVALID;
-
- attributeStack[ this.stackPos ] = this.startAttributes;
- }
-
- if (((yyn = yybase[ state ] + tokenId) >= 0
- && yyn < this.YYLAST && yycheck[ yyn ] === tokenId
- || (state < this.YY2TBLSTATE
- && (yyn = yybase[state + this.YYNLSTATES] + tokenId) >= 0
- && yyn < this.YYLAST
- && yycheck[ yyn ] === tokenId))
- && (yyn = yyaction[ yyn ]) !== this.YYDEFAULT ) {
- if (yyn > 0) {
- ++this.stackPos;
-
- stateStack[ this.stackPos ] = state = yyn;
- this.yyastk[ this.stackPos ] = this.tokenValue;
- attributeStack[ this.stackPos ] = this.startAttributes;
- tokenId = this.TOKEN_NONE;
-
- if (yyn < this.YYNLSTATES)
- continue;
- yyn -= this.YYNLSTATES;
- } else {
- yyn = -yyn;
- }
- } else {
- yyn = yydefault[ state ];
- }
- }
-
- for (;;) {
-
- if ( yyn === 0 ) {
- return this.yyval;
- } else if (yyn !== this.YYUNEXPECTED ) {
- for (var attr in this.endAttributes) {
- attributeStack[ this.stackPos - yylen[ yyn ] ][ attr ] = this.endAttributes[ attr ];
- }
- try {
- this['yyn' + yyn](attributeStack[ this.stackPos - yylen[ yyn ] ]);
- } catch (e) {
- throw e;
- }
- this.stackPos -= yylen[ yyn ];
- yyn = yylhs[ yyn ];
- if ((yyp = yygbase[ yyn ] + stateStack[ this.stackPos ]) >= 0
- && yyp < this.YYGLAST
- && yygcheck[ yyp ] === yyn) {
- state = yygoto[ yyp ];
- } else {
- state = yygdefault[ yyn ];
- }
-
- ++this.stackPos;
-
- stateStack[ this.stackPos ] = state;
- this.yyastk[ this.stackPos ] = this.yyval;
- attributeStack[ this.stackPos ] = this.startAttributes;
- } else {
- if (eval !== true) {
-
- var expected = [];
-
- for (var i = 0; i < this.TOKEN_MAP_SIZE; ++i) {
- if ((yyn = yybase[ state ] + i) >= 0 && yyn < this.YYLAST && yycheck[ yyn ] == i
- || state < this.YY2TBLSTATE
- && (yyn = yybase[ state + this.YYNLSTATES] + i)
- && yyn < this.YYLAST && yycheck[ yyn ] == i
- ) {
- if (yyaction[ yyn ] != this.YYUNEXPECTED) {
- if (expected.length == 4) {
- expected = [];
- break;
- }
-
- expected.push( this.terminals[ i ] );
- }
- }
- }
-
- var expectedString = '';
- if (expected.length) {
- expectedString = ', expecting ' + expected.join(' or ');
- }
- throw new PHP.ParseError('syntax error, unexpected ' + terminals[ tokenId ] + expectedString, this.startAttributes['startLine']);
- } else {
- return this.startAttributes['startLine'];
- }
-
- }
-
- if (state < this.YYNLSTATES)
- break;
- yyn = state - this.YYNLSTATES;
- }
- }
-};
-
-PHP.ParseError = function( msg, line ) {
- this.message = msg;
- this.line = line;
-};
-
-PHP.Parser.prototype.MODIFIER_PUBLIC = 1;
-PHP.Parser.prototype.MODIFIER_PROTECTED = 2;
-PHP.Parser.prototype.MODIFIER_PRIVATE = 4;
-PHP.Parser.prototype.MODIFIER_STATIC = 8;
-PHP.Parser.prototype.MODIFIER_ABSTRACT = 16;
-PHP.Parser.prototype.MODIFIER_FINAL = 32;
-
-PHP.Parser.prototype.getNextToken = function( ) {
-
- this.startAttributes = {};
- this.endAttributes = {};
-
- var token,
- tmp;
-
- while (this.tokens[++this.pos] !== undefined) {
- token = this.tokens[this.pos];
-
- if (typeof token === "string") {
- this.startAttributes['startLine'] = this.line;
- this.endAttributes['endLine'] = this.line;
- if ('b"' === token) {
- this.tokenValue = 'b"';
- return '"'.charCodeAt(0);
- } else {
- this.tokenValue = token;
- return token.charCodeAt(0);
- }
- } else {
-
-
-
- this.line += ((tmp = token[ 1 ].match(/\n/g)) === null) ? 0 : tmp.length;
-
- if (PHP.Constants.T_COMMENT === token[0]) {
-
- if (!Array.isArray(this.startAttributes['comments'])) {
- this.startAttributes['comments'] = [];
- }
-
- this.startAttributes['comments'].push( {
- type: "comment",
- comment: token[1],
- line: token[2]
- });
-
- } else if (PHP.Constants.T_DOC_COMMENT === token[0]) {
- this.startAttributes['comments'].push( new PHPParser_Comment_Doc(token[1], token[2]) );
- } else if (this.dropTokens[token[0]] === undefined) {
- this.tokenValue = token[1];
- this.startAttributes['startLine'] = token[2];
- this.endAttributes['endLine'] = this.line;
-
- return this.tokenMap[token[0]];
- }
- }
- }
-
- this.startAttributes['startLine'] = this.line;
- return 0;
-};
-
-PHP.Parser.prototype.tokenName = function( token ) {
- var constants = ["T_INCLUDE","T_INCLUDE_ONCE","T_EVAL","T_REQUIRE","T_REQUIRE_ONCE","T_LOGICAL_OR","T_LOGICAL_XOR","T_LOGICAL_AND","T_PRINT","T_PLUS_EQUAL","T_MINUS_EQUAL","T_MUL_EQUAL","T_DIV_EQUAL","T_CONCAT_EQUAL","T_MOD_EQUAL","T_AND_EQUAL","T_OR_EQUAL","T_XOR_EQUAL","T_SL_EQUAL","T_SR_EQUAL","T_BOOLEAN_OR","T_BOOLEAN_AND","T_IS_EQUAL","T_IS_NOT_EQUAL","T_IS_IDENTICAL","T_IS_NOT_IDENTICAL","T_IS_SMALLER_OR_EQUAL","T_IS_GREATER_OR_EQUAL","T_SL","T_SR","T_INSTANCEOF","T_INC","T_DEC","T_INT_CAST","T_DOUBLE_CAST","T_STRING_CAST","T_ARRAY_CAST","T_OBJECT_CAST","T_BOOL_CAST","T_UNSET_CAST","T_NEW","T_CLONE","T_EXIT","T_IF","T_ELSEIF","T_ELSE","T_ENDIF","T_LNUMBER","T_DNUMBER","T_STRING","T_STRING_VARNAME","T_VARIABLE","T_NUM_STRING","T_INLINE_HTML","T_CHARACTER","T_BAD_CHARACTER","T_ENCAPSED_AND_WHITESPACE","T_CONSTANT_ENCAPSED_STRING","T_ECHO","T_DO","T_WHILE","T_ENDWHILE","T_FOR","T_ENDFOR","T_FOREACH","T_ENDFOREACH","T_DECLARE","T_ENDDECLARE","T_AS","T_SWITCH","T_ENDSWITCH","T_CASE","T_DEFAULT","T_BREAK","T_CONTINUE","T_GOTO","T_FUNCTION","T_CONST","T_RETURN","T_TRY","T_CATCH","T_THROW","T_USE","T_INSTEADOF","T_GLOBAL","T_STATIC","T_ABSTRACT","T_FINAL","T_PRIVATE","T_PROTECTED","T_PUBLIC","T_VAR","T_UNSET","T_ISSET","T_EMPTY","T_HALT_COMPILER","T_CLASS","T_TRAIT","T_INTERFACE","T_EXTENDS","T_IMPLEMENTS","T_OBJECT_OPERATOR","T_DOUBLE_ARROW","T_LIST","T_ARRAY","T_CALLABLE","T_CLASS_C","T_TRAIT_C","T_METHOD_C","T_FUNC_C","T_LINE","T_FILE","T_COMMENT","T_DOC_COMMENT","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","T_CLOSE_TAG","T_WHITESPACE","T_START_HEREDOC","T_END_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","T_CURLY_OPEN","T_PAAMAYIM_NEKUDOTAYIM","T_DOUBLE_COLON","T_NAMESPACE","T_NS_C","T_DIR","T_NS_SEPARATOR"];
- var current = "UNKNOWN";
- constants.some(function( constant ) {
- if (PHP.Constants[ constant ] === token) {
- current = constant;
- return true;
- } else {
- return false;
- }
- });
-
- return current;
-};
-
-PHP.Parser.prototype.createTokenMap = function() {
- var tokenMap = {},
- name,
- i;
- var T_DOUBLE_COLON = PHP.Constants.T_PAAMAYIM_NEKUDOTAYIM;
- for ( i = 256; i < 1000; ++i ) {
- if ( T_DOUBLE_COLON === i ) {
- tokenMap[ i ] = this.T_PAAMAYIM_NEKUDOTAYIM;
- } else if( PHP.Constants.T_OPEN_TAG_WITH_ECHO === i ) {
- tokenMap[ i ] = PHP.Constants.T_ECHO;
- } else if( PHP.Constants.T_CLOSE_TAG === i ) {
- tokenMap[ i ] = 59;
- } else if ( 'UNKNOWN' !== (name = this.tokenName( i ) ) ) {
- tokenMap[ i ] = this[name];
- }
- }
- return tokenMap;
-};
-
-var yynStandard = function () {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.MakeArray = function( arr ) {
- return Array.isArray( arr ) ? arr : [ arr ];
-}
-
-
-PHP.Parser.prototype.parseString = function( str ) {
- var bLength = 0;
- if ('b' === str[0]) {
- bLength = 1;
- }
-
- if ('\'' === str[ bLength ]) {
- str = str.replace(
- ['\\\\', '\\\''],
- [ '\\', '\'']);
- } else {
-
- str = this.parseEscapeSequences( str, '"');
-
- }
-
- return str;
-
-};
-
-PHP.Parser.prototype.parseEscapeSequences = function( str, quote ) {
-
-
-
- if (undefined !== quote) {
- str = str.replace(new RegExp('\\' + quote, "g"), quote);
- }
-
- var replacements = {
- '\\': '\\',
- '$': '$',
- 'n': "\n",
- 'r': "\r",
- 't': "\t",
- 'f': "\f",
- 'v': "\v",
- 'e': "\x1B"
- };
-
- return str.replace(
- /~\\\\([\\\\$nrtfve]|[xX][0-9a-fA-F]{1,2}|[0-7]{1,3})~/g,
- function ( matches ){
- var str = matches[1];
-
- if ( replacements[ str ] !== undefined ) {
- return replacements[ str ];
- } else if ('x' === str[ 0 ] || 'X' === str[ 0 ]) {
- return chr(hexdec(str));
- } else {
- return chr(octdec(str));
- }
- }
- );
-
- return str;
-};
-
-PHP.Parser.prototype.TOKEN_NONE = -1;
-PHP.Parser.prototype.TOKEN_INVALID = 149;
-
-PHP.Parser.prototype.TOKEN_MAP_SIZE = 384;
-
-PHP.Parser.prototype.YYLAST = 913;
-PHP.Parser.prototype.YY2TBLSTATE = 328;
-PHP.Parser.prototype.YYGLAST = 415;
-PHP.Parser.prototype.YYNLSTATES = 544;
-PHP.Parser.prototype.YYUNEXPECTED = 32767;
-PHP.Parser.prototype.YYDEFAULT = -32766;
-PHP.Parser.prototype.YYERRTOK = 256;
-PHP.Parser.prototype.T_INCLUDE = 257;
-PHP.Parser.prototype.T_INCLUDE_ONCE = 258;
-PHP.Parser.prototype.T_EVAL = 259;
-PHP.Parser.prototype.T_REQUIRE = 260;
-PHP.Parser.prototype.T_REQUIRE_ONCE = 261;
-PHP.Parser.prototype.T_LOGICAL_OR = 262;
-PHP.Parser.prototype.T_LOGICAL_XOR = 263;
-PHP.Parser.prototype.T_LOGICAL_AND = 264;
-PHP.Parser.prototype.T_PRINT = 265;
-PHP.Parser.prototype.T_PLUS_EQUAL = 266;
-PHP.Parser.prototype.T_MINUS_EQUAL = 267;
-PHP.Parser.prototype.T_MUL_EQUAL = 268;
-PHP.Parser.prototype.T_DIV_EQUAL = 269;
-PHP.Parser.prototype.T_CONCAT_EQUAL = 270;
-PHP.Parser.prototype.T_MOD_EQUAL = 271;
-PHP.Parser.prototype.T_AND_EQUAL = 272;
-PHP.Parser.prototype.T_OR_EQUAL = 273;
-PHP.Parser.prototype.T_XOR_EQUAL = 274;
-PHP.Parser.prototype.T_SL_EQUAL = 275;
-PHP.Parser.prototype.T_SR_EQUAL = 276;
-PHP.Parser.prototype.T_BOOLEAN_OR = 277;
-PHP.Parser.prototype.T_BOOLEAN_AND = 278;
-PHP.Parser.prototype.T_IS_EQUAL = 279;
-PHP.Parser.prototype.T_IS_NOT_EQUAL = 280;
-PHP.Parser.prototype.T_IS_IDENTICAL = 281;
-PHP.Parser.prototype.T_IS_NOT_IDENTICAL = 282;
-PHP.Parser.prototype.T_IS_SMALLER_OR_EQUAL = 283;
-PHP.Parser.prototype.T_IS_GREATER_OR_EQUAL = 284;
-PHP.Parser.prototype.T_SL = 285;
-PHP.Parser.prototype.T_SR = 286;
-PHP.Parser.prototype.T_INSTANCEOF = 287;
-PHP.Parser.prototype.T_INC = 288;
-PHP.Parser.prototype.T_DEC = 289;
-PHP.Parser.prototype.T_INT_CAST = 290;
-PHP.Parser.prototype.T_DOUBLE_CAST = 291;
-PHP.Parser.prototype.T_STRING_CAST = 292;
-PHP.Parser.prototype.T_ARRAY_CAST = 293;
-PHP.Parser.prototype.T_OBJECT_CAST = 294;
-PHP.Parser.prototype.T_BOOL_CAST = 295;
-PHP.Parser.prototype.T_UNSET_CAST = 296;
-PHP.Parser.prototype.T_NEW = 297;
-PHP.Parser.prototype.T_CLONE = 298;
-PHP.Parser.prototype.T_EXIT = 299;
-PHP.Parser.prototype.T_IF = 300;
-PHP.Parser.prototype.T_ELSEIF = 301;
-PHP.Parser.prototype.T_ELSE = 302;
-PHP.Parser.prototype.T_ENDIF = 303;
-PHP.Parser.prototype.T_LNUMBER = 304;
-PHP.Parser.prototype.T_DNUMBER = 305;
-PHP.Parser.prototype.T_STRING = 306;
-PHP.Parser.prototype.T_STRING_VARNAME = 307;
-PHP.Parser.prototype.T_VARIABLE = 308;
-PHP.Parser.prototype.T_NUM_STRING = 309;
-PHP.Parser.prototype.T_INLINE_HTML = 310;
-PHP.Parser.prototype.T_CHARACTER = 311;
-PHP.Parser.prototype.T_BAD_CHARACTER = 312;
-PHP.Parser.prototype.T_ENCAPSED_AND_WHITESPACE = 313;
-PHP.Parser.prototype.T_CONSTANT_ENCAPSED_STRING = 314;
-PHP.Parser.prototype.T_ECHO = 315;
-PHP.Parser.prototype.T_DO = 316;
-PHP.Parser.prototype.T_WHILE = 317;
-PHP.Parser.prototype.T_ENDWHILE = 318;
-PHP.Parser.prototype.T_FOR = 319;
-PHP.Parser.prototype.T_ENDFOR = 320;
-PHP.Parser.prototype.T_FOREACH = 321;
-PHP.Parser.prototype.T_ENDFOREACH = 322;
-PHP.Parser.prototype.T_DECLARE = 323;
-PHP.Parser.prototype.T_ENDDECLARE = 324;
-PHP.Parser.prototype.T_AS = 325;
-PHP.Parser.prototype.T_SWITCH = 326;
-PHP.Parser.prototype.T_ENDSWITCH = 327;
-PHP.Parser.prototype.T_CASE = 328;
-PHP.Parser.prototype.T_DEFAULT = 329;
-PHP.Parser.prototype.T_BREAK = 330;
-PHP.Parser.prototype.T_CONTINUE = 331;
-PHP.Parser.prototype.T_GOTO = 332;
-PHP.Parser.prototype.T_FUNCTION = 333;
-PHP.Parser.prototype.T_CONST = 334;
-PHP.Parser.prototype.T_RETURN = 335;
-PHP.Parser.prototype.T_TRY = 336;
-PHP.Parser.prototype.T_CATCH = 337;
-PHP.Parser.prototype.T_THROW = 338;
-PHP.Parser.prototype.T_USE = 339;
-PHP.Parser.prototype.T_INSTEADOF = 340;
-PHP.Parser.prototype.T_GLOBAL = 341;
-PHP.Parser.prototype.T_STATIC = 342;
-PHP.Parser.prototype.T_ABSTRACT = 343;
-PHP.Parser.prototype.T_FINAL = 344;
-PHP.Parser.prototype.T_PRIVATE = 345;
-PHP.Parser.prototype.T_PROTECTED = 346;
-PHP.Parser.prototype.T_PUBLIC = 347;
-PHP.Parser.prototype.T_VAR = 348;
-PHP.Parser.prototype.T_UNSET = 349;
-PHP.Parser.prototype.T_ISSET = 350;
-PHP.Parser.prototype.T_EMPTY = 351;
-PHP.Parser.prototype.T_HALT_COMPILER = 352;
-PHP.Parser.prototype.T_CLASS = 353;
-PHP.Parser.prototype.T_TRAIT = 354;
-PHP.Parser.prototype.T_INTERFACE = 355;
-PHP.Parser.prototype.T_EXTENDS = 356;
-PHP.Parser.prototype.T_IMPLEMENTS = 357;
-PHP.Parser.prototype.T_OBJECT_OPERATOR = 358;
-PHP.Parser.prototype.T_DOUBLE_ARROW = 359;
-PHP.Parser.prototype.T_LIST = 360;
-PHP.Parser.prototype.T_ARRAY = 361;
-PHP.Parser.prototype.T_CALLABLE = 362;
-PHP.Parser.prototype.T_CLASS_C = 363;
-PHP.Parser.prototype.T_TRAIT_C = 364;
-PHP.Parser.prototype.T_METHOD_C = 365;
-PHP.Parser.prototype.T_FUNC_C = 366;
-PHP.Parser.prototype.T_LINE = 367;
-PHP.Parser.prototype.T_FILE = 368;
-PHP.Parser.prototype.T_COMMENT = 369;
-PHP.Parser.prototype.T_DOC_COMMENT = 370;
-PHP.Parser.prototype.T_OPEN_TAG = 371;
-PHP.Parser.prototype.T_OPEN_TAG_WITH_ECHO = 372;
-PHP.Parser.prototype.T_CLOSE_TAG = 373;
-PHP.Parser.prototype.T_WHITESPACE = 374;
-PHP.Parser.prototype.T_START_HEREDOC = 375;
-PHP.Parser.prototype.T_END_HEREDOC = 376;
-PHP.Parser.prototype.T_DOLLAR_OPEN_CURLY_BRACES = 377;
-PHP.Parser.prototype.T_CURLY_OPEN = 378;
-PHP.Parser.prototype.T_PAAMAYIM_NEKUDOTAYIM = 379;
-PHP.Parser.prototype.T_NAMESPACE = 380;
-PHP.Parser.prototype.T_NS_C = 381;
-PHP.Parser.prototype.T_DIR = 382;
-PHP.Parser.prototype.T_NS_SEPARATOR = 383;
-PHP.Parser.prototype.terminals = [
- "$EOF",
- "error",
- "T_INCLUDE",
- "T_INCLUDE_ONCE",
- "T_EVAL",
- "T_REQUIRE",
- "T_REQUIRE_ONCE",
- "','",
- "T_LOGICAL_OR",
- "T_LOGICAL_XOR",
- "T_LOGICAL_AND",
- "T_PRINT",
- "'='",
- "T_PLUS_EQUAL",
- "T_MINUS_EQUAL",
- "T_MUL_EQUAL",
- "T_DIV_EQUAL",
- "T_CONCAT_EQUAL",
- "T_MOD_EQUAL",
- "T_AND_EQUAL",
- "T_OR_EQUAL",
- "T_XOR_EQUAL",
- "T_SL_EQUAL",
- "T_SR_EQUAL",
- "'?'",
- "':'",
- "T_BOOLEAN_OR",
- "T_BOOLEAN_AND",
- "'|'",
- "'^'",
- "'&'",
- "T_IS_EQUAL",
- "T_IS_NOT_EQUAL",
- "T_IS_IDENTICAL",
- "T_IS_NOT_IDENTICAL",
- "'<'",
- "T_IS_SMALLER_OR_EQUAL",
- "'>'",
- "T_IS_GREATER_OR_EQUAL",
- "T_SL",
- "T_SR",
- "'+'",
- "'-'",
- "'.'",
- "'*'",
- "'/'",
- "'%'",
- "'!'",
- "T_INSTANCEOF",
- "'~'",
- "T_INC",
- "T_DEC",
- "T_INT_CAST",
- "T_DOUBLE_CAST",
- "T_STRING_CAST",
- "T_ARRAY_CAST",
- "T_OBJECT_CAST",
- "T_BOOL_CAST",
- "T_UNSET_CAST",
- "'@'",
- "'['",
- "T_NEW",
- "T_CLONE",
- "T_EXIT",
- "T_IF",
- "T_ELSEIF",
- "T_ELSE",
- "T_ENDIF",
- "T_LNUMBER",
- "T_DNUMBER",
- "T_STRING",
- "T_STRING_VARNAME",
- "T_VARIABLE",
- "T_NUM_STRING",
- "T_INLINE_HTML",
- "T_ENCAPSED_AND_WHITESPACE",
- "T_CONSTANT_ENCAPSED_STRING",
- "T_ECHO",
- "T_DO",
- "T_WHILE",
- "T_ENDWHILE",
- "T_FOR",
- "T_ENDFOR",
- "T_FOREACH",
- "T_ENDFOREACH",
- "T_DECLARE",
- "T_ENDDECLARE",
- "T_AS",
- "T_SWITCH",
- "T_ENDSWITCH",
- "T_CASE",
- "T_DEFAULT",
- "T_BREAK",
- "T_CONTINUE",
- "T_GOTO",
- "T_FUNCTION",
- "T_CONST",
- "T_RETURN",
- "T_TRY",
- "T_CATCH",
- "T_THROW",
- "T_USE",
- "T_INSTEADOF",
- "T_GLOBAL",
- "T_STATIC",
- "T_ABSTRACT",
- "T_FINAL",
- "T_PRIVATE",
- "T_PROTECTED",
- "T_PUBLIC",
- "T_VAR",
- "T_UNSET",
- "T_ISSET",
- "T_EMPTY",
- "T_HALT_COMPILER",
- "T_CLASS",
- "T_TRAIT",
- "T_INTERFACE",
- "T_EXTENDS",
- "T_IMPLEMENTS",
- "T_OBJECT_OPERATOR",
- "T_DOUBLE_ARROW",
- "T_LIST",
- "T_ARRAY",
- "T_CALLABLE",
- "T_CLASS_C",
- "T_TRAIT_C",
- "T_METHOD_C",
- "T_FUNC_C",
- "T_LINE",
- "T_FILE",
- "T_START_HEREDOC",
- "T_END_HEREDOC",
- "T_DOLLAR_OPEN_CURLY_BRACES",
- "T_CURLY_OPEN",
- "T_PAAMAYIM_NEKUDOTAYIM",
- "T_NAMESPACE",
- "T_NS_C",
- "T_DIR",
- "T_NS_SEPARATOR",
- "';'",
- "'{'",
- "'}'",
- "'('",
- "')'",
- "'$'",
- "']'",
- "'`'",
- "'\"'"
- , "???"
-];
-PHP.Parser.prototype.translate = [
- 0, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 47, 148, 149, 145, 46, 30, 149,
- 143, 144, 44, 41, 7, 42, 43, 45, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 25, 140,
- 35, 12, 37, 24, 59, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 60, 149, 146, 29, 149, 147, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 141, 28, 142, 49, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
- 149, 149, 149, 149, 149, 149, 1, 2, 3, 4,
- 5, 6, 8, 9, 10, 11, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 26, 27, 31,
- 32, 33, 34, 36, 38, 39, 40, 48, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 149, 149, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 149,
- 149, 149, 149, 149, 149, 131, 132, 133, 134, 135,
- 136, 137, 138, 139
-];
-
-PHP.Parser.prototype.yyaction = [
- 61, 62, 363, 63, 64,-32766,-32766,-32766, 509, 65,
- 708, 709, 710, 707, 706, 705,-32766,-32766,-32766,-32766,
- -32766,-32766, 132,-32766,-32766,-32766,-32766,-32766,-32767,-32767,
- -32767,-32767,-32766, 335,-32766,-32766,-32766,-32766,-32766, 66,
- 67, 351, 663, 664, 40, 68, 548, 69, 232, 233,
- 70, 71, 72, 73, 74, 75, 76, 77, 30, 246,
- 78, 336, 364, -112, 0, 469, 833, 834, 365, 641,
- 890, 436, 590, 41, 835, 53, 27, 366, 294, 367,
- 687, 368, 921, 369, 923, 922, 370,-32766,-32766,-32766,
- 42, 43, 371, 339, 126, 44, 372, 337, 79, 297,
- 349, 292, 293,-32766, 918,-32766,-32766, 373, 374, 375,
- 376, 377, 391, 199, 361, 338, 573, 613, 378, 379,
- 380, 381, 845, 839, 840, 841, 842, 836, 837, 253,
- -32766, 87, 88, 89, 391, 843, 838, 338, 597, 519,
- 128, 80, 129, 273, 332, 257, 261, 47, 673, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 799, 247, 884, 108, 109, 110, 226, 247, 21,-32766,
- 310,-32766,-32766,-32766, 642, 548,-32766,-32766,-32766,-32766,
- 56, 353,-32766,-32766,-32766, 55,-32766,-32766,-32766,-32766,
- -32766, 58,-32766,-32766,-32766,-32766,-32766,-32766,-32766,-32766,
- -32766, 557,-32766,-32766, 518,-32766, 548, 890,-32766, 390,
- -32766, 228, 252,-32766,-32766,-32766,-32766,-32766, 275,-32766,
- 234,-32766, 587, 588,-32766,-32766,-32766,-32766,-32766,-32766,
- -32766, 46, 236,-32766,-32766, 281,-32766, 682, 348,-32766,
- 390,-32766, 346, 333, 521,-32766,-32766,-32766, 271, 911,
- 262, 237, 446, 911,-32766, 894, 59, 700, 358, 135,
- 548, 123, 538, 35,-32766, 333, 122,-32766,-32766,-32766,
- 271,-32766, 124,-32766, 692,-32766,-32766,-32766,-32766, 700,
- 273, 22,-32766,-32766,-32766,-32766, 239,-32766,-32766, 612,
- -32766, 548, 134,-32766, 390,-32766, 462, 354,-32766,-32766,
- -32766,-32766,-32766, 227,-32766, 238,-32766, 845, 542,-32766,
- 856, 611, 200,-32766,-32766,-32766, 259, 280,-32766,-32766,
- 201,-32766, 855, 129,-32766, 390, 130, 202, 333, 206,
- -32766,-32766,-32766, 271,-32766,-32766,-32766, 125, 601,-32766,
- 136, 299, 700, 489, 28, 548, 105, 106, 107,-32766,
- 498, 499,-32766,-32766,-32766, 207,-32766, 133,-32766, 525,
- -32766,-32766,-32766,-32766, 663, 664, 527,-32766,-32766,-32766,
- -32766, 528,-32766,-32766, 610,-32766, 548, 427,-32766, 390,
- -32766, 532, 539,-32766,-32766,-32766,-32766,-32766, 240,-32766,
- 247,-32766, 697, 543,-32766, 554, 523, 608,-32766,-32766,
- -32766, 686, 535,-32766,-32766, 54,-32766, 57, 60,-32766,
- 390, 246, -155, 278, 345,-32766,-32766,-32766, 506, 347,
- -152, 471, 402, 403,-32766, 405, 404, 272, 493, 416,
- 548, 318, 417, 505,-32766, 517, 548,-32766,-32766,-32766,
- 549,-32766, 562,-32766, 916,-32766,-32766,-32766,-32766, 564,
- 826, 848,-32766,-32766,-32766,-32766, 694,-32766,-32766, 485,
- -32766, 548, 487,-32766, 390,-32766, 504, 802,-32766,-32766,
- -32766,-32766,-32766, 279,-32766, 911,-32766, 502, 492,-32766,
- 413, 483, 269,-32766,-32766,-32766, 243, 337,-32766,-32766,
- 418,-32766, 454, 229,-32766, 390, 274, 373, 374, 344,
- -32766,-32766,-32766, 360, 614,-32766, 573, 613, 378, 379,
- -274, 548, 615, -332, 844,-32766, 258, 51,-32766,-32766,
- -32766, 270,-32766, 346,-32766, 52,-32766, 260, 0,-32766,
- -333,-32766,-32766,-32766,-32766,-32766,-32766, 205,-32766,-32766,
- 49,-32766, 548, 424,-32766, 390,-32766, -266, 264,-32766,
- -32766,-32766,-32766,-32766, 409,-32766, 343,-32766, 265, 312,
- -32766, 470, 513, -275,-32766,-32766,-32766, 920, 337,-32766,
- -32766, 530,-32766, 531, 600,-32766, 390, 592, 373, 374,
- 578, 581,-32766,-32766, 644, 629,-32766, 573, 613, 378,
- 379, 635, 548, 636, 576, 627,-32766, 625, 693,-32766,
- -32766,-32766, 691,-32766, 591,-32766, 582,-32766, 203, 204,
- -32766, 584, 583,-32766,-32766,-32766,-32766, 586, 599,-32766,
- -32766, 589,-32766, 690, 558,-32766, 390, 197, 683, 919,
- 86, 520, 522,-32766, 524, 833, 834, 529, 533,-32766,
- 534, 537, 541, 835, 48, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 127, 31, 633, 337,
- 330, 634, 585,-32766, 32, 291, 337, 330, 478, 373,
- 374, 917, 291, 891, 889, 875, 373, 374, 553, 613,
- 378, 379, 737, 739, 887, 553, 613, 378, 379, 824,
- 451, 675, 839, 840, 841, 842, 836, 837, 320, 895,
- 277, 885, 23, 33, 843, 838, 556, 277, 337, 330,
- -32766, 34,-32766, 555, 291, 36, 37, 38, 373, 374,
- 39, 45, 50, 81, 82, 83, 84, 553, 613, 378,
- 379,-32767,-32767,-32767,-32767, 103, 104, 105, 106, 107,
- 337, 85, 131, 137, 337, 138, 198, 224, 225, 277,
- 373, 374, -332, 230, 373, 374, 24, 337, 231, 573,
- 613, 378, 379, 573, 613, 378, 379, 373, 374, 235,
- 248, 249, 250, 337, 251, 0, 573, 613, 378, 379,
- 276, 329, 331, 373, 374,-32766, 337, 574, 490, 792,
- 337, 609, 573, 613, 378, 379, 373, 374, 25, 300,
- 373, 374, 319, 337, 795, 573, 613, 378, 379, 573,
- 613, 378, 379, 373, 374, 516, 355, 359, 445, 482,
- 796, 507, 573, 613, 378, 379, 508, 548, 337, 890,
- 775, 791, 337, 604, 803, 808, 806, 698, 373, 374,
- 888, 807, 373, 374,-32766,-32766,-32766, 573, 613, 378,
- 379, 573, 613, 378, 379, 873, 832, 804, 872, 851,
- -32766, 809,-32766,-32766,-32766,-32766, 805, 20, 26, 29,
- 298, 480, 515, 770, 778, 827, 457, 0, 900, 455,
- 774, 0, 0, 0, 874, 870, 886, 823, 915, 852,
- 869, 488, 0, 391, 793, 0, 338, 0, 0, 0,
- 340, 0, 273
-];
-
-PHP.Parser.prototype.yycheck = [
- 2, 3, 4, 5, 6, 8, 9, 10, 70, 11,
- 104, 105, 106, 107, 108, 109, 8, 9, 10, 8,
- 9, 24, 60, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 24, 7, 26, 27, 28, 29, 30, 41,
- 42, 7, 123, 124, 7, 47, 70, 49, 50, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 144, 0, 75, 68, 69, 70, 25,
- 72, 70, 74, 7, 76, 77, 78, 79, 7, 81,
- 142, 83, 70, 85, 72, 73, 88, 8, 9, 10,
- 92, 93, 94, 95, 7, 97, 98, 95, 100, 7,
- 7, 103, 104, 24, 142, 26, 27, 105, 106, 111,
- 112, 113, 136, 7, 7, 139, 114, 115, 116, 117,
- 122, 123, 132, 125, 126, 127, 128, 129, 130, 131,
- 8, 8, 9, 10, 136, 137, 138, 139, 140, 141,
- 25, 143, 141, 145, 142, 147, 148, 24, 72, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 144, 48, 72, 44, 45, 46, 30, 48, 144, 64,
- 72, 8, 9, 10, 140, 70, 8, 9, 10, 74,
- 60, 25, 77, 78, 79, 60, 81, 24, 83, 26,
- 85, 60, 24, 88, 26, 27, 28, 92, 93, 94,
- 64, 140, 97, 98, 70, 100, 70, 72, 103, 104,
- 74, 145, 7, 77, 78, 79, 111, 81, 7, 83,
- 30, 85, 140, 140, 88, 8, 9, 10, 92, 93,
- 94, 133, 134, 97, 98, 145, 100, 140, 7, 103,
- 104, 24, 139, 96, 141, 140, 141, 111, 101, 75,
- 75, 30, 70, 75, 64, 70, 60, 110, 121, 12,
- 70, 141, 25, 143, 74, 96, 141, 77, 78, 79,
- 101, 81, 141, 83, 140, 85, 140, 141, 88, 110,
- 145, 144, 92, 93, 94, 64, 7, 97, 98, 142,
- 100, 70, 141, 103, 104, 74, 145, 141, 77, 78,
- 79, 111, 81, 7, 83, 30, 85, 132, 25, 88,
- 132, 142, 12, 92, 93, 94, 120, 60, 97, 98,
- 12, 100, 148, 141, 103, 104, 141, 12, 96, 12,
- 140, 141, 111, 101, 8, 9, 10, 141, 25, 64,
- 90, 91, 110, 65, 66, 70, 41, 42, 43, 74,
- 65, 66, 77, 78, 79, 12, 81, 25, 83, 25,
- 85, 140, 141, 88, 123, 124, 25, 92, 93, 94,
- 64, 25, 97, 98, 142, 100, 70, 120, 103, 104,
- 74, 25, 25, 77, 78, 79, 111, 81, 30, 83,
- 48, 85, 140, 141, 88, 140, 141, 30, 92, 93,
- 94, 140, 141, 97, 98, 60, 100, 60, 60, 103,
- 104, 61, 72, 75, 70, 140, 141, 111, 67, 70,
- 87, 99, 70, 70, 64, 70, 72, 102, 89, 70,
- 70, 71, 70, 70, 74, 70, 70, 77, 78, 79,
- 70, 81, 70, 83, 70, 85, 140, 141, 88, 70,
- 144, 70, 92, 93, 94, 64, 70, 97, 98, 72,
- 100, 70, 72, 103, 104, 74, 72, 72, 77, 78,
- 79, 111, 81, 75, 83, 75, 85, 89, 86, 88,
- 79, 101, 118, 92, 93, 94, 87, 95, 97, 98,
- 87, 100, 87, 87, 103, 104, 118, 105, 106, 95,
- 140, 141, 111, 95, 115, 64, 114, 115, 116, 117,
- 135, 70, 115, 120, 132, 74, 120, 140, 77, 78,
- 79, 119, 81, 139, 83, 140, 85, 120, -1, 88,
- 120, 140, 141, 92, 93, 94, 64, 121, 97, 98,
- 121, 100, 70, 122, 103, 104, 74, 135, 135, 77,
- 78, 79, 111, 81, 139, 83, 139, 85, 135, 135,
- 88, 135, 135, 135, 92, 93, 94, 142, 95, 97,
- 98, 140, 100, 140, 140, 103, 104, 140, 105, 106,
- 140, 140, 141, 111, 140, 140, 64, 114, 115, 116,
- 117, 140, 70, 140, 140, 140, 74, 140, 140, 77,
- 78, 79, 140, 81, 140, 83, 140, 85, 41, 42,
- 88, 140, 140, 141, 92, 93, 94, 140, 140, 97,
- 98, 140, 100, 140, 140, 103, 104, 60, 140, 142,
- 141, 141, 141, 111, 141, 68, 69, 141, 141, 72,
- 141, 141, 141, 76, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 141, 143, 142, 95,
- 96, 142, 140, 141, 143, 101, 95, 96, 142, 105,
- 106, 142, 101, 142, 142, 142, 105, 106, 114, 115,
- 116, 117, 50, 51, 142, 114, 115, 116, 117, 142,
- 123, 142, 125, 126, 127, 128, 129, 130, 131, 142,
- 136, 142, 144, 143, 137, 138, 142, 136, 95, 96,
- 143, 143, 145, 142, 101, 143, 143, 143, 105, 106,
- 143, 143, 143, 143, 143, 143, 143, 114, 115, 116,
- 117, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 95, 143, 143, 143, 95, 143, 143, 143, 143, 136,
- 105, 106, 120, 143, 105, 106, 144, 95, 143, 114,
- 115, 116, 117, 114, 115, 116, 117, 105, 106, 143,
- 143, 143, 143, 95, 143, -1, 114, 115, 116, 117,
- 143, 143, 143, 105, 106, 143, 95, 142, 80, 146,
- 95, 142, 114, 115, 116, 117, 105, 106, 144, 144,
- 105, 106, 144, 95, 142, 114, 115, 116, 117, 114,
- 115, 116, 117, 105, 106, 82, 144, 144, 144, 144,
- 142, 84, 114, 115, 116, 117, 144, 70, 95, 72,
- 144, 144, 95, 142, 144, 146, 144, 142, 105, 106,
- 146, 144, 105, 106, 8, 9, 10, 114, 115, 116,
- 117, 114, 115, 116, 117, 144, 144, 144, 144, 144,
- 24, 104, 26, 27, 28, 29, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, -1, 144, 144,
- 144, -1, -1, -1, 146, 146, 146, 146, 146, 146,
- 146, 146, -1, 136, 147, -1, 139, -1, -1, -1,
- 143, -1, 145
-];
-
-PHP.Parser.prototype.yybase = [
- 0, 574, 581, 623, 655, 2, 718, 402, 747, 659,
- 672, 688, 743, 701, 705, 483, 483, 483, 483, 483,
- 351, 356, 366, 366, 367, 366, 344, -2, -2, -2,
- 200, 200, 231, 231, 231, 231, 231, 231, 231, 231,
- 200, 231, 451, 482, 532, 316, 370, 115, 146, 285,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
- 401, 401, 401, 401, 401, 401, 401, 401, 401, 44,
- 474, 429, 476, 481, 487, 488, 739, 740, 741, 734,
- 733, 416, 736, 539, 541, 342, 542, 543, 552, 557,
- 559, 536, 567, 737, 755, 569, 735, 738, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 122, 11, 336,
- 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
- 336, 336, 336, 336, 227, 227, 173, 577, 577, 577,
- 577, 577, 577, 577, 577, 577, 577, 577, 79, 178,
- 846, 8, -3, -3, -3, -3, 642, 706, 706, 706,
- 706, 157, 179, 242, 431, 431, 360, 431, 525, 368,
- 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 350, 375, 315, 315, 652, 652, -81, -81,
- -81, -81, 251, 185, 188, 184, -62, 348, 195, 195,
- 195, 408, 392, 410, 1, 192, 129, 129, 129, -24,
- -24, -24, -24, 499, -24, -24, -24, 113, 108, 108,
- 12, 161, 349, 526, 271, 398, 529, 438, 130, 206,
- 265, 427, 76, 414, 427, 288, 295, 76, 166, 44,
- 262, 422, 141, 491, 372, 494, 413, 71, 92, 93,
- 267, 135, 100, 34, 415, 745, 746, 742, -38, 420,
- -10, 135, 147, 744, 498, 107, 26, 493, 144, 377,
- 363, 369, 332, 363, 400, 377, 588, 377, 376, 377,
- 360, 37, 582, 376, 377, 374, 376, 388, 363, 364,
- 412, 369, 377, 441, 443, 390, 106, 332, 377, 390,
- 377, 400, 64, 590, 591, 323, 592, 589, 593, 649,
- 608, 362, 500, 399, 407, 620, 625, 636, 365, 354,
- 614, 524, 425, 359, 355, 423, 570, 578, 357, 406,
- 414, 394, 352, 403, 531, 433, 403, 653, 434, 385,
- 417, 411, 444, 310, 318, 501, 425, 668, 757, 380,
- 637, 684, 403, 609, 387, 87, 325, 638, 382, 403,
- 639, 403, 696, 503, 615, 403, 697, 384, 435, 425,
- 352, 352, 352, 700, 66, 699, 583, 702, 707, 704,
- 748, 721, 749, 584, 750, 358, 583, 722, 751, 682,
- 215, 613, 422, 436, 389, 447, 221, 257, 752, 403,
- 403, 506, 499, 403, 395, 685, 397, 426, 753, 392,
- 391, 647, 683, 403, 418, 754, 221, 723, 587, 724,
- 450, 568, 507, 648, 509, 327, 725, 353, 497, 610,
- 454, 622, 455, 461, 404, 510, 373, 732, 612, 247,
- 361, 664, 463, 405, 692, 641, 464, 465, 511, 343,
- 437, 335, 409, 396, 665, 293, 467, 468, 472, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, 0, 0, 0, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
- -2, -2, -2, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 767, 767, 767, 767, 767, 767, 767, 767, 767,
- 767, 767, 123, 123, 123, 123, 123, 123, 123, 123,
- 0, 129, 129, 129, 129, -94, -94, -94, 767, 767,
- 767, 767, 767, 767, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -94, -94, 129, 129,
- 767, 767, -24, -24, -24, -24, -24, 108, 108, 108,
- -24, 108, 145, 145, 145, 108, 108, 108, 100, 100,
- 0, 0, 0, 0, 0, 0, 0, 145, 0, 0,
- 0, 376, 0, 0, 0, 145, 260, 260, 221, 260,
- 260, 135, 0, 0, 425, 376, 0, 364, 376, 0,
- 0, 0, 0, 0, 0, 531, 0, 87, 637, 241,
- 425, 0, 0, 0, 0, 0, 0, 0, 425, 289,
- 289, 306, 0, 358, 0, 0, 0, 306, 241, 0,
- 0, 221
-];
-
-PHP.Parser.prototype.yydefault = [
- 3,32767,32767, 1,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767, 104, 96, 110, 95, 106,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 358, 358, 122, 122, 122, 122, 122, 122, 122, 122,
- 316,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 173, 173, 173,32767, 348, 348, 348, 348, 348, 348,
- 348,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767, 363,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767, 232, 233,
- 235, 236, 172, 125, 349, 362, 171, 199, 201, 250,
- 200, 177, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 176, 229, 228, 197, 313, 313, 316,
- 32767,32767,32767,32767,32767,32767,32767,32767, 198, 202,
- 204, 203, 219, 220, 217, 218, 175, 221, 222, 223,
- 224, 157, 157, 157, 357, 357,32767, 357,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767, 158,32767, 211, 212, 276, 276, 117, 117,
- 117, 117, 117,32767,32767,32767,32767, 284,32767,32767,
- 32767,32767,32767, 286,32767,32767, 206, 207, 205,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767, 285,32767,
- 32767,32767,32767,32767,32767,32767,32767, 334, 321, 272,
- 32767,32767,32767, 265,32767, 107, 109,32767,32767,32767,
- 32767, 302, 339,32767,32767,32767, 17,32767,32767,32767,
- 370, 334,32767,32767, 19,32767,32767,32767,32767, 227,
- 32767, 338, 332,32767,32767,32767,32767,32767,32767, 63,
- 32767,32767,32767,32767,32767, 63, 281, 63,32767, 63,
- 32767, 315, 287,32767, 63, 74,32767, 72,32767,32767,
- 76,32767, 63, 93, 93, 254, 315, 54, 63, 254,
- 63,32767,32767,32767,32767, 4,32767,32767,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767,32767, 267,32767, 323,32767, 337, 336, 324,32767,
- 265,32767, 215, 194, 266,32767, 196,32767,32767, 270,
- 273,32767,32767,32767, 134,32767, 268, 180,32767,32767,
- 32767,32767, 365,32767,32767, 174,32767,32767,32767, 130,
- 32767, 61, 332,32767,32767, 355,32767,32767, 332, 269,
- 208, 209, 210,32767, 121,32767, 310,32767,32767,32767,
- 32767,32767,32767, 327,32767, 333,32767,32767,32767,32767,
- 111,32767, 302,32767,32767,32767, 75,32767,32767, 178,
- 126,32767,32767, 364,32767,32767,32767, 320,32767,32767,
- 32767,32767,32767, 62,32767,32767, 77,32767,32767,32767,
- 32767, 332,32767,32767,32767, 115,32767, 169,32767,32767,
- 32767,32767,32767,32767,32767,32767,32767,32767,32767,32767,
- 32767, 332,32767,32767,32767,32767,32767,32767,32767, 4,
- 32767, 151,32767,32767,32767,32767,32767,32767,32767, 25,
- 25, 3, 137, 3, 137, 25, 101, 25, 25, 137,
- 93, 93, 25, 25, 25, 144, 25, 25, 25, 25,
- 25, 25, 25, 25
-];
-
-PHP.Parser.prototype.yygoto = [
- 141, 141, 173, 173, 173, 173, 173, 173, 173, 173,
- 141, 173, 142, 143, 144, 148, 153, 155, 181, 175,
- 172, 172, 172, 172, 174, 174, 174, 174, 174, 174,
- 174, 168, 169, 170, 171, 179, 757, 758, 392, 760,
- 781, 782, 783, 784, 785, 786, 787, 789, 725, 145,
- 146, 147, 149, 150, 151, 152, 154, 177, 178, 180,
- 196, 208, 209, 210, 211, 212, 213, 214, 215, 217,
- 218, 219, 220, 244, 245, 266, 267, 268, 430, 431,
- 432, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 191, 192, 156, 157, 158, 159, 176, 160, 194, 161,
- 162, 163, 164, 195, 165, 193, 139, 166, 167, 452,
- 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
- 453, 453, 453, 453, 453, 453, 453, 453, 453, 453,
- 453, 551, 551, 551, 464, 491, 394, 394, 394, 394,
- 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
- 394, 394, 394, 394, 407, 552, 552, 552, 810, 810,
- 662, 662, 662, 662, 662, 594, 283, 595, 510, 399,
- 399, 567, 679, 632, 849, 850, 863, 660, 714, 426,
- 222, 622, 622, 622, 622, 223, 617, 623, 494, 395,
- 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
- 395, 395, 395, 395, 395, 395, 395, 465, 472, 514,
- 904, 398, 398, 425, 425, 459, 425, 419, 322, 421,
- 421, 393, 396, 412, 422, 428, 460, 463, 473, 481,
- 501, 5, 476, 284, 327, 1, 15, 2, 6, 7,
- 550, 550, 550, 8, 9, 10, 668, 16, 11, 17,
- 12, 18, 13, 19, 14, 704, 328, 881, 881, 643,
- 628, 626, 626, 624, 626, 526, 401, 652, 647, 847,
- 847, 847, 847, 847, 847, 847, 847, 847, 847, 847,
- 437, 438, 441, 447, 477, 479, 497, 290, 910, 910,
- 400, 400, 486, 880, 880, 263, 913, 910, 303, 255,
- 723, 306, 822, 821, 306, 896, 896, 896, 861, 304,
- 323, 410, 913, 913, 897, 316, 420, 769, 658, 559,
- 879, 671, 536, 324, 466, 565, 311, 311, 311, 801,
- 241, 676, 496, 439, 440, 442, 444, 448, 475, 631,
- 858, 311, 285, 286, 603, 495, 712, 0, 406, 321,
- 0, 0, 0, 314, 0, 0, 429, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 411
-];
-
-PHP.Parser.prototype.yygcheck = [
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 6, 6, 6, 21, 21, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 71, 7, 7, 7, 35, 35,
- 35, 35, 35, 35, 35, 29, 44, 29, 35, 86,
- 86, 12, 12, 12, 12, 12, 12, 12, 12, 75,
- 40, 35, 35, 35, 35, 40, 35, 35, 35, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 36, 36, 36,
- 104, 82, 82, 28, 28, 28, 28, 28, 28, 28,
- 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
- 28, 13, 42, 42, 42, 2, 13, 2, 13, 13,
- 5, 5, 5, 13, 13, 13, 54, 13, 13, 13,
- 13, 13, 13, 13, 13, 67, 67, 83, 83, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 52, 52, 52, 52, 52, 52, 52, 4, 105, 105,
- 89, 89, 94, 84, 84, 92, 105, 105, 26, 92,
- 71, 4, 91, 91, 4, 84, 84, 84, 97, 30,
- 70, 30, 105, 105, 102, 27, 30, 72, 50, 10,
- 84, 55, 46, 9, 30, 11, 90, 90, 90, 80,
- 30, 56, 30, 85, 85, 85, 85, 85, 85, 43,
- 96, 90, 44, 44, 34, 77, 69, -1, 4, 90,
- -1, -1, -1, 4, -1, -1, 4, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 71
-];
-
-PHP.Parser.prototype.yygbase = [
- 0, 0, -286, 0, 10, 239, 130, 154, 0, -10,
- 25, -23, -29, -289, 0, -30, 0, 0, 0, 0,
- 0, 83, 0, 0, 0, 0, 245, 84, -11, 142,
- -28, 0, 0, 0, -13, -88, -42, 0, 0, 0,
- -344, 0, -38, -12, -188, 0, 23, 0, 0, 0,
- 66, 0, 247, 0, 205, 24, -18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 13, 0, -15,
- 85, 74, 70, 0, 0, 148, 0, -14, 0, 0,
- -6, 0, -35, 11, 47, 278, -77, 0, 0, 44,
- 68, 43, 38, 72, 94, 0, -16, 109, 0, 0,
- 0, 0, 87, 0, 170, 34, 0
-];
-
-PHP.Parser.prototype.yygdefault = [
- -32768, 362, 3, 546, 382, 570, 571, 572, 307, 305,
- 560, 566, 467, 4, 568, 140, 295, 575, 296, 500,
- 577, 414, 579, 580, 308, 309, 415, 315, 216, 593,
- 503, 313, 596, 357, 602, 301, 449, 383, 350, 461,
- 221, 423, 456, 630, 282, 638, 540, 646, 649, 450,
- 657, 352, 433, 434, 667, 672, 677, 680, 334, 325,
- 474, 684, 685, 256, 689, 511, 512, 703, 242, 711,
- 317, 724, 342, 788, 790, 397, 408, 484, 797, 326,
- 800, 384, 385, 386, 387, 435, 818, 815, 289, 866,
- 287, 443, 254, 853, 468, 356, 903, 862, 288, 388,
- 389, 302, 898, 341, 905, 912, 458
-];
-
-PHP.Parser.prototype.yylhs = [
- 0, 1, 2, 2, 4, 4, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 8, 8, 10, 10, 10,
- 10, 9, 9, 11, 13, 13, 14, 14, 14, 14,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 33, 33,
- 34, 27, 27, 30, 30, 6, 7, 7, 7, 37,
- 37, 37, 38, 38, 41, 41, 39, 39, 42, 42,
- 22, 22, 29, 29, 32, 32, 31, 31, 43, 23,
- 23, 23, 23, 44, 44, 45, 45, 46, 46, 20,
- 20, 16, 16, 47, 18, 18, 48, 17, 17, 19,
- 19, 36, 36, 49, 49, 50, 50, 51, 51, 51,
- 51, 52, 52, 53, 53, 54, 54, 24, 24, 55,
- 55, 55, 25, 25, 56, 56, 40, 40, 57, 57,
- 57, 57, 62, 62, 63, 63, 64, 64, 64, 64,
- 65, 66, 66, 61, 61, 58, 58, 60, 60, 68,
- 68, 67, 67, 67, 67, 67, 67, 59, 59, 69,
- 69, 26, 26, 21, 21, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 71, 77, 77, 79, 79, 80, 81,
- 81, 81, 81, 81, 81, 86, 86, 35, 35, 35,
- 72, 72, 87, 87, 82, 82, 88, 88, 88, 88,
- 88, 73, 73, 73, 76, 76, 76, 78, 78, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 12, 12, 12, 12, 12, 12, 74,
- 74, 74, 74, 94, 94, 96, 96, 95, 95, 97,
- 97, 28, 28, 28, 28, 99, 99, 98, 98, 98,
- 98, 98, 100, 100, 84, 84, 89, 89, 83, 83,
- 101, 101, 101, 101, 90, 90, 90, 90, 85, 85,
- 91, 91, 91, 70, 70, 102, 102, 102, 75, 75,
- 103, 103, 104, 104, 104, 104, 92, 92, 92, 92,
- 105, 105, 105, 105, 105, 105, 105, 106, 106, 106
-];
-
-PHP.Parser.prototype.yylen = [
- 1, 1, 2, 0, 1, 3, 1, 1, 1, 1,
- 3, 5, 4, 3, 3, 3, 1, 1, 3, 2,
- 4, 3, 1, 3, 2, 0, 1, 1, 1, 1,
- 3, 7, 10, 5, 7, 9, 5, 2, 3, 2,
- 3, 2, 3, 3, 3, 3, 1, 2, 5, 7,
- 8, 10, 5, 1, 5, 3, 3, 2, 1, 2,
- 8, 1, 3, 0, 1, 9, 7, 6, 5, 1,
- 2, 2, 0, 2, 0, 2, 0, 2, 1, 3,
- 1, 4, 1, 4, 1, 4, 1, 3, 3, 3,
- 4, 4, 5, 0, 2, 4, 3, 1, 1, 1,
- 4, 0, 2, 5, 0, 2, 6, 0, 2, 0,
- 3, 1, 0, 1, 3, 3, 5, 0, 1, 1,
- 1, 1, 0, 1, 3, 1, 2, 3, 1, 1,
- 2, 4, 3, 1, 1, 3, 2, 0, 3, 3,
- 8, 3, 1, 3, 0, 2, 4, 5, 4, 4,
- 3, 1, 1, 1, 3, 1, 1, 0, 1, 1,
- 2, 1, 1, 1, 1, 1, 1, 1, 3, 1,
- 3, 3, 1, 0, 1, 1, 6, 3, 4, 4,
- 1, 2, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 2, 2, 2, 2, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 2, 2, 2, 2, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 5, 4,
- 4, 4, 2, 2, 4, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 4, 3, 3,
- 2, 9, 10, 3, 0, 4, 1, 3, 2, 4,
- 6, 8, 4, 4, 4, 1, 1, 1, 2, 3,
- 1, 1, 1, 1, 1, 1, 0, 3, 3, 4,
- 4, 0, 2, 3, 0, 1, 1, 0, 3, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 3, 2, 1, 1, 3, 2, 2, 4, 3, 1,
- 3, 3, 3, 0, 2, 0, 1, 3, 1, 3,
- 1, 1, 1, 1, 1, 6, 4, 3, 6, 4,
- 4, 4, 1, 3, 1, 2, 1, 1, 4, 1,
- 3, 6, 4, 4, 4, 4, 1, 4, 0, 1,
- 1, 3, 1, 3, 1, 1, 4, 0, 0, 2,
- 3, 1, 3, 1, 4, 2, 2, 2, 1, 2,
- 1, 4, 3, 3, 3, 6, 3, 1, 1, 1
-];
-
-
-
-
-
-
-
-PHP.Parser.prototype.yyn0 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn1 = function ( attributes ) {
- this.yyval = this.Stmt_Namespace_postprocess(this.yyastk[ this.stackPos-(1-1) ]);
-};
-
-PHP.Parser.prototype.yyn2 = function ( attributes ) {
- if (Array.isArray(this.yyastk[ this.stackPos-(2-2) ])) { this.yyval = this.yyastk[ this.stackPos-(2-1) ].concat( this.yyastk[ this.stackPos-(2-2) ]); } else { this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; };
-};
-
-PHP.Parser.prototype.yyn3 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn4 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn5 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn6 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn7 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn8 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn9 = function ( attributes ) {
- this.yyval = this.Node_Stmt_HaltCompiler(attributes);
-};
-
-PHP.Parser.prototype.yyn10 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[ this.stackPos-(3-2) ], attributes), null, attributes);
-};
-
-PHP.Parser.prototype.yyn11 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Namespace(this.Node_Name(this.yyastk[ this.stackPos-(5-2) ], attributes), this.yyastk[ this.stackPos-(5-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn12 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Namespace(null, this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn13 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Use(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn14 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Const(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn15 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn16 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn17 = function ( attributes ) {
- this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(1-1) ], attributes), null, attributes);
-};
-
-PHP.Parser.prototype.yyn18 = function ( attributes ) {
- this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(3-1) ], attributes), this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn19 = function ( attributes ) {
- this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(2-2) ], attributes), null, attributes);
-};
-
-PHP.Parser.prototype.yyn20 = function ( attributes ) {
- this.yyval = this.Node_Stmt_UseUse(this.Node_Name(this.yyastk[ this.stackPos-(4-2) ], attributes), this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn21 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn22 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn23 = function ( attributes ) {
- this.yyval = this.Node_Const(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn24 = function ( attributes ) {
- if (Array.isArray(this.yyastk[ this.stackPos-(2-2) ])) { this.yyval = this.yyastk[ this.stackPos-(2-1) ].concat( this.yyastk[ this.stackPos-(2-2) ]); } else { this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ]; };
-};
-
-PHP.Parser.prototype.yyn25 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn26 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn27 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn28 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn29 = function ( attributes ) {
- throw new Error('__halt_compiler() can only be used from the outermost scope');
-};
-
-PHP.Parser.prototype.yyn30 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn31 = function ( attributes ) {
- this.yyval = this.Node_Stmt_If(this.yyastk[ this.stackPos-(7-3) ], {'stmts': Array.isArray(this.yyastk[ this.stackPos-(7-5) ]) ? this.yyastk[ this.stackPos-(7-5) ] : [this.yyastk[ this.stackPos-(7-5) ]], 'elseifs': this.yyastk[ this.stackPos-(7-6) ], 'Else': this.yyastk[ this.stackPos-(7-7) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn32 = function ( attributes ) {
- this.yyval = this.Node_Stmt_If(this.yyastk[ this.stackPos-(10-3) ], {'stmts': this.yyastk[ this.stackPos-(10-6) ], 'elseifs': this.yyastk[ this.stackPos-(10-7) ], 'else': this.yyastk[ this.stackPos-(10-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn33 = function ( attributes ) {
- this.yyval = this.Node_Stmt_While(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn34 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Do(this.yyastk[ this.stackPos-(7-5) ], Array.isArray(this.yyastk[ this.stackPos-(7-2) ]) ? this.yyastk[ this.stackPos-(7-2) ] : [this.yyastk[ this.stackPos-(7-2) ]], attributes);
-};
-
-PHP.Parser.prototype.yyn35 = function ( attributes ) {
- this.yyval = this.Node_Stmt_For({'init': this.yyastk[ this.stackPos-(9-3) ], 'cond': this.yyastk[ this.stackPos-(9-5) ], 'loop': this.yyastk[ this.stackPos-(9-7) ], 'stmts': this.yyastk[ this.stackPos-(9-9) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn36 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Switch(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn37 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Break(null, attributes);
-};
-
-PHP.Parser.prototype.yyn38 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Break(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn39 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Continue(null, attributes);
-};
-
-PHP.Parser.prototype.yyn40 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Continue(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn41 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Return(null, attributes);
-};
-
-PHP.Parser.prototype.yyn42 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Return(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn43 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Global(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn44 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Static(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn45 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Echo(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn46 = function ( attributes ) {
- this.yyval = this.Node_Stmt_InlineHTML(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn47 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn48 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Unset(this.yyastk[ this.stackPos-(5-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn49 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(7-3) ], this.yyastk[ this.stackPos-(7-5) ], {'keyVar': null, 'byRef': false, 'stmts': this.yyastk[ this.stackPos-(7-7) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn50 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(8-3) ], this.yyastk[ this.stackPos-(8-6) ], {'keyVar': null, 'byRef': true, 'stmts': this.yyastk[ this.stackPos-(8-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn51 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Foreach(this.yyastk[ this.stackPos-(10-3) ], this.yyastk[ this.stackPos-(10-8) ], {'keyVar': this.yyastk[ this.stackPos-(10-5) ], 'byRef': this.yyastk[ this.stackPos-(10-7) ], 'stmts': this.yyastk[ this.stackPos-(10-10) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn52 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Declare(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn53 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn54 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TryCatch(this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn55 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Throw(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn56 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Goto(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn57 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Label(this.yyastk[ this.stackPos-(2-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn58 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn59 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn60 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Catch(this.yyastk[ this.stackPos-(8-3) ], this.yyastk[ this.stackPos-(8-4) ].substring( 1 ), this.yyastk[ this.stackPos-(8-7) ], attributes);
-};
-
-PHP.Parser.prototype.yyn61 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn62 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn63 = function ( attributes ) {
- this.yyval = false;
-};
-
-PHP.Parser.prototype.yyn64 = function ( attributes ) {
- this.yyval = true;
-};
-
-PHP.Parser.prototype.yyn65 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Function(this.yyastk[ this.stackPos-(9-3) ], {'byRef': this.yyastk[ this.stackPos-(9-2) ], 'params': this.yyastk[ this.stackPos-(9-5) ], 'stmts': this.yyastk[ this.stackPos-(9-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn66 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Class(this.yyastk[ this.stackPos-(7-2) ], {'type': this.yyastk[ this.stackPos-(7-1) ], 'Extends': this.yyastk[ this.stackPos-(7-3) ], 'Implements': this.yyastk[ this.stackPos-(7-4) ], 'stmts': this.yyastk[ this.stackPos-(7-6) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn67 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Interface(this.yyastk[ this.stackPos-(6-2) ], {'Extends': this.yyastk[ this.stackPos-(6-3) ], 'stmts': this.yyastk[ this.stackPos-(6-5) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn68 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Trait(this.yyastk[ this.stackPos-(5-2) ], this.yyastk[ this.stackPos-(5-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn69 = function ( attributes ) {
- this.yyval = 0;
-};
-
-PHP.Parser.prototype.yyn70 = function ( attributes ) {
- this.yyval = this.MODIFIER_ABSTRACT;
-};
-
-PHP.Parser.prototype.yyn71 = function ( attributes ) {
- this.yyval = this.MODIFIER_FINAL;
-};
-
-PHP.Parser.prototype.yyn72 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn73 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-2) ];
-};
-
-PHP.Parser.prototype.yyn74 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn75 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-2) ];
-};
-
-PHP.Parser.prototype.yyn76 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn77 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-2) ];
-};
-
-PHP.Parser.prototype.yyn78 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn79 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn80 = function ( attributes ) {
- this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn81 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn82 = function ( attributes ) {
- this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn83 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn84 = function ( attributes ) {
- this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn85 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn86 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn87 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn88 = function ( attributes ) {
- this.yyval = this.Node_Stmt_DeclareDeclare(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn89 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn90 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-3) ];
-};
-
-PHP.Parser.prototype.yyn91 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn92 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(5-3) ];
-};
-
-PHP.Parser.prototype.yyn93 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn94 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn95 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Case(this.yyastk[ this.stackPos-(4-2) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn96 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Case(null, this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn97 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn98 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn99 = function ( attributes ) {
- this.yyval = Array.isArray(this.yyastk[ this.stackPos-(1-1) ]) ? this.yyastk[ this.stackPos-(1-1) ] : [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn100 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-2) ];
-};
-
-PHP.Parser.prototype.yyn101 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn102 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn103 = function ( attributes ) {
- this.yyval = this.Node_Stmt_ElseIf(this.yyastk[ this.stackPos-(5-3) ], Array.isArray(this.yyastk[ this.stackPos-(5-5) ]) ? this.yyastk[ this.stackPos-(5-5) ] : [this.yyastk[ this.stackPos-(5-5) ]], attributes);
-};
-
-PHP.Parser.prototype.yyn104 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn105 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn106 = function ( attributes ) {
- this.yyval = this.Node_Stmt_ElseIf(this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-6) ], attributes);
-};
-
-PHP.Parser.prototype.yyn107 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn108 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Else(Array.isArray(this.yyastk[ this.stackPos-(2-2) ]) ? this.yyastk[ this.stackPos-(2-2) ] : [this.yyastk[ this.stackPos-(2-2) ]], attributes);
-};
-
-PHP.Parser.prototype.yyn109 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn110 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Else(this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn111 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn112 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn113 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn114 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn115 = function ( attributes ) {
- this.yyval = this.Node_Param(this.yyastk[ this.stackPos-(3-3) ].substring( 1 ), null, this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn116 = function ( attributes ) {
- this.yyval = this.Node_Param(this.yyastk[ this.stackPos-(5-3) ].substring( 1 ), this.yyastk[ this.stackPos-(5-5) ], this.yyastk[ this.stackPos-(5-1) ], this.yyastk[ this.stackPos-(5-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn117 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn118 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn119 = function ( attributes ) {
- this.yyval = 'array';
-};
-
-PHP.Parser.prototype.yyn120 = function ( attributes ) {
- this.yyval = 'callable';
-};
-
-PHP.Parser.prototype.yyn121 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn122 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn123 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn124 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn125 = function ( attributes ) {
- this.yyval = this.Node_Arg(this.yyastk[ this.stackPos-(1-1) ], false, attributes);
-};
-
-PHP.Parser.prototype.yyn126 = function ( attributes ) {
- this.yyval = this.Node_Arg(this.yyastk[ this.stackPos-(2-2) ], true, attributes);
-};
-
-PHP.Parser.prototype.yyn127 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn128 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn129 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
-};
-
-PHP.Parser.prototype.yyn130 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn131 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn132 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn133 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn134 = function ( attributes ) {
- this.yyval = this.Node_Stmt_StaticVar(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), null, attributes);
-};
-
-PHP.Parser.prototype.yyn135 = function ( attributes ) {
- this.yyval = this.Node_Stmt_StaticVar(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn136 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn137 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn138 = function ( attributes ) {
- this.yyval = this.Node_Stmt_Property(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn139 = function ( attributes ) {
- this.yyval = this.Node_Stmt_ClassConst(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn140 = function ( attributes ) {
- this.yyval = this.Node_Stmt_ClassMethod(this.yyastk[ this.stackPos-(8-4) ], {'type': this.yyastk[ this.stackPos-(8-1) ], 'byRef': this.yyastk[ this.stackPos-(8-3) ], 'params': this.yyastk[ this.stackPos-(8-6) ], 'stmts': this.yyastk[ this.stackPos-(8-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn141 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUse(this.yyastk[ this.stackPos-(3-2) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn142 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn143 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn144 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn145 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn146 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUseAdaptation_Precedence(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn147 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(5-1) ][0], this.yyastk[ this.stackPos-(5-1) ][1], this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn148 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], this.yyastk[ this.stackPos-(4-3) ], null, attributes);
-};
-
-PHP.Parser.prototype.yyn149 = function ( attributes ) {
- this.yyval = this.Node_Stmt_TraitUseAdaptation_Alias(this.yyastk[ this.stackPos-(4-1) ][0], this.yyastk[ this.stackPos-(4-1) ][1], null, this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn150 = function ( attributes ) {
- this.yyval = array(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ]);
-};
-
-PHP.Parser.prototype.yyn151 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn152 = function ( attributes ) {
- this.yyval = array(null, this.yyastk[ this.stackPos-(1-1) ]);
-};
-
-PHP.Parser.prototype.yyn153 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn154 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn155 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn156 = function ( attributes ) {
- this.yyval = this.MODIFIER_PUBLIC;
-};
-
-PHP.Parser.prototype.yyn157 = function ( attributes ) {
- this.yyval = this.MODIFIER_PUBLIC;
-};
-
-PHP.Parser.prototype.yyn158 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn159 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn160 = function ( attributes ) {
- this.Stmt_Class_verifyModifier(this.yyastk[ this.stackPos-(2-1) ], this.yyastk[ this.stackPos-(2-2) ]); this.yyval = this.yyastk[ this.stackPos-(2-1) ] | this.yyastk[ this.stackPos-(2-2) ];
-};
-
-PHP.Parser.prototype.yyn161 = function ( attributes ) {
- this.yyval = this.MODIFIER_PUBLIC;
-};
-
-PHP.Parser.prototype.yyn162 = function ( attributes ) {
- this.yyval = this.MODIFIER_PROTECTED;
-};
-
-PHP.Parser.prototype.yyn163 = function ( attributes ) {
- this.yyval = this.MODIFIER_PRIVATE;
-};
-
-PHP.Parser.prototype.yyn164 = function ( attributes ) {
- this.yyval = this.MODIFIER_STATIC;
-};
-
-PHP.Parser.prototype.yyn165 = function ( attributes ) {
- this.yyval = this.MODIFIER_ABSTRACT;
-};
-
-PHP.Parser.prototype.yyn166 = function ( attributes ) {
- this.yyval = this.MODIFIER_FINAL;
-};
-
-PHP.Parser.prototype.yyn167 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn168 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn169 = function ( attributes ) {
- this.yyval = this.Node_Stmt_PropertyProperty(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), null, attributes);
-};
-
-PHP.Parser.prototype.yyn170 = function ( attributes ) {
- this.yyval = this.Node_Stmt_PropertyProperty(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn171 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn172 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn173 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn174 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn175 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn176 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignList(this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-6) ], attributes);
-};
-
-PHP.Parser.prototype.yyn177 = function ( attributes ) {
- this.yyval = this.Node_Expr_Assign(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn178 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignRef(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn179 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignRef(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn180 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn181 = function ( attributes ) {
- this.yyval = this.Node_Expr_Clone(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn182 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignPlus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn183 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignMinus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn184 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignMul(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn185 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignDiv(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn186 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignConcat(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn187 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignMod(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn188 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignBitwiseAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn189 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignBitwiseOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn190 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignBitwiseXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn191 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignShiftLeft(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn192 = function ( attributes ) {
- this.yyval = this.Node_Expr_AssignShiftRight(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn193 = function ( attributes ) {
- this.yyval = this.Node_Expr_PostInc(this.yyastk[ this.stackPos-(2-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn194 = function ( attributes ) {
- this.yyval = this.Node_Expr_PreInc(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn195 = function ( attributes ) {
- this.yyval = this.Node_Expr_PostDec(this.yyastk[ this.stackPos-(2-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn196 = function ( attributes ) {
- this.yyval = this.Node_Expr_PreDec(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn197 = function ( attributes ) {
- this.yyval = this.Node_Expr_BooleanOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn198 = function ( attributes ) {
- this.yyval = this.Node_Expr_BooleanAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn199 = function ( attributes ) {
- this.yyval = this.Node_Expr_LogicalOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn200 = function ( attributes ) {
- this.yyval = this.Node_Expr_LogicalAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn201 = function ( attributes ) {
- this.yyval = this.Node_Expr_LogicalXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn202 = function ( attributes ) {
- this.yyval = this.Node_Expr_BitwiseOr(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn203 = function ( attributes ) {
- this.yyval = this.Node_Expr_BitwiseAnd(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn204 = function ( attributes ) {
- this.yyval = this.Node_Expr_BitwiseXor(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn205 = function ( attributes ) {
- this.yyval = this.Node_Expr_Concat(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn206 = function ( attributes ) {
- this.yyval = this.Node_Expr_Plus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn207 = function ( attributes ) {
- this.yyval = this.Node_Expr_Minus(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn208 = function ( attributes ) {
- this.yyval = this.Node_Expr_Mul(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn209 = function ( attributes ) {
- this.yyval = this.Node_Expr_Div(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn210 = function ( attributes ) {
- this.yyval = this.Node_Expr_Mod(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn211 = function ( attributes ) {
- this.yyval = this.Node_Expr_ShiftLeft(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn212 = function ( attributes ) {
- this.yyval = this.Node_Expr_ShiftRight(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn213 = function ( attributes ) {
- this.yyval = this.Node_Expr_UnaryPlus(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn214 = function ( attributes ) {
- this.yyval = this.Node_Expr_UnaryMinus(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn215 = function ( attributes ) {
- this.yyval = this.Node_Expr_BooleanNot(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn216 = function ( attributes ) {
- this.yyval = this.Node_Expr_BitwiseNot(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn217 = function ( attributes ) {
- this.yyval = this.Node_Expr_Identical(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn218 = function ( attributes ) {
- this.yyval = this.Node_Expr_NotIdentical(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn219 = function ( attributes ) {
- this.yyval = this.Node_Expr_Equal(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn220 = function ( attributes ) {
- this.yyval = this.Node_Expr_NotEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn221 = function ( attributes ) {
- this.yyval = this.Node_Expr_Smaller(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn222 = function ( attributes ) {
- this.yyval = this.Node_Expr_SmallerOrEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn223 = function ( attributes ) {
- this.yyval = this.Node_Expr_Greater(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn224 = function ( attributes ) {
- this.yyval = this.Node_Expr_GreaterOrEqual(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn225 = function ( attributes ) {
- this.yyval = this.Node_Expr_Instanceof(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn226 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn227 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn228 = function ( attributes ) {
- this.yyval = this.Node_Expr_Ternary(this.yyastk[ this.stackPos-(5-1) ], this.yyastk[ this.stackPos-(5-3) ], this.yyastk[ this.stackPos-(5-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn229 = function ( attributes ) {
- this.yyval = this.Node_Expr_Ternary(this.yyastk[ this.stackPos-(4-1) ], null, this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn230 = function ( attributes ) {
- this.yyval = this.Node_Expr_Isset(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn231 = function ( attributes ) {
- this.yyval = this.Node_Expr_Empty(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn232 = function ( attributes ) {
- this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_Include", attributes);
-};
-
-PHP.Parser.prototype.yyn233 = function ( attributes ) {
- this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_IncludeOnce", attributes);
-};
-
-PHP.Parser.prototype.yyn234 = function ( attributes ) {
- this.yyval = this.Node_Expr_Eval(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn235 = function ( attributes ) {
- this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_Require", attributes);
-};
-
-PHP.Parser.prototype.yyn236 = function ( attributes ) {
- this.yyval = this.Node_Expr_Include(this.yyastk[ this.stackPos-(2-2) ], "Node_Expr_RequireOnce", attributes);
-};
-
-PHP.Parser.prototype.yyn237 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Int(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn238 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Double(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn239 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_String(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn240 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Array(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn241 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Object(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn242 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Bool(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn243 = function ( attributes ) {
- this.yyval = this.Node_Expr_Cast_Unset(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn244 = function ( attributes ) {
- this.yyval = this.Node_Expr_Exit(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn245 = function ( attributes ) {
- this.yyval = this.Node_Expr_ErrorSuppress(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn246 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn247 = function ( attributes ) {
- this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn248 = function ( attributes ) {
- this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn249 = function ( attributes ) {
- this.yyval = this.Node_Expr_ShellExec(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn250 = function ( attributes ) {
- this.yyval = this.Node_Expr_Print(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn251 = function ( attributes ) {
- this.yyval = this.Node_Expr_Closure({'static': false, 'byRef': this.yyastk[ this.stackPos-(9-2) ], 'params': this.yyastk[ this.stackPos-(9-4) ], 'uses': this.yyastk[ this.stackPos-(9-6) ], 'stmts': this.yyastk[ this.stackPos-(9-8) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn252 = function ( attributes ) {
- this.yyval = this.Node_Expr_Closure({'static': true, 'byRef': this.yyastk[ this.stackPos-(10-3) ], 'params': this.yyastk[ this.stackPos-(10-5) ], 'uses': this.yyastk[ this.stackPos-(10-7) ], 'stmts': this.yyastk[ this.stackPos-(10-9) ]}, attributes);
-};
-
-PHP.Parser.prototype.yyn253 = function ( attributes ) {
- this.yyval = this.Node_Expr_New(this.yyastk[ this.stackPos-(3-2) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn254 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn255 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-3) ];
-};
-
-PHP.Parser.prototype.yyn256 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn257 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn258 = function ( attributes ) {
- this.yyval = this.Node_Expr_ClosureUse(this.yyastk[ this.stackPos-(2-2) ].substring( 1 ), this.yyastk[ this.stackPos-(2-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn259 = function ( attributes ) {
- this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn260 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn261 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(8-1) ], this.yyastk[ this.stackPos-(8-4) ], this.yyastk[ this.stackPos-(8-7) ], attributes);
-};
-
-PHP.Parser.prototype.yyn262 = function ( attributes ) {
-
- if (this.yyastk[ this.stackPos-(4-1) ].type === "Node_Expr_StaticPropertyFetch") {
- this.yyval = this.Node_Expr_StaticCall(this.yyastk[ this.stackPos-(4-1) ].Class, this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-1) ].name, attributes), this.yyastk[ this.stackPos-(4-3) ], attributes);
- } else if (this.yyastk[ this.stackPos-(4-1) ].type === "Node_Expr_ArrayDimFetch") {
- var tmp = this.yyastk[ this.stackPos-(4-1) ];
- while (tmp.variable.type === "Node_Expr_ArrayDimFetch") {
- tmp = tmp.variable;
- }
-
- this.yyval = this.Node_Expr_StaticCall(tmp.variable.Class, this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
- tmp.variable = this.Node_Expr_Variable(tmp.variable.name, attributes);
- } else {
- throw new Exception;
- }
-
-};
-
-PHP.Parser.prototype.yyn263 = function ( attributes ) {
- this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn264 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn265 = function ( attributes ) {
- this.yyval = this.Node_Name('static', attributes);
-};
-
-PHP.Parser.prototype.yyn266 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn267 = function ( attributes ) {
- this.yyval = this.Node_Name(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn268 = function ( attributes ) {
- this.yyval = this.Node_Name_FullyQualified(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn269 = function ( attributes ) {
- this.yyval = this.Node_Name_Relative(this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn270 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn271 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn272 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn273 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn274 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn275 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn276 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn277 = function ( attributes ) {
- this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn278 = function ( attributes ) {
- this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn279 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn280 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn281 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn282 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn283 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn284 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn285 = function ( attributes ) {
- this.yyval = [this.Scalar_String_parseEscapeSequences(this.yyastk[ this.stackPos-(1-1) ], '`')];
-};
-
-PHP.Parser.prototype.yyn286 = function ( attributes ) {
- ; this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn287 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn288 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn289 = function ( attributes ) {
- this.yyval = this.Node_Scalar_LNumber(this.Scalar_LNumber_parse(this.yyastk[ this.stackPos-(1-1) ]), attributes);
-};
-
-PHP.Parser.prototype.yyn290 = function ( attributes ) {
- this.yyval = this.Node_Scalar_DNumber(this.Scalar_DNumber_parse(this.yyastk[ this.stackPos-(1-1) ]), attributes);
-};
-
-PHP.Parser.prototype.yyn291 = function ( attributes ) {
- this.yyval = this.Scalar_String_create(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn292 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_LineConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn293 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_FileConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn294 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_DirConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn295 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_ClassConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn296 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_TraitConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn297 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_MethodConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn298 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_FuncConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn299 = function ( attributes ) {
- this.yyval = {type: "Node_Scalar_NSConst", attributes: attributes};
-};
-
-PHP.Parser.prototype.yyn300 = function ( attributes ) {
- this.yyval = this.Node_Scalar_String(this.Scalar_String_parseDocString(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-2) ]), attributes);
-};
-
-PHP.Parser.prototype.yyn301 = function ( attributes ) {
- this.yyval = this.Node_Scalar_String('', attributes);
-};
-
-PHP.Parser.prototype.yyn302 = function ( attributes ) {
- this.yyval = this.Node_Expr_ConstFetch(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn303 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn304 = function ( attributes ) {
- this.yyval = this.Node_Expr_ClassConstFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn305 = function ( attributes ) {
- this.yyval = this.Node_Expr_UnaryPlus(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn306 = function ( attributes ) {
- this.yyval = this.Node_Expr_UnaryMinus(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn307 = function ( attributes ) {
- this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn308 = function ( attributes ) {
- this.yyval = this.Node_Expr_Array(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn309 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn310 = function ( attributes ) {
- this.yyval = this.Node_Expr_ClassConstFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn311 = function ( attributes ) {
- ; this.yyval = this.Node_Scalar_Encapsed(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn312 = function ( attributes ) {
- ; this.yyval = this.Node_Scalar_Encapsed(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn313 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn314 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn315 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn316 = function () {
- this.yyval = this.yyastk[ this.stackPos ];
-};
-
-PHP.Parser.prototype.yyn317 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn318 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn319 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(3-3) ], this.yyastk[ this.stackPos-(3-1) ], false, attributes);
-};
-
-PHP.Parser.prototype.yyn320 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(1-1) ], null, false, attributes);
-};
-
-PHP.Parser.prototype.yyn321 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn322 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn323 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn324 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn325 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(6-2) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn326 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn327 = function ( attributes ) {
- this.yyval = this.Node_Expr_PropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn328 = function ( attributes ) {
- this.yyval = this.Node_Expr_MethodCall(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-3) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn329 = function ( attributes ) {
- this.yyval = this.Node_Expr_FuncCall(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn330 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn331 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn332 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn333 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn334 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn335 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(2-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn336 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn337 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn338 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn339 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn340 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(3-1) ], this.yyastk[ this.stackPos-(3-3) ].substring( 1 ), attributes);
-};
-
-PHP.Parser.prototype.yyn341 = function ( attributes ) {
- this.yyval = this.Node_Expr_StaticPropertyFetch(this.yyastk[ this.stackPos-(6-1) ], this.yyastk[ this.stackPos-(6-5) ], attributes);
-};
-
-PHP.Parser.prototype.yyn342 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn343 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn344 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn345 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.yyastk[ this.stackPos-(4-1) ], this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn346 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
-};
-
-PHP.Parser.prototype.yyn347 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn348 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn349 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn350 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn351 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn352 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn353 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn354 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn355 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(1-1) ];
-};
-
-PHP.Parser.prototype.yyn356 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(4-3) ];
-};
-
-PHP.Parser.prototype.yyn357 = function ( attributes ) {
- this.yyval = null;
-};
-
-PHP.Parser.prototype.yyn358 = function ( attributes ) {
- this.yyval = [];
-};
-
-PHP.Parser.prototype.yyn359 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn360 = function ( attributes ) {
- this.yyastk[ this.stackPos-(3-1) ].push( this.yyastk[ this.stackPos-(3-3) ] ); this.yyval = this.yyastk[ this.stackPos-(3-1) ];
-};
-
-PHP.Parser.prototype.yyn361 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn362 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(3-3) ], this.yyastk[ this.stackPos-(3-1) ], false, attributes);
-};
-
-PHP.Parser.prototype.yyn363 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(1-1) ], null, false, attributes);
-};
-
-PHP.Parser.prototype.yyn364 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(4-4) ], this.yyastk[ this.stackPos-(4-1) ], true, attributes);
-};
-
-PHP.Parser.prototype.yyn365 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayItem(this.yyastk[ this.stackPos-(2-2) ], null, true, attributes);
-};
-
-PHP.Parser.prototype.yyn366 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn367 = function ( attributes ) {
- this.yyastk[ this.stackPos-(2-1) ].push( this.yyastk[ this.stackPos-(2-2) ] ); this.yyval = this.yyastk[ this.stackPos-(2-1) ];
-};
-
-PHP.Parser.prototype.yyn368 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(1-1) ]];
-};
-
-PHP.Parser.prototype.yyn369 = function ( attributes ) {
- this.yyval = [this.yyastk[ this.stackPos-(2-1) ], this.yyastk[ this.stackPos-(2-2) ]];
-};
-
-PHP.Parser.prototype.yyn370 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
-};
-
-PHP.Parser.prototype.yyn371 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(4-1) ].substring( 1 ), attributes), this.yyastk[ this.stackPos-(4-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn372 = function ( attributes ) {
- this.yyval = this.Node_Expr_PropertyFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-1) ].substring( 1 ), attributes), this.yyastk[ this.stackPos-(3-3) ], attributes);
-};
-
-PHP.Parser.prototype.yyn373 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn374 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(3-2) ], attributes);
-};
-
-PHP.Parser.prototype.yyn375 = function ( attributes ) {
- this.yyval = this.Node_Expr_ArrayDimFetch(this.Node_Expr_Variable(this.yyastk[ this.stackPos-(6-2) ], attributes), this.yyastk[ this.stackPos-(6-4) ], attributes);
-};
-
-PHP.Parser.prototype.yyn376 = function ( attributes ) {
- this.yyval = this.yyastk[ this.stackPos-(3-2) ];
-};
-
-PHP.Parser.prototype.yyn377 = function ( attributes ) {
- this.yyval = this.Node_Scalar_String(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn378 = function ( attributes ) {
- this.yyval = this.Node_Scalar_String(this.yyastk[ this.stackPos-(1-1) ], attributes);
-};
-
-PHP.Parser.prototype.yyn379 = function ( attributes ) {
- this.yyval = this.Node_Expr_Variable(this.yyastk[ this.stackPos-(1-1) ].substring( 1 ), attributes);
-};
-
-
-PHP.Parser.prototype.Stmt_Namespace_postprocess = function( a ) {
- return a;
-};
-
-
-PHP.Parser.prototype.Node_Stmt_Echo = function() {
- return {
- type: "Node_Stmt_Echo",
- exprs: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_If = function() {
- return {
- type: "Node_Stmt_If",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ].stmts,
- elseifs: arguments[ 1 ].elseifs,
- Else: arguments[ 1 ].Else || null,
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_For = function() {
-
- return {
- type: "Node_Stmt_For",
- init: arguments[ 0 ].init,
- cond: arguments[ 0 ].cond,
- loop: arguments[ 0 ].loop,
- stmts: arguments[ 0 ].stmts,
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Function = function() {
- return {
- type: "Node_Stmt_Function",
- name: arguments[ 0 ],
- byRef: arguments[ 1 ].byRef,
- params: arguments[ 1 ].params,
- stmts: arguments[ 1 ].stmts,
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Stmt_Class_verifyModifier = function() {
-
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Namespace = function() {
- return {
- type: "Node_Stmt_Namespace",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_Use = function() {
- return {
- type: "Node_Stmt_Use",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_UseUse = function() {
- return {
- type: "Node_Stmt_UseUse",
- name: arguments[ 0 ],
- as: arguments[1],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_TraitUseAdaptation_Precedence = function() {
- return {
- type: "Node_Stmt_TraitUseAdaptation_Precedence",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_TraitUseAdaptation_Alias = function() {
- return {
- type: "Node_Stmt_TraitUseAdaptation_Alias",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_Trait = function() {
- return {
- type: "Node_Stmt_Trait",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_TraitUse = function() {
- return {
- type: "Node_Stmt_TraitUse",
- name: arguments[ 0 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Stmt_Class = function() {
- return {
- type: "Node_Stmt_Class",
- name: arguments[ 0 ],
- Type: arguments[ 1 ].type,
- Extends: arguments[ 1 ].Extends,
- Implements: arguments[ 1 ].Implements,
- stmts: arguments[ 1 ].stmts,
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_ClassMethod = function() {
- return {
- type: "Node_Stmt_ClassMethod",
- name: arguments[ 0 ],
- Type: arguments[ 1 ].type,
- byRef: arguments[ 1 ].byRef,
- params: arguments[ 1 ].params,
- stmts: arguments[ 1 ].stmts,
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_ClassConst = function() {
- return {
- type: "Node_Stmt_ClassConst",
- consts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Interface = function() {
- return {
- type: "Node_Stmt_Interface",
- name: arguments[ 0 ],
- Extends: arguments[ 1 ].Extends,
- stmts: arguments[ 1 ].stmts,
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Throw = function() {
- return {
- type: "Node_Stmt_Throw",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Catch = function() {
- return {
- type: "Node_Stmt_Catch",
- Type: arguments[ 0 ],
- variable: arguments[ 1 ],
- stmts: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_TryCatch = function() {
- return {
- type: "Node_Stmt_TryCatch",
- stmts: arguments[ 0 ],
- catches: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_Foreach = function() {
- return {
- type: "Node_Stmt_Foreach",
- expr: arguments[ 0 ],
- valueVar: arguments[ 1 ],
- keyVar: arguments[ 2 ].keyVar,
- byRef: arguments[ 2 ].byRef,
- stmts: arguments[ 2 ].stmts,
- attributes: arguments[ 3 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_While = function() {
- return {
- type: "Node_Stmt_While",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Do = function() {
- return {
- type: "Node_Stmt_Do",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Break = function() {
- return {
- type: "Node_Stmt_Break",
- num: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Continue = function() {
- return {
- type: "Node_Stmt_Continue",
- num: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Return = function() {
- return {
- type: "Node_Stmt_Return",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Case = function() {
- return {
- type: "Node_Stmt_Case",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Switch = function() {
- return {
- type: "Node_Stmt_Switch",
- cond: arguments[ 0 ],
- cases: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Else = function() {
-
- return {
- type: "Node_Stmt_Else",
- stmts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_ElseIf = function() {
- return {
- type: "Node_Stmt_ElseIf",
- cond: arguments[ 0 ],
- stmts: arguments[ 1 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_InlineHTML = function() {
- return {
- type: "Node_Stmt_InlineHTML",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_StaticVar = function() {
- return {
- type: "Node_Stmt_StaticVar",
- name: arguments[ 0 ],
- def: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_Static = function() {
- return {
- type: "Node_Stmt_Static",
- vars: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Global = function() {
- return {
- type: "Node_Stmt_Global",
- vars: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_PropertyProperty = function() {
- return {
- type: "Node_Stmt_PropertyProperty",
- name: arguments[ 0 ],
- def: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Stmt_Property = function() {
- return {
- type: "Node_Stmt_Property",
- Type: arguments[ 0 ],
- props: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Stmt_Unset = function() {
- return {
- type: "Node_Stmt_Unset",
- variables: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Variable = function( a ) {
- return {
- type: "Node_Expr_Variable",
- name: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-};
-
-PHP.Parser.prototype.Node_Expr_FuncCall = function() {
-
- return {
- type: "Node_Expr_FuncCall",
- func: arguments[ 0 ],
- args: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_MethodCall = function() {
-
- return {
- type: "Node_Expr_MethodCall",
- variable: arguments[ 0 ],
- name: arguments[ 1 ],
- args: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_StaticCall = function() {
-
- return {
- type: "Node_Expr_StaticCall",
- Class: arguments[ 0 ],
- func: arguments[ 1 ],
- args: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Ternary = function() {
-
- return {
- type: "Node_Expr_Ternary",
- cond: arguments[ 0 ],
- If: arguments[ 1 ],
- Else: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignList = function() {
-
- return {
- type: "Node_Expr_AssignList",
- assignList: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Assign = function() {
-
- return {
- type: "Node_Expr_Assign",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignConcat = function() {
-
- return {
- type: "Node_Expr_AssignConcat",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignMinus = function() {
-
- return {
- type: "Node_Expr_AssignMinus",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignPlus = function() {
-
- return {
- type: "Node_Expr_AssignPlus",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignDiv = function() {
-
- return {
- type: "Node_Expr_AssignDiv",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignRef = function() {
-
- return {
- type: "Node_Expr_AssignRef",
- variable: arguments[ 0 ],
- refVar: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignMul = function() {
-
- return {
- type: "Node_Expr_AssignMul",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_AssignMod = function() {
-
- return {
- type: "Node_Expr_AssignMod",
- variable: arguments[ 0 ],
- expr: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Plus = function() {
-
- return {
- type: "Node_Expr_Plus",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Minus = function() {
-
- return {
- type: "Node_Expr_Minus",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Mul = function() {
-
- return {
- type: "Node_Expr_Mul",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Div = function() {
-
- return {
- type: "Node_Expr_Div",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Mod = function() {
-
- return {
- type: "Node_Expr_Mod",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Greater = function() {
-
- return {
- type: "Node_Expr_Greater",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Equal = function() {
-
- return {
- type: "Node_Expr_Equal",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_NotEqual = function() {
-
- return {
- type: "Node_Expr_NotEqual",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Identical = function() {
-
- return {
- type: "Node_Expr_Identical",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_NotIdentical = function() {
-
- return {
- type: "Node_Expr_NotIdentical",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_GreaterOrEqual = function() {
-
- return {
- type: "Node_Expr_GreaterOrEqual",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_SmallerOrEqual = function() {
-
- return {
- type: "Node_Expr_SmallerOrEqual",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Concat = function() {
-
- return {
- type: "Node_Expr_Concat",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Smaller = function() {
-
- return {
- type: "Node_Expr_Smaller",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PostInc = function() {
-
- return {
- type: "Node_Expr_PostInc",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PostDec = function() {
-
- return {
- type: "Node_Expr_PostDec",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PreInc = function() {
-
- return {
- type: "Node_Expr_PreInc",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PreDec = function() {
-
- return {
- type: "Node_Expr_PreDec",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Include = function() {
- return {
- expr: arguments[ 0 ],
- type: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-};
-
-PHP.Parser.prototype.Node_Expr_ArrayDimFetch = function() {
-
- return {
- type: "Node_Expr_ArrayDimFetch",
- variable: arguments[ 0 ],
- dim: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_StaticPropertyFetch = function() {
-
- return {
- type: "Node_Expr_StaticPropertyFetch",
- Class: arguments[ 0 ],
- name: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_ClassConstFetch = function() {
-
- return {
- type: "Node_Expr_ClassConstFetch",
- Class: arguments[ 0 ],
- name: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_StaticPropertyFetch = function() {
-
- return {
- type: "Node_Expr_StaticPropertyFetch",
- Class: arguments[ 0 ],
- name: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_ConstFetch = function() {
-
- return {
- type: "Node_Expr_ConstFetch",
- name: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_ArrayItem = function() {
-
- return {
- type: "Node_Expr_ArrayItem",
- value: arguments[ 0 ],
- key: arguments[ 1 ],
- byRef: arguments[ 2 ],
- attributes: arguments[ 3 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Array = function() {
-
- return {
- type: "Node_Expr_Array",
- items: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_PropertyFetch = function() {
-
- return {
- type: "Node_Expr_PropertyFetch",
- variable: arguments[ 0 ],
- name: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_New = function() {
-
- return {
- type: "Node_Expr_New",
- Class: arguments[ 0 ],
- args: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Print = function() {
- return {
- type: "Node_Expr_Print",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Exit = function() {
- return {
- type: "Node_Expr_Exit",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Cast_Bool = function() {
- return {
- type: "Node_Expr_Cast_Bool",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_Int = function() {
- return {
- type: "Node_Expr_Cast_Int",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_String = function() {
- return {
- type: "Node_Expr_Cast_String",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_Double = function() {
- return {
- type: "Node_Expr_Cast_Double",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_Array = function() {
- return {
- type: "Node_Expr_Cast_Array",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Cast_Object = function() {
- return {
- type: "Node_Expr_Cast_Object",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_ErrorSuppress = function() {
- return {
- type: "Node_Expr_ErrorSuppress",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_Isset = function() {
- return {
- type: "Node_Expr_Isset",
- variables: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-
-
-PHP.Parser.prototype.Node_Expr_UnaryMinus = function() {
- return {
- type: "Node_Expr_UnaryMinus",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_UnaryPlus = function() {
- return {
- type: "Node_Expr_UnaryPlus",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Empty = function() {
- return {
- type: "Node_Expr_Empty",
- variable: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BooleanOr = function() {
- return {
- type: "Node_Expr_BooleanOr",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_LogicalOr = function() {
- return {
- type: "Node_Expr_LogicalOr",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_LogicalAnd = function() {
- return {
- type: "Node_Expr_LogicalAnd",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Expr_LogicalXor = function() {
- return {
- type: "Node_Expr_LogicalXor",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BitwiseAnd = function() {
- return {
- type: "Node_Expr_BitwiseAnd",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BitwiseOr = function() {
- return {
- type: "Node_Expr_BitwiseOr",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BitwiseNot = function() {
- return {
- type: "Node_Expr_BitwiseNot",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BooleanNot = function() {
- return {
- type: "Node_Expr_BooleanNot",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_BooleanAnd = function() {
- return {
- type: "Node_Expr_BooleanAnd",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Instanceof = function() {
-
- return {
- type: "Node_Expr_Instanceof",
- left: arguments[ 0 ],
- right: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Expr_Clone = function() {
-
- return {
- type: "Node_Expr_Clone",
- expr: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-
-PHP.Parser.prototype.Scalar_LNumber_parse = function( a ) {
-
- return a;
-};
-
-PHP.Parser.prototype.Scalar_DNumber_parse = function( a ) {
-
- return a;
-};
-
-PHP.Parser.prototype.Scalar_String_parseDocString = function() {
-
- return '"' + arguments[ 1 ].replace(/([^"\\]*(?:\\.[^"\\]*)*)"/g, '$1\\"') + '"';
-};
-
-
-PHP.Parser.prototype.Node_Scalar_String = function( ) {
-
- return {
- type: "Node_Scalar_String",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Scalar_String_create = function( ) {
- return {
- type: "Node_Scalar_String",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Scalar_LNumber = function() {
-
- return {
- type: "Node_Scalar_LNumber",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Scalar_DNumber = function() {
-
- return {
- type: "Node_Scalar_DNumber",
- value: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-
-PHP.Parser.prototype.Node_Scalar_Encapsed = function() {
-
- return {
- type: "Node_Scalar_Encapsed",
- parts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Name = function() {
-
- return {
- type: "Node_Name",
- parts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Name_FullyQualified = function() {
-
- return {
- type: "Node_Name_FullyQualified",
- parts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Name_Relative = function() {
-
- return {
- type: "Node_Name_Relative",
- parts: arguments[ 0 ],
- attributes: arguments[ 1 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Param = function() {
-
- return {
- type: "Node_Param",
- name: arguments[ 0 ],
- def: arguments[ 1 ],
- Type: arguments[ 2 ],
- byRef: arguments[ 3 ],
- attributes: arguments[ 4 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Arg = function() {
-
- return {
- type: "Node_Name",
- value: arguments[ 0 ],
- byRef: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-PHP.Parser.prototype.Node_Const = function() {
-
- return {
- type: "Node_Const",
- name: arguments[ 0 ],
- value: arguments[ 1 ],
- attributes: arguments[ 2 ]
- };
-
-};
-
-
-exports.PHP = PHP;
-});
diff --git a/js/vendor/ace/src-noconflict/worker-xquery.js b/js/vendor/ace/src-noconflict/worker-xquery.js
deleted file mode 100644
index 9c282bf..0000000
--- a/js/vendor/ace/src-noconflict/worker-xquery.js
+++ /dev/null
@@ -1,21843 +0,0 @@
-"no use strict";
-;(function(window) {
-if (typeof window.window != "undefined" && window.document) {
- return;
-}
-
-window.console = function() {
- var msgs = Array.prototype.slice.call(arguments, 0);
- postMessage({type: "log", data: msgs});
-};
-window.console.error =
-window.console.warn =
-window.console.log =
-window.console.trace = window.console;
-
-window.window = window;
-window.ace = window;
-
-window.normalizeModule = function(parentId, moduleName) {
- if (moduleName.indexOf("!") !== -1) {
- var chunks = moduleName.split("!");
- return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]);
- }
- if (moduleName.charAt(0) == ".") {
- var base = parentId.split("/").slice(0, -1).join("/");
- moduleName = base + "/" + moduleName;
-
- while(moduleName.indexOf(".") !== -1 && previous != moduleName) {
- var previous = moduleName;
- moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, "");
- }
- }
-
- return moduleName;
-};
-
-window.require = function(parentId, id) {
- if (!id) {
- id = parentId
- parentId = null;
- }
- if (!id.charAt)
- throw new Error("worker.js require() accepts only (parentId, id) as arguments");
-
- id = normalizeModule(parentId, id);
-
- var module = require.modules[id];
- if (module) {
- if (!module.initialized) {
- module.initialized = true;
- module.exports = module.factory().exports;
- }
- return module.exports;
- }
-
- var chunks = id.split("/");
- chunks[0] = require.tlns[chunks[0]] || chunks[0];
- var path = chunks.join("/") + ".js";
-
- require.id = id;
- importScripts(path);
- return require(parentId, id);
-};
-
-require.modules = {};
-require.tlns = {};
-
-window.define = function(id, deps, factory) {
- if (arguments.length == 2) {
- factory = deps;
- if (typeof id != "string") {
- deps = id;
- id = require.id;
- }
- } else if (arguments.length == 1) {
- factory = id;
- id = require.id;
- }
-
- if (id.indexOf("text!") === 0)
- return;
-
- var req = function(deps, factory) {
- return require(id, deps, factory);
- };
-
- require.modules[id] = {
- exports: {},
- factory: function() {
- var module = this;
- var returnExports = factory(req, module.exports, module);
- if (returnExports)
- module.exports = returnExports;
- return module;
- }
- };
-};
-
-window.initBaseUrls = function initBaseUrls(topLevelNamespaces) {
- require.tlns = topLevelNamespaces;
-}
-
-window.initSender = function initSender() {
-
- var EventEmitter = require("ace/lib/event_emitter").EventEmitter;
- var oop = require("ace/lib/oop");
-
- var Sender = function() {};
-
- (function() {
-
- oop.implement(this, EventEmitter);
-
- this.callback = function(data, callbackId) {
- postMessage({
- type: "call",
- id: callbackId,
- data: data
- });
- };
-
- this.emit = function(name, data) {
- postMessage({
- type: "event",
- name: name,
- data: data
- });
- };
-
- }).call(Sender.prototype);
-
- return new Sender();
-}
-
-window.main = null;
-window.sender = null;
-
-window.onmessage = function(e) {
- var msg = e.data;
- if (msg.command) {
- if (main[msg.command])
- main[msg.command].apply(main, msg.args);
- else
- throw new Error("Unknown command:" + msg.command);
- }
- else if (msg.init) {
- initBaseUrls(msg.tlns);
- require("ace/lib/es5-shim");
- sender = initSender();
- var clazz = require(msg.module)[msg.classname];
- main = new clazz(sender);
- }
- else if (msg.event && sender) {
- sender._emit(msg.event, msg.data);
- }
-};
-})(this);
-
-ace.define('ace/lib/event_emitter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-var EventEmitter = {};
-var stopPropagation = function() { this.propagationStopped = true; };
-var preventDefault = function() { this.defaultPrevented = true; };
-
-EventEmitter._emit =
-EventEmitter._dispatchEvent = function(eventName, e) {
- this._eventRegistry || (this._eventRegistry = {});
- this._defaultHandlers || (this._defaultHandlers = {});
-
- var listeners = this._eventRegistry[eventName] || [];
- var defaultHandler = this._defaultHandlers[eventName];
- if (!listeners.length && !defaultHandler)
- return;
-
- if (typeof e != "object" || !e)
- e = {};
-
- if (!e.type)
- e.type = eventName;
- if (!e.stopPropagation)
- e.stopPropagation = stopPropagation;
- if (!e.preventDefault)
- e.preventDefault = preventDefault;
-
- for (var i=0; i<listeners.length; i++) {
- listeners[i](e, this);
- if (e.propagationStopped)
- break;
- }
-
- if (defaultHandler && !e.defaultPrevented)
- return defaultHandler(e, this);
-};
-
-
-EventEmitter._signal = function(eventName, e) {
- var listeners = (this._eventRegistry || {})[eventName];
- if (!listeners)
- return;
-
- for (var i=0; i<listeners.length; i++)
- listeners[i](e, this);
-};
-
-EventEmitter.once = function(eventName, callback) {
- var _self = this;
- callback && this.addEventListener(eventName, function newCallback() {
- _self.removeEventListener(eventName, newCallback);
- callback.apply(null, arguments);
- });
-};
-
-
-EventEmitter.setDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- handlers = this._defaultHandlers = {_disabled_: {}};
-
- if (handlers[eventName]) {
- var old = handlers[eventName];
- var disabled = handlers._disabled_[eventName];
- if (!disabled)
- handlers._disabled_[eventName] = disabled = [];
- disabled.push(old);
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
- handlers[eventName] = callback;
-};
-EventEmitter.removeDefaultHandler = function(eventName, callback) {
- var handlers = this._defaultHandlers
- if (!handlers)
- return;
- var disabled = handlers._disabled_[eventName];
-
- if (handlers[eventName] == callback) {
- var old = handlers[eventName];
- if (disabled)
- this.setDefaultHandler(eventName, disabled.pop());
- } else if (disabled) {
- var i = disabled.indexOf(callback);
- if (i != -1)
- disabled.splice(i, 1);
- }
-};
-
-EventEmitter.on =
-EventEmitter.addEventListener = function(eventName, callback, capturing) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- listeners = this._eventRegistry[eventName] = [];
-
- if (listeners.indexOf(callback) == -1)
- listeners[capturing ? "unshift" : "push"](callback);
- return callback;
-};
-
-EventEmitter.off =
-EventEmitter.removeListener =
-EventEmitter.removeEventListener = function(eventName, callback) {
- this._eventRegistry = this._eventRegistry || {};
-
- var listeners = this._eventRegistry[eventName];
- if (!listeners)
- return;
-
- var index = listeners.indexOf(callback);
- if (index !== -1)
- listeners.splice(index, 1);
-};
-
-EventEmitter.removeAllListeners = function(eventName) {
- if (this._eventRegistry) this._eventRegistry[eventName] = [];
-};
-
-exports.EventEmitter = EventEmitter;
-
-});
-
-ace.define('ace/lib/oop', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.inherits = (function() {
- var tempCtor = function() {};
- return function(ctor, superCtor) {
- tempCtor.prototype = superCtor.prototype;
- ctor.super_ = superCtor.prototype;
- ctor.prototype = new tempCtor();
- ctor.prototype.constructor = ctor;
- };
-}());
-
-exports.mixin = function(obj, mixin) {
- for (var key in mixin) {
- obj[key] = mixin[key];
- }
- return obj;
-};
-
-exports.implement = function(proto, mixin) {
- exports.mixin(proto, mixin);
-};
-
-});
-
-ace.define('ace/lib/es5-shim', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-function Empty() {}
-
-if (!Function.prototype.bind) {
- Function.prototype.bind = function bind(that) { // .length is 1
- var target = this;
- if (typeof target != "function") {
- throw new TypeError("Function.prototype.bind called on incompatible " + target);
- }
- var args = slice.call(arguments, 1); // for normal call
- var bound = function () {
-
- if (this instanceof bound) {
-
- var result = target.apply(
- this,
- args.concat(slice.call(arguments))
- );
- if (Object(result) === result) {
- return result;
- }
- return this;
-
- } else {
- return target.apply(
- that,
- args.concat(slice.call(arguments))
- );
-
- }
-
- };
- if(target.prototype) {
- Empty.prototype = target.prototype;
- bound.prototype = new Empty();
- Empty.prototype = null;
- }
- return bound;
- };
-}
-var call = Function.prototype.call;
-var prototypeOfArray = Array.prototype;
-var prototypeOfObject = Object.prototype;
-var slice = prototypeOfArray.slice;
-var _toString = call.bind(prototypeOfObject.toString);
-var owns = call.bind(prototypeOfObject.hasOwnProperty);
-var defineGetter;
-var defineSetter;
-var lookupGetter;
-var lookupSetter;
-var supportsAccessors;
-if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) {
- defineGetter = call.bind(prototypeOfObject.__defineGetter__);
- defineSetter = call.bind(prototypeOfObject.__defineSetter__);
- lookupGetter = call.bind(prototypeOfObject.__lookupGetter__);
- lookupSetter = call.bind(prototypeOfObject.__lookupSetter__);
-}
-if ([1,2].splice(0).length != 2) {
- if(function() { // test IE < 9 to splice bug - see issue #138
- function makeArray(l) {
- var a = new Array(l+2);
- a[0] = a[1] = 0;
- return a;
- }
- var array = [], lengthBefore;
-
- array.splice.apply(array, makeArray(20));
- array.splice.apply(array, makeArray(26));
-
- lengthBefore = array.length; //46
- array.splice(5, 0, "XXX"); // add one element
-
- lengthBefore + 1 == array.length
-
- if (lengthBefore + 1 == array.length) {
- return true;// has right splice implementation without bugs
- }
- }()) {//IE 6/7
- var array_splice = Array.prototype.splice;
- Array.prototype.splice = function(start, deleteCount) {
- if (!arguments.length) {
- return [];
- } else {
- return array_splice.apply(this, [
- start === void 0 ? 0 : start,
- deleteCount === void 0 ? (this.length - start) : deleteCount
- ].concat(slice.call(arguments, 2)))
- }
- };
- } else {//IE8
- Array.prototype.splice = function(pos, removeCount){
- var length = this.length;
- if (pos > 0) {
- if (pos > length)
- pos = length;
- } else if (pos == void 0) {
- pos = 0;
- } else if (pos < 0) {
- pos = Math.max(length + pos, 0);
- }
-
- if (!(pos+removeCount < length))
- removeCount = length - pos;
-
- var removed = this.slice(pos, pos+removeCount);
- var insert = slice.call(arguments, 2);
- var add = insert.length;
- if (pos === length) {
- if (add) {
- this.push.apply(this, insert);
- }
- } else {
- var remove = Math.min(removeCount, length - pos);
- var tailOldPos = pos + remove;
- var tailNewPos = tailOldPos + add - remove;
- var tailCount = length - tailOldPos;
- var lengthAfterRemove = length - remove;
-
- if (tailNewPos < tailOldPos) { // case A
- for (var i = 0; i < tailCount; ++i) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } else if (tailNewPos > tailOldPos) { // case B
- for (i = tailCount; i--; ) {
- this[tailNewPos+i] = this[tailOldPos+i];
- }
- } // else, add == remove (nothing to do)
-
- if (add && pos === lengthAfterRemove) {
- this.length = lengthAfterRemove; // truncate array
- this.push.apply(this, insert);
- } else {
- this.length = lengthAfterRemove + add; // reserves space
- for (i = 0; i < add; ++i) {
- this[pos+i] = insert[i];
- }
- }
- }
- return removed;
- };
- }
-}
-if (!Array.isArray) {
- Array.isArray = function isArray(obj) {
- return _toString(obj) == "[object Array]";
- };
-}
-var boxedString = Object("a"),
- splitString = boxedString[0] != "a" || !(0 in boxedString);
-
-if (!Array.prototype.forEach) {
- Array.prototype.forEach = function forEach(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- thisp = arguments[1],
- i = -1,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(); // TODO message
- }
-
- while (++i < length) {
- if (i in self) {
- fun.call(thisp, self[i], i, object);
- }
- }
- };
-}
-if (!Array.prototype.map) {
- Array.prototype.map = function map(fun /*, thisp*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = Array(length),
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self)
- result[i] = fun.call(thisp, self[i], i, object);
- }
- return result;
- };
-}
-if (!Array.prototype.filter) {
- Array.prototype.filter = function filter(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- result = [],
- value,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self) {
- value = self[i];
- if (fun.call(thisp, value, i, object)) {
- result.push(value);
- }
- }
- }
- return result;
- };
-}
-if (!Array.prototype.every) {
- Array.prototype.every = function every(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && !fun.call(thisp, self[i], i, object)) {
- return false;
- }
- }
- return true;
- };
-}
-if (!Array.prototype.some) {
- Array.prototype.some = function some(fun /*, thisp */) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0,
- thisp = arguments[1];
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
-
- for (var i = 0; i < length; i++) {
- if (i in self && fun.call(thisp, self[i], i, object)) {
- return true;
- }
- }
- return false;
- };
-}
-if (!Array.prototype.reduce) {
- Array.prototype.reduce = function reduce(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduce of empty array with no initial value");
- }
-
- var i = 0;
- var result;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i++];
- break;
- }
- if (++i >= length) {
- throw new TypeError("reduce of empty array with no initial value");
- }
- } while (true);
- }
-
- for (; i < length; i++) {
- if (i in self) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- }
-
- return result;
- };
-}
-if (!Array.prototype.reduceRight) {
- Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) {
- var object = toObject(this),
- self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- object,
- length = self.length >>> 0;
- if (_toString(fun) != "[object Function]") {
- throw new TypeError(fun + " is not a function");
- }
- if (!length && arguments.length == 1) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
-
- var result, i = length - 1;
- if (arguments.length >= 2) {
- result = arguments[1];
- } else {
- do {
- if (i in self) {
- result = self[i--];
- break;
- }
- if (--i < 0) {
- throw new TypeError("reduceRight of empty array with no initial value");
- }
- } while (true);
- }
-
- do {
- if (i in this) {
- result = fun.call(void 0, result, self[i], i, object);
- }
- } while (i--);
-
- return result;
- };
-}
-if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) {
- Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
-
- var i = 0;
- if (arguments.length > 1) {
- i = toInteger(arguments[1]);
- }
- i = i >= 0 ? i : Math.max(0, length + i);
- for (; i < length; i++) {
- if (i in self && self[i] === sought) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) {
- Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) {
- var self = splitString && _toString(this) == "[object String]" ?
- this.split("") :
- toObject(this),
- length = self.length >>> 0;
-
- if (!length) {
- return -1;
- }
- var i = length - 1;
- if (arguments.length > 1) {
- i = Math.min(i, toInteger(arguments[1]));
- }
- i = i >= 0 ? i : length - Math.abs(i);
- for (; i >= 0; i--) {
- if (i in self && sought === self[i]) {
- return i;
- }
- }
- return -1;
- };
-}
-if (!Object.getPrototypeOf) {
- Object.getPrototypeOf = function getPrototypeOf(object) {
- return object.__proto__ || (
- object.constructor ?
- object.constructor.prototype :
- prototypeOfObject
- );
- };
-}
-if (!Object.getOwnPropertyDescriptor) {
- var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " +
- "non-object: ";
- Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT + object);
- if (!owns(object, property))
- return;
-
- var descriptor, getter, setter;
- descriptor = { enumerable: true, configurable: true };
- if (supportsAccessors) {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
-
- var getter = lookupGetter(object, property);
- var setter = lookupSetter(object, property);
- object.__proto__ = prototype;
-
- if (getter || setter) {
- if (getter) descriptor.get = getter;
- if (setter) descriptor.set = setter;
- return descriptor;
- }
- }
- descriptor.value = object[property];
- return descriptor;
- };
-}
-if (!Object.getOwnPropertyNames) {
- Object.getOwnPropertyNames = function getOwnPropertyNames(object) {
- return Object.keys(object);
- };
-}
-if (!Object.create) {
- var createEmpty;
- if (Object.prototype.__proto__ === null) {
- createEmpty = function () {
- return { "__proto__": null };
- };
- } else {
- createEmpty = function () {
- var empty = {};
- for (var i in empty)
- empty[i] = null;
- empty.constructor =
- empty.hasOwnProperty =
- empty.propertyIsEnumerable =
- empty.isPrototypeOf =
- empty.toLocaleString =
- empty.toString =
- empty.valueOf =
- empty.__proto__ = null;
- return empty;
- }
- }
-
- Object.create = function create(prototype, properties) {
- var object;
- if (prototype === null) {
- object = createEmpty();
- } else {
- if (typeof prototype != "object")
- throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'");
- var Type = function () {};
- Type.prototype = prototype;
- object = new Type();
- object.__proto__ = prototype;
- }
- if (properties !== void 0)
- Object.defineProperties(object, properties);
- return object;
- };
-}
-
-function doesDefinePropertyWork(object) {
- try {
- Object.defineProperty(object, "sentinel", {});
- return "sentinel" in object;
- } catch (exception) {
- }
-}
-if (Object.defineProperty) {
- var definePropertyWorksOnObject = doesDefinePropertyWork({});
- var definePropertyWorksOnDom = typeof document == "undefined" ||
- doesDefinePropertyWork(document.createElement("div"));
- if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) {
- var definePropertyFallback = Object.defineProperty;
- }
-}
-
-if (!Object.defineProperty || definePropertyFallback) {
- var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: ";
- var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: "
- var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " +
- "on this javascript engine";
-
- Object.defineProperty = function defineProperty(object, property, descriptor) {
- if ((typeof object != "object" && typeof object != "function") || object === null)
- throw new TypeError(ERR_NON_OBJECT_TARGET + object);
- if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null)
- throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor);
- if (definePropertyFallback) {
- try {
- return definePropertyFallback.call(Object, object, property, descriptor);
- } catch (exception) {
- }
- }
- if (owns(descriptor, "value")) {
-
- if (supportsAccessors && (lookupGetter(object, property) ||
- lookupSetter(object, property)))
- {
- var prototype = object.__proto__;
- object.__proto__ = prototypeOfObject;
- delete object[property];
- object[property] = descriptor.value;
- object.__proto__ = prototype;
- } else {
- object[property] = descriptor.value;
- }
- } else {
- if (!supportsAccessors)
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
- if (owns(descriptor, "get"))
- defineGetter(object, property, descriptor.get);
- if (owns(descriptor, "set"))
- defineSetter(object, property, descriptor.set);
- }
-
- return object;
- };
-}
-if (!Object.defineProperties) {
- Object.defineProperties = function defineProperties(object, properties) {
- for (var property in properties) {
- if (owns(properties, property))
- Object.defineProperty(object, property, properties[property]);
- }
- return object;
- };
-}
-if (!Object.seal) {
- Object.seal = function seal(object) {
- return object;
- };
-}
-if (!Object.freeze) {
- Object.freeze = function freeze(object) {
- return object;
- };
-}
-try {
- Object.freeze(function () {});
-} catch (exception) {
- Object.freeze = (function freeze(freezeObject) {
- return function freeze(object) {
- if (typeof object == "function") {
- return object;
- } else {
- return freezeObject(object);
- }
- };
- })(Object.freeze);
-}
-if (!Object.preventExtensions) {
- Object.preventExtensions = function preventExtensions(object) {
- return object;
- };
-}
-if (!Object.isSealed) {
- Object.isSealed = function isSealed(object) {
- return false;
- };
-}
-if (!Object.isFrozen) {
- Object.isFrozen = function isFrozen(object) {
- return false;
- };
-}
-if (!Object.isExtensible) {
- Object.isExtensible = function isExtensible(object) {
- if (Object(object) === object) {
- throw new TypeError(); // TODO message
- }
- var name = '';
- while (owns(object, name)) {
- name += '?';
- }
- object[name] = true;
- var returnValue = owns(object, name);
- delete object[name];
- return returnValue;
- };
-}
-if (!Object.keys) {
- var hasDontEnumBug = true,
- dontEnums = [
- "toString",
- "toLocaleString",
- "valueOf",
- "hasOwnProperty",
- "isPrototypeOf",
- "propertyIsEnumerable",
- "constructor"
- ],
- dontEnumsLength = dontEnums.length;
-
- for (var key in {"toString": null}) {
- hasDontEnumBug = false;
- }
-
- Object.keys = function keys(object) {
-
- if (
- (typeof object != "object" && typeof object != "function") ||
- object === null
- ) {
- throw new TypeError("Object.keys called on a non-object");
- }
-
- var keys = [];
- for (var name in object) {
- if (owns(object, name)) {
- keys.push(name);
- }
- }
-
- if (hasDontEnumBug) {
- for (var i = 0, ii = dontEnumsLength; i < ii; i++) {
- var dontEnum = dontEnums[i];
- if (owns(object, dontEnum)) {
- keys.push(dontEnum);
- }
- }
- }
- return keys;
- };
-
-}
-if (!Date.now) {
- Date.now = function now() {
- return new Date().getTime();
- };
-}
-var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" +
- "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" +
- "\u2029\uFEFF";
-if (!String.prototype.trim || ws.trim()) {
- ws = "[" + ws + "]";
- var trimBeginRegexp = new RegExp("^" + ws + ws + "*"),
- trimEndRegexp = new RegExp(ws + ws + "*$");
- String.prototype.trim = function trim() {
- return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, "");
- };
-}
-
-function toInteger(n) {
- n = +n;
- if (n !== n) { // isNaN
- n = 0;
- } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- return n;
-}
-
-function isPrimitive(input) {
- var type = typeof input;
- return (
- input === null ||
- type === "undefined" ||
- type === "boolean" ||
- type === "number" ||
- type === "string"
- );
-}
-
-function toPrimitive(input) {
- var val, valueOf, toString;
- if (isPrimitive(input)) {
- return input;
- }
- valueOf = input.valueOf;
- if (typeof valueOf === "function") {
- val = valueOf.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- toString = input.toString;
- if (typeof toString === "function") {
- val = toString.call(input);
- if (isPrimitive(val)) {
- return val;
- }
- }
- throw new TypeError();
-}
-var toObject = function (o) {
- if (o == null) { // this matches both null and undefined
- throw new TypeError("can't convert "+o+" to object");
- }
- return Object(o);
-};
-
-});
-
-ace.define('ace/mode/xquery_worker', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/worker/mirror', 'ace/mode/xquery/JSONParseTreeHandler', 'ace/mode/xquery/XQueryParser', 'ace/mode/xquery/visitors/SemanticHighlighter'], function(require, exports, module) {
-
-
-var oop = require("../lib/oop");
-var Mirror = require("../worker/mirror").Mirror;
-var JSONParseTreeHandler = require("./xquery/JSONParseTreeHandler").JSONParseTreeHandler;
-var XQueryParser = require("./xquery/XQueryParser").XQueryParser;
-var SemanticHighlighter = require("./xquery/visitors/SemanticHighlighter").SemanticHighlighter;
-
-var XQueryWorker = exports.XQueryWorker = function(sender) {
- Mirror.call(this, sender);
- this.setTimeout(200);
-};
-
-oop.inherits(XQueryWorker, Mirror);
-
-(function() {
-
- this.onUpdate = function() {
- this.sender.emit("start");
- var value = this.doc.getValue();
- var h = new JSONParseTreeHandler(value);
- var parser = new XQueryParser(value, h);
- try {
- parser.parse_XQuery();
- this.sender.emit("ok");
- var ast = h.getParseTree();
- var highlighter = new SemanticHighlighter(ast, value);
- var tokens = highlighter.getTokens();
- this.sender.emit("highlight", { tokens: tokens, lines: highlighter.lines });
- } catch(e) {
- if(e instanceof parser.ParseException) {
- var prefix = value.substring(0, e.getBegin());
- var line = prefix.split("\n").length;
- var column = e.getBegin() - prefix.lastIndexOf("\n");
- var message = parser.getErrorMessage(e);
- this.sender.emit("error", {
- row: line - 1,
- column: column,
- text: message,
- type: "error"
- });
- } else {
- throw e;
- }
- }
- };
-
-}).call(XQueryWorker.prototype);
-
-});
-ace.define('ace/worker/mirror', ['require', 'exports', 'module' , 'ace/document', 'ace/lib/lang'], function(require, exports, module) {
-
-
-var Document = require("../document").Document;
-var lang = require("../lib/lang");
-
-var Mirror = exports.Mirror = function(sender) {
- this.sender = sender;
- var doc = this.doc = new Document("");
-
- var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this));
-
- var _self = this;
- sender.on("change", function(e) {
- doc.applyDeltas(e.data);
- deferredUpdate.schedule(_self.$timeout);
- });
-};
-
-(function() {
-
- this.$timeout = 500;
-
- this.setTimeout = function(timeout) {
- this.$timeout = timeout;
- };
-
- this.setValue = function(value) {
- this.doc.setValue(value);
- this.deferredUpdate.schedule(this.$timeout);
- };
-
- this.getValue = function(callbackId) {
- this.sender.callback(this.doc.getValue(), callbackId);
- };
-
- this.onUpdate = function() {
- };
-
-}).call(Mirror.prototype);
-
-});
-
-ace.define('ace/document', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter', 'ace/range', 'ace/anchor'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-var Range = require("./range").Range;
-var Anchor = require("./anchor").Anchor;
-
-var Document = function(text) {
- this.$lines = [];
- if (text.length == 0) {
- this.$lines = [""];
- } else if (Array.isArray(text)) {
- this._insertLines(0, text);
- } else {
- this.insert({row: 0, column:0}, text);
- }
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.setValue = function(text) {
- var len = this.getLength();
- this.remove(new Range(0, 0, len, this.getLine(len-1).length));
- this.insert({row: 0, column:0}, text);
- };
- this.getValue = function() {
- return this.getAllLines().join(this.getNewLineCharacter());
- };
- this.createAnchor = function(row, column) {
- return new Anchor(this, row, column);
- };
- if ("aaa".split(/a/).length == 0)
- this.$split = function(text) {
- return text.replace(/\r\n|\r/g, "\n").split("\n");
- }
- else
- this.$split = function(text) {
- return text.split(/\r\n|\r|\n/);
- };
-
-
- this.$detectNewLine = function(text) {
- var match = text.match(/^.*?(\r\n|\r|\n)/m);
- this.$autoNewLine = match ? match[1] : "\n";
- };
- this.getNewLineCharacter = function() {
- switch (this.$newLineMode) {
- case "windows":
- return "\r\n";
- case "unix":
- return "\n";
- default:
- return this.$autoNewLine;
- }
- };
-
- this.$autoNewLine = "\n";
- this.$newLineMode = "auto";
- this.setNewLineMode = function(newLineMode) {
- if (this.$newLineMode === newLineMode)
- return;
-
- this.$newLineMode = newLineMode;
- };
- this.getNewLineMode = function() {
- return this.$newLineMode;
- };
- this.isNewLine = function(text) {
- return (text == "\r\n" || text == "\r" || text == "\n");
- };
- this.getLine = function(row) {
- return this.$lines[row] || "";
- };
- this.getLines = function(firstRow, lastRow) {
- return this.$lines.slice(firstRow, lastRow + 1);
- };
- this.getAllLines = function() {
- return this.getLines(0, this.getLength());
- };
- this.getLength = function() {
- return this.$lines.length;
- };
- this.getTextRange = function(range) {
- if (range.start.row == range.end.row) {
- return this.getLine(range.start.row)
- .substring(range.start.column, range.end.column);
- }
- var lines = this.getLines(range.start.row, range.end.row);
- lines[0] = (lines[0] || "").substring(range.start.column);
- var l = lines.length - 1;
- if (range.end.row - range.start.row == l)
- lines[l] = lines[l].substring(0, range.end.column);
- return lines.join(this.getNewLineCharacter());
- };
-
- this.$clipPosition = function(position) {
- var length = this.getLength();
- if (position.row >= length) {
- position.row = Math.max(0, length - 1);
- position.column = this.getLine(length-1).length;
- } else if (position.row < 0)
- position.row = 0;
- return position;
- };
- this.insert = function(position, text) {
- if (!text || text.length === 0)
- return position;
-
- position = this.$clipPosition(position);
- if (this.getLength() <= 1)
- this.$detectNewLine(text);
-
- var lines = this.$split(text);
- var firstLine = lines.splice(0, 1)[0];
- var lastLine = lines.length == 0 ? null : lines.splice(lines.length - 1, 1)[0];
-
- position = this.insertInLine(position, firstLine);
- if (lastLine !== null) {
- position = this.insertNewLine(position); // terminate first line
- position = this._insertLines(position.row, lines);
- position = this.insertInLine(position, lastLine || "");
- }
- return position;
- };
- this.insertLines = function(row, lines) {
- if (row >= this.getLength())
- return this.insert({row: row, column: 0}, "\n" + lines.join("\n"));
- return this._insertLines(Math.max(row, 0), lines);
- };
- this._insertLines = function(row, lines) {
- if (lines.length == 0)
- return {row: row, column: 0};
- if (lines.length > 0xFFFF) {
- var end = this._insertLines(row, lines.slice(0xFFFF));
- lines = lines.slice(0, 0xFFFF);
- }
-
- var args = [row, 0];
- args.push.apply(args, lines);
- this.$lines.splice.apply(this.$lines, args);
-
- var range = new Range(row, 0, row + lines.length, 0);
- var delta = {
- action: "insertLines",
- range: range,
- lines: lines
- };
- this._emit("change", { data: delta });
- return end || range.end;
- };
- this.insertNewLine = function(position) {
- position = this.$clipPosition(position);
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column);
- this.$lines.splice(position.row + 1, 0, line.substring(position.column, line.length));
-
- var end = {
- row : position.row + 1,
- column : 0
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.insertInLine = function(position, text) {
- if (text.length == 0)
- return position;
-
- var line = this.$lines[position.row] || "";
-
- this.$lines[position.row] = line.substring(0, position.column) + text
- + line.substring(position.column);
-
- var end = {
- row : position.row,
- column : position.column + text.length
- };
-
- var delta = {
- action: "insertText",
- range: Range.fromPoints(position, end),
- text: text
- };
- this._emit("change", { data: delta });
-
- return end;
- };
- this.remove = function(range) {
- range.start = this.$clipPosition(range.start);
- range.end = this.$clipPosition(range.end);
-
- if (range.isEmpty())
- return range.start;
-
- var firstRow = range.start.row;
- var lastRow = range.end.row;
-
- if (range.isMultiLine()) {
- var firstFullRow = range.start.column == 0 ? firstRow : firstRow + 1;
- var lastFullRow = lastRow - 1;
-
- if (range.end.column > 0)
- this.removeInLine(lastRow, 0, range.end.column);
-
- if (lastFullRow >= firstFullRow)
- this._removeLines(firstFullRow, lastFullRow);
-
- if (firstFullRow != firstRow) {
- this.removeInLine(firstRow, range.start.column, this.getLine(firstRow).length);
- this.removeNewLine(range.start.row);
- }
- }
- else {
- this.removeInLine(firstRow, range.start.column, range.end.column);
- }
- return range.start;
- };
- this.removeInLine = function(row, startColumn, endColumn) {
- if (startColumn == endColumn)
- return;
-
- var range = new Range(row, startColumn, row, endColumn);
- var line = this.getLine(row);
- var removed = line.substring(startColumn, endColumn);
- var newLine = line.substring(0, startColumn) + line.substring(endColumn, line.length);
- this.$lines.splice(row, 1, newLine);
-
- var delta = {
- action: "removeText",
- range: range,
- text: removed
- };
- this._emit("change", { data: delta });
- return range.start;
- };
- this.removeLines = function(firstRow, lastRow) {
- if (firstRow < 0 || lastRow >= this.getLength())
- return this.remove(new Range(firstRow, 0, lastRow + 1, 0));
- return this._removeLines(firstRow, lastRow);
- };
-
- this._removeLines = function(firstRow, lastRow) {
- var range = new Range(firstRow, 0, lastRow + 1, 0);
- var removed = this.$lines.splice(firstRow, lastRow - firstRow + 1);
-
- var delta = {
- action: "removeLines",
- range: range,
- nl: this.getNewLineCharacter(),
- lines: removed
- };
- this._emit("change", { data: delta });
- return removed;
- };
- this.removeNewLine = function(row) {
- var firstLine = this.getLine(row);
- var secondLine = this.getLine(row+1);
-
- var range = new Range(row, firstLine.length, row+1, 0);
- var line = firstLine + secondLine;
-
- this.$lines.splice(row, 2, line);
-
- var delta = {
- action: "removeText",
- range: range,
- text: this.getNewLineCharacter()
- };
- this._emit("change", { data: delta });
- };
- this.replace = function(range, text) {
- if (text.length == 0 && range.isEmpty())
- return range.start;
- if (text == this.getTextRange(range))
- return range.end;
-
- this.remove(range);
- if (text) {
- var end = this.insert(range.start, text);
- }
- else {
- end = range.start;
- }
-
- return end;
- };
- this.applyDeltas = function(deltas) {
- for (var i=0; i<deltas.length; i++) {
- var delta = deltas[i];
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this.insertLines(range.start.row, delta.lines);
- else if (delta.action == "insertText")
- this.insert(range.start, delta.text);
- else if (delta.action == "removeLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "removeText")
- this.remove(range);
- }
- };
- this.revertDeltas = function(deltas) {
- for (var i=deltas.length-1; i>=0; i--) {
- var delta = deltas[i];
-
- var range = Range.fromPoints(delta.range.start, delta.range.end);
-
- if (delta.action == "insertLines")
- this._removeLines(range.start.row, range.end.row - 1);
- else if (delta.action == "insertText")
- this.remove(range);
- else if (delta.action == "removeLines")
- this._insertLines(range.start.row, delta.lines);
- else if (delta.action == "removeText")
- this.insert(range.start, delta.text);
- }
- };
- this.indexToPosition = function(index, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- for (var i = startRow || 0, l = lines.length; i < l; i++) {
- index -= lines[i].length + newlineLength;
- if (index < 0)
- return {row: i, column: index + lines[i].length + newlineLength};
- }
- return {row: l-1, column: lines[l-1].length};
- };
- this.positionToIndex = function(pos, startRow) {
- var lines = this.$lines || this.getAllLines();
- var newlineLength = this.getNewLineCharacter().length;
- var index = 0;
- var row = Math.min(pos.row, lines.length);
- for (var i = startRow || 0; i < row; ++i)
- index += lines[i].length + newlineLength;
-
- return index + pos.column;
- };
-
-}).call(Document.prototype);
-
-exports.Document = Document;
-});
-
-ace.define('ace/range', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-var comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-var Range = function(startRow, startColumn, endRow, endColumn) {
- this.start = {
- row: startRow,
- column: startColumn
- };
-
- this.end = {
- row: endRow,
- column: endColumn
- };
-};
-
-(function() {
- this.isEqual = function(range) {
- return this.start.row === range.start.row &&
- this.end.row === range.end.row &&
- this.start.column === range.start.column &&
- this.end.column === range.end.column;
- };
- this.toString = function() {
- return ("Range: [" + this.start.row + "/" + this.start.column +
- "] -> [" + this.end.row + "/" + this.end.column + "]");
- };
-
- this.contains = function(row, column) {
- return this.compare(row, column) == 0;
- };
- this.compareRange = function(range) {
- var cmp,
- end = range.end,
- start = range.start;
-
- cmp = this.compare(end.row, end.column);
- if (cmp == 1) {
- cmp = this.compare(start.row, start.column);
- if (cmp == 1) {
- return 2;
- } else if (cmp == 0) {
- return 1;
- } else {
- return 0;
- }
- } else if (cmp == -1) {
- return -2;
- } else {
- cmp = this.compare(start.row, start.column);
- if (cmp == -1) {
- return -1;
- } else if (cmp == 1) {
- return 42;
- } else {
- return 0;
- }
- }
- };
- this.comparePoint = function(p) {
- return this.compare(p.row, p.column);
- };
- this.containsRange = function(range) {
- return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0;
- };
- this.intersects = function(range) {
- var cmp = this.compareRange(range);
- return (cmp == -1 || cmp == 0 || cmp == 1);
- };
- this.isEnd = function(row, column) {
- return this.end.row == row && this.end.column == column;
- };
- this.isStart = function(row, column) {
- return this.start.row == row && this.start.column == column;
- };
- this.setStart = function(row, column) {
- if (typeof row == "object") {
- this.start.column = row.column;
- this.start.row = row.row;
- } else {
- this.start.row = row;
- this.start.column = column;
- }
- };
- this.setEnd = function(row, column) {
- if (typeof row == "object") {
- this.end.column = row.column;
- this.end.row = row.row;
- } else {
- this.end.row = row;
- this.end.column = column;
- }
- };
- this.inside = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column) || this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideStart = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isEnd(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.insideEnd = function(row, column) {
- if (this.compare(row, column) == 0) {
- if (this.isStart(row, column)) {
- return false;
- } else {
- return true;
- }
- }
- return false;
- };
- this.compare = function(row, column) {
- if (!this.isMultiLine()) {
- if (row === this.start.row) {
- return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0);
- };
- }
-
- if (row < this.start.row)
- return -1;
-
- if (row > this.end.row)
- return 1;
-
- if (this.start.row === row)
- return column >= this.start.column ? 0 : -1;
-
- if (this.end.row === row)
- return column <= this.end.column ? 0 : 1;
-
- return 0;
- };
- this.compareStart = function(row, column) {
- if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareEnd = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else {
- return this.compare(row, column);
- }
- };
- this.compareInside = function(row, column) {
- if (this.end.row == row && this.end.column == column) {
- return 1;
- } else if (this.start.row == row && this.start.column == column) {
- return -1;
- } else {
- return this.compare(row, column);
- }
- };
- this.clipRows = function(firstRow, lastRow) {
- if (this.end.row > lastRow)
- var end = {row: lastRow + 1, column: 0};
- else if (this.end.row < firstRow)
- var end = {row: firstRow, column: 0};
-
- if (this.start.row > lastRow)
- var start = {row: lastRow + 1, column: 0};
- else if (this.start.row < firstRow)
- var start = {row: firstRow, column: 0};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
- this.extend = function(row, column) {
- var cmp = this.compare(row, column);
-
- if (cmp == 0)
- return this;
- else if (cmp == -1)
- var start = {row: row, column: column};
- else
- var end = {row: row, column: column};
-
- return Range.fromPoints(start || this.start, end || this.end);
- };
-
- this.isEmpty = function() {
- return (this.start.row === this.end.row && this.start.column === this.end.column);
- };
- this.isMultiLine = function() {
- return (this.start.row !== this.end.row);
- };
- this.clone = function() {
- return Range.fromPoints(this.start, this.end);
- };
- this.collapseRows = function() {
- if (this.end.column == 0)
- return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0)
- else
- return new Range(this.start.row, 0, this.end.row, 0)
- };
- this.toScreenRange = function(session) {
- var screenPosStart = session.documentToScreenPosition(this.start);
- var screenPosEnd = session.documentToScreenPosition(this.end);
-
- return new Range(
- screenPosStart.row, screenPosStart.column,
- screenPosEnd.row, screenPosEnd.column
- );
- };
- this.moveBy = function(row, column) {
- this.start.row += row;
- this.start.column += column;
- this.end.row += row;
- this.end.column += column;
- };
-
-}).call(Range.prototype);
-Range.fromPoints = function(start, end) {
- return new Range(start.row, start.column, end.row, end.column);
-};
-Range.comparePoints = comparePoints;
-
-Range.comparePoints = function(p1, p2) {
- return p1.row - p2.row || p1.column - p2.column;
-};
-
-
-exports.Range = Range;
-});
-
-ace.define('ace/anchor', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/event_emitter'], function(require, exports, module) {
-
-
-var oop = require("./lib/oop");
-var EventEmitter = require("./lib/event_emitter").EventEmitter;
-
-var Anchor = exports.Anchor = function(doc, row, column) {
- this.$onChange = this.onChange.bind(this);
- this.attach(doc);
-
- if (typeof column == "undefined")
- this.setPosition(row.row, row.column);
- else
- this.setPosition(row, column);
-};
-
-(function() {
-
- oop.implement(this, EventEmitter);
- this.getPosition = function() {
- return this.$clipPositionToDocument(this.row, this.column);
- };
- this.getDocument = function() {
- return this.document;
- };
- this.onChange = function(e) {
- var delta = e.data;
- var range = delta.range;
-
- if (range.start.row == range.end.row && range.start.row != this.row)
- return;
-
- if (range.start.row > this.row)
- return;
-
- if (range.start.row == this.row && range.start.column > this.column)
- return;
-
- var row = this.row;
- var column = this.column;
- var start = range.start;
- var end = range.end;
-
- if (delta.action === "insertText") {
- if (start.row === row && start.column <= column) {
- if (start.row === end.row) {
- column += end.column - start.column;
- } else {
- column -= start.column;
- row += end.row - start.row;
- }
- } else if (start.row !== end.row && start.row < row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "insertLines") {
- if (start.row <= row) {
- row += end.row - start.row;
- }
- } else if (delta.action === "removeText") {
- if (start.row === row && start.column < column) {
- if (end.column >= column)
- column = start.column;
- else
- column = Math.max(0, column - (end.column - start.column));
-
- } else if (start.row !== end.row && start.row < row) {
- if (end.row === row)
- column = Math.max(0, column - end.column) + start.column;
- row -= (end.row - start.row);
- } else if (end.row === row) {
- row -= end.row - start.row;
- column = Math.max(0, column - end.column) + start.column;
- }
- } else if (delta.action == "removeLines") {
- if (start.row <= row) {
- if (end.row <= row)
- row -= end.row - start.row;
- else {
- row = start.row;
- column = 0;
- }
- }
- }
-
- this.setPosition(row, column, true);
- };
- this.setPosition = function(row, column, noClip) {
- var pos;
- if (noClip) {
- pos = {
- row: row,
- column: column
- };
- } else {
- pos = this.$clipPositionToDocument(row, column);
- }
-
- if (this.row == pos.row && this.column == pos.column)
- return;
-
- var old = {
- row: this.row,
- column: this.column
- };
-
- this.row = pos.row;
- this.column = pos.column;
- this._emit("change", {
- old: old,
- value: pos
- });
- };
- this.detach = function() {
- this.document.removeEventListener("change", this.$onChange);
- };
- this.attach = function(doc) {
- this.document = doc || this.document;
- this.document.on("change", this.$onChange);
- };
- this.$clipPositionToDocument = function(row, column) {
- var pos = {};
-
- if (row >= this.document.getLength()) {
- pos.row = Math.max(0, this.document.getLength() - 1);
- pos.column = this.document.getLine(pos.row).length;
- }
- else if (row < 0) {
- pos.row = 0;
- pos.column = 0;
- }
- else {
- pos.row = row;
- pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column));
- }
-
- if (column < 0)
- pos.column = 0;
-
- return pos;
- };
-
-}).call(Anchor.prototype);
-
-});
-
-ace.define('ace/lib/lang', ['require', 'exports', 'module' ], function(require, exports, module) {
-
-
-exports.stringReverse = function(string) {
- return string.split("").reverse().join("");
-};
-
-exports.stringRepeat = function (string, count) {
- var result = '';
- while (count > 0) {
- if (count & 1)
- result += string;
-
- if (count >>= 1)
- string += string;
- }
- return result;
-};
-
-var trimBeginRegexp = /^\s\s*/;
-var trimEndRegexp = /\s\s*$/;
-
-exports.stringTrimLeft = function (string) {
- return string.replace(trimBeginRegexp, '');
-};
-
-exports.stringTrimRight = function (string) {
- return string.replace(trimEndRegexp, '');
-};
-
-exports.copyObject = function(obj) {
- var copy = {};
- for (var key in obj) {
- copy[key] = obj[key];
- }
- return copy;
-};
-
-exports.copyArray = function(array){
- var copy = [];
- for (var i=0, l=array.length; i<l; i++) {
- if (array[i] && typeof array[i] == "object")
- copy[i] = this.copyObject( array[i] );
- else
- copy[i] = array[i];
- }
- return copy;
-};
-
-exports.deepCopy = function (obj) {
- if (typeof obj != "object") {
- return obj;
- }
-
- var copy = obj.constructor();
- for (var key in obj) {
- if (typeof obj[key] == "object") {
- copy[key] = this.deepCopy(obj[key]);
- } else {
- copy[key] = obj[key];
- }
- }
- return copy;
-};
-
-exports.arrayToMap = function(arr) {
- var map = {};
- for (var i=0; i<arr.length; i++) {
- map[arr[i]] = 1;
- }
- return map;
-
-};
-
-exports.createMap = function(props) {
- var map = Object.create(null);
- for (var i in props) {
- map[i] = props[i];
- }
- return map;
-};
-exports.arrayRemove = function(array, value) {
- for (var i = 0; i <= array.length; i++) {
- if (value === array[i]) {
- array.splice(i, 1);
- }
- }
-};
-
-exports.escapeRegExp = function(str) {
- return str.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1');
-};
-
-exports.escapeHTML = function(str) {
- return str.replace(/&/g, "&#38;").replace(/"/g, "&#34;").replace(/'/g, "&#39;").replace(/</g, "&#60;");
-};
-
-exports.getMatchOffsets = function(string, regExp) {
- var matches = [];
-
- string.replace(regExp, function(str) {
- matches.push({
- offset: arguments[arguments.length-2],
- length: str.length
- });
- });
-
- return matches;
-};
-exports.deferredCall = function(fcn) {
-
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var deferred = function(timeout) {
- deferred.cancel();
- timer = setTimeout(callback, timeout || 0);
- return deferred;
- };
-
- deferred.schedule = deferred;
-
- deferred.call = function() {
- this.cancel();
- fcn();
- return deferred;
- };
-
- deferred.cancel = function() {
- clearTimeout(timer);
- timer = null;
- return deferred;
- };
-
- return deferred;
-};
-
-
-exports.delayedCall = function(fcn, defaultTimeout) {
- var timer = null;
- var callback = function() {
- timer = null;
- fcn();
- };
-
- var _self = function(timeout) {
- timer && clearTimeout(timer);
- timer = setTimeout(callback, timeout || defaultTimeout);
- };
-
- _self.delay = _self;
- _self.schedule = function(timeout) {
- if (timer == null)
- timer = setTimeout(callback, timeout || 0);
- };
-
- _self.call = function() {
- this.cancel();
- fcn();
- };
-
- _self.cancel = function() {
- timer && clearTimeout(timer);
- timer = null;
- };
-
- _self.isPending = function() {
- return timer;
- };
-
- return _self;
-};
-});
-
-ace.define('ace/mode/xquery/JSONParseTreeHandler', ['require', 'exports', 'module' ], function(require, exports, module) {
-
- var JSONParseTreeHandler = exports.JSONParseTreeHandler = function(code) {
- var list = [
- "OrExpr", "AndExpr", "ComparisonExpr", "StringConcatExpr", "RangeExpr"
- , "UnionExpr", "IntersectExceptExpr", "InstanceofExpr", "TreatExpr", "CastableExpr"
- , "CastExpr", "UnaryExpr", "ValueExpr", "FTContainsExpr", "SimpleMapExpr", "PathExpr", "RelativePathExpr"
- , "PostfixExpr", "StepExpr"
- ];
-
- var ast = null;
- var ptr = null;
- var remains = code;
- var cursor = 0;
- var lineCursor = 0;
- var line = 0;
- var col = 0;
-
- function createNode(name){
- return { name: name, children: [], getParent: null, pos: { sl: 0, sc: 0, el: 0, ec: 0 } };
- }
-
- function pushNode(name, begin){
- var node = createNode(name);
- if(ast === null) {
- ast = node;
- ptr = node;
- } else {
- node.getParent = ptr;
- ptr.children.push(node);
- ptr = ptr.children[ptr.children.length - 1];
- }
- }
-
- function popNode(){
-
- if(ptr.children.length > 0) {
- var s = ptr.children[0];
- var e = null;
- for(var i= ptr.children.length - 1; i >= 0;i--) {
- e = ptr.children[i];
- if(e.pos.el !== 0 || e.pos.ec !== 0) {
- break;
- }
- }
- ptr.pos.sl = s.pos.sl;
- ptr.pos.sc = s.pos.sc;
- ptr.pos.el = e.pos.el;
- ptr.pos.ec = e.pos.ec;
- }
- if(ptr.name === "FunctionName") {
- ptr.name = "EQName";
- }
- if(ptr.name === "EQName" && ptr.value === undefined) {
- ptr.value = ptr.children[0].value;
- ptr.children.pop();
- }
-
- if(ptr.getParent !== null) {
- ptr = ptr.getParent;
- } else {
- }
- if(ptr.children.length > 0) {
- var lastChild = ptr.children[ptr.children.length - 1];
- if(lastChild.children.length === 1 && list.indexOf(lastChild.name) !== -1) {
- ptr.children[ptr.children.length - 1] = lastChild.children[0];
- }
- }
- }
-
- this.closeParseTree = function() {
- while(ptr.getParent !== null) {
- popNode();
- }
- popNode();
- };
-
- this.peek = function() {
- return ptr;
- };
-
- this.getParseTree = function() {
- return ast;
- };
-
- this.reset = function(input) {};
-
- this.startNonterminal = function(name, begin) {
- pushNode(name, begin);
- };
-
- this.endNonterminal = function(name, end) {
- popNode();
- };
-
- this.terminal = function(name, begin, end) {
- name = (name.substring(0, 1) === "'" && name.substring(name.length - 1) === "'") ? "TOKEN" : name;
- pushNode(name, begin);
- setValue(ptr, begin, end);
- popNode();
- };
-
- this.whitespace = function(begin, end) {
- var name = "WS";
- pushNode(name, begin);
- setValue(ptr, begin, end);
- popNode();
- };
-
- function setValue(node, begin, end) {
-
- var e = end - cursor;
- ptr.value = remains.substring(0, e);
- remains = remains.substring(e);
- cursor = end;
-
- var sl = line;
- var sc = lineCursor;
- var el = sl + ptr.value.split("\n").length - 1;
- var lastIdx = ptr.value.lastIndexOf("\n");
- var ec = lastIdx === -1 ? sc + ptr.value.length : ptr.value.substring(lastIdx + 1).length;
-
- line = el;
- lineCursor = ec;
-
- ptr.pos.sl = sl;
- ptr.pos.sc = sc;
- ptr.pos.el = el;
- ptr.pos.ec = ec;
- }
- };
-});
-
- ace.define('ace/mode/xquery/XQueryParser', ['require', 'exports', 'module' ], function(require, exports, module) {
- var XQueryParser = exports.XQueryParser = function XQueryParser(string, parsingEventHandler)
- {
- init(string, parsingEventHandler);
- var self = this;
-
- this.ParseException = function(b, e, s, o, x)
- {
- var
- begin = b,
- end = e,
- state = s,
- offending = o,
- expected = x;
-
- this.getBegin = function() {return begin;};
- this.getEnd = function() {return end;};
- this.getState = function() {return state;};
- this.getExpected = function() {return expected;};
- this.getOffending = function() {return offending;};
-
- this.getMessage = function()
- {
- return offending < 0 ? "lexical analysis failed" : "syntax error";
- };
- };
-
- function init(string, parsingEventHandler)
- {
- eventHandler = parsingEventHandler;
- input = string;
- size = string.length;
- reset(0, 0, 0);
- }
-
- this.getInput = function()
- {
- return input;
- };
-
- function reset(l, b, e)
- {
- b0 = b; e0 = b;
- l1 = l; b1 = b; e1 = e;
- l2 = 0;
- end = e;
- ex = -1;
- memo = {};
- eventHandler.reset(input);
- }
-
- this.getOffendingToken = function(e)
- {
- var o = e.getOffending();
- return o >= 0 ? XQueryParser.TOKEN[o] : null;
- };
-
- this.getExpectedTokenSet = function(e)
- {
- var expected;
- if (e.getExpected() < 0)
- {
- expected = XQueryParser.getTokenSet(- e.getState());
- }
- else
- {
- expected = [XQueryParser.TOKEN[e.getExpected()]];
- }
- return expected;
- };
-
- this.getErrorMessage = function(e)
- {
- var tokenSet = this.getExpectedTokenSet(e);
- var found = this.getOffendingToken(e);
- var prefix = input.substring(0, e.getBegin());
- var lines = prefix.split("\n");
- var line = lines.length;
- var column = lines[line - 1].length + 1;
- var size = e.getEnd() - e.getBegin();
- return e.getMessage()
- + (found == null ? "" : ", found " + found)
- + "\nwhile expecting "
- + (tokenSet.length == 1 ? tokenSet[0] : ("[" + tokenSet.join(", ") + "]"))
- + "\n"
- + (size == 0 || found != null ? "" : "after successfully scanning " + size + " characters beginning ")
- + "at line " + line + ", column " + column + ":\n..."
- + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64))
- + "...";
- };
-
- this.parse_XQuery = function()
- {
- eventHandler.startNonterminal("XQuery", e0);
- lookahead1W(268); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Module();
- shift(25); // EOF
- eventHandler.endNonterminal("XQuery", e0);
- };
-
- function parse_Module()
- {
- eventHandler.startNonterminal("Module", e0);
- switch (l1)
- {
- case 274: // 'xquery'
- lookahead2W(199); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- default:
- lk = l1;
- }
- if (lk == 64274 // 'xquery' 'encoding'
- || lk == 134930) // 'xquery' 'version'
- {
- parse_VersionDecl();
- }
- lookahead1W(268); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 182: // 'module'
- lookahead2W(194); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 94390: // 'module' 'namespace'
- whitespace();
- parse_LibraryModule();
- break;
- default:
- whitespace();
- parse_MainModule();
- }
- eventHandler.endNonterminal("Module", e0);
- }
-
- function parse_VersionDecl()
- {
- eventHandler.startNonterminal("VersionDecl", e0);
- shift(274); // 'xquery'
- lookahead1W(116); // S^WS | '(:' | 'encoding' | 'version'
- switch (l1)
- {
- case 125: // 'encoding'
- shift(125); // 'encoding'
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- break;
- default:
- shift(263); // 'version'
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- lookahead1W(109); // S^WS | '(:' | ';' | 'encoding'
- if (l1 == 125) // 'encoding'
- {
- shift(125); // 'encoding'
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- }
- }
- lookahead1W(28); // S^WS | '(:' | ';'
- whitespace();
- parse_Separator();
- eventHandler.endNonterminal("VersionDecl", e0);
- }
-
- function parse_LibraryModule()
- {
- eventHandler.startNonterminal("LibraryModule", e0);
- parse_ModuleDecl();
- lookahead1W(138); // S^WS | EOF | '(:' | 'declare' | 'import'
- whitespace();
- parse_Prolog();
- eventHandler.endNonterminal("LibraryModule", e0);
- }
-
- function parse_ModuleDecl()
- {
- eventHandler.startNonterminal("ModuleDecl", e0);
- shift(182); // 'module'
- lookahead1W(61); // S^WS | '(:' | 'namespace'
- shift(184); // 'namespace'
- lookahead1W(247); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NCName();
- lookahead1W(29); // S^WS | '(:' | '='
- shift(60); // '='
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- lookahead1W(28); // S^WS | '(:' | ';'
- whitespace();
- parse_Separator();
- eventHandler.endNonterminal("ModuleDecl", e0);
- }
-
- function parse_Prolog()
- {
- eventHandler.startNonterminal("Prolog", e0);
- for (;;)
- {
- lookahead1W(268); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 108: // 'declare'
- lookahead2W(213); // S^WS | EOF | '!' | '!=' | '#' | '%' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 153: // 'import'
- lookahead2W(201); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- default:
- lk = l1;
- }
- if (lk != 42604 // 'declare' 'base-uri'
- && lk != 43628 // 'declare' 'boundary-space'
- && lk != 50284 // 'declare' 'construction'
- && lk != 53356 // 'declare' 'copy-namespaces'
- && lk != 54380 // 'declare' 'decimal-format'
- && lk != 55916 // 'declare' 'default'
- && lk != 72300 // 'declare' 'ft-option'
- && lk != 93337 // 'import' 'module'
- && lk != 94316 // 'declare' 'namespace'
- && lk != 104044 // 'declare' 'ordering'
- && lk != 113772 // 'declare' 'revalidation'
- && lk != 115353) // 'import' 'schema'
- {
- break;
- }
- switch (l1)
- {
- case 108: // 'declare'
- lookahead2W(178); // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' |
- break;
- default:
- lk = l1;
- }
- if (lk == 55916) // 'declare' 'default'
- {
- lk = memoized(0, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_DefaultNamespaceDecl();
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(0, e0, lk);
- }
- }
- switch (lk)
- {
- case -1:
- whitespace();
- parse_DefaultNamespaceDecl();
- break;
- case 94316: // 'declare' 'namespace'
- whitespace();
- parse_NamespaceDecl();
- break;
- case 153: // 'import'
- whitespace();
- parse_Import();
- break;
- case 72300: // 'declare' 'ft-option'
- whitespace();
- parse_FTOptionDecl();
- break;
- default:
- whitespace();
- parse_Setter();
- }
- lookahead1W(28); // S^WS | '(:' | ';'
- whitespace();
- parse_Separator();
- }
- for (;;)
- {
- lookahead1W(268); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 108: // 'declare'
- lookahead2W(210); // S^WS | EOF | '!' | '!=' | '#' | '%' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
- break;
- default:
- lk = l1;
- }
- if (lk != 16492 // 'declare' '%'
- && lk != 48748 // 'declare' 'collection'
- && lk != 51820 // 'declare' 'context'
- && lk != 74348 // 'declare' 'function'
- && lk != 79468 // 'declare' 'index'
- && lk != 82540 // 'declare' 'integrity'
- && lk != 101996 // 'declare' 'option'
- && lk != 131692 // 'declare' 'updating'
- && lk != 134252) // 'declare' 'variable'
- {
- break;
- }
- switch (l1)
- {
- case 108: // 'declare'
- lookahead2W(175); // S^WS | '%' | '(:' | 'collection' | 'context' | 'function' | 'index' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 51820: // 'declare' 'context'
- whitespace();
- parse_ContextItemDecl();
- break;
- case 101996: // 'declare' 'option'
- whitespace();
- parse_OptionDecl();
- break;
- default:
- whitespace();
- parse_AnnotatedDecl();
- }
- lookahead1W(28); // S^WS | '(:' | ';'
- whitespace();
- parse_Separator();
- }
- eventHandler.endNonterminal("Prolog", e0);
- }
-
- function parse_Separator()
- {
- eventHandler.startNonterminal("Separator", e0);
- shift(53); // ';'
- eventHandler.endNonterminal("Separator", e0);
- }
-
- function parse_Setter()
- {
- eventHandler.startNonterminal("Setter", e0);
- switch (l1)
- {
- case 108: // 'declare'
- lookahead2W(172); // S^WS | '(:' | 'base-uri' | 'boundary-space' | 'construction' |
- break;
- default:
- lk = l1;
- }
- if (lk == 55916) // 'declare' 'default'
- {
- lk = memoized(1, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_DefaultCollationDecl();
- lk = -2;
- }
- catch (p2A)
- {
- try
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- try_EmptyOrderDecl();
- lk = -6;
- }
- catch (p6A)
- {
- lk = -9;
- }
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(1, e0, lk);
- }
- }
- switch (lk)
- {
- case 43628: // 'declare' 'boundary-space'
- parse_BoundarySpaceDecl();
- break;
- case -2:
- parse_DefaultCollationDecl();
- break;
- case 42604: // 'declare' 'base-uri'
- parse_BaseURIDecl();
- break;
- case 50284: // 'declare' 'construction'
- parse_ConstructionDecl();
- break;
- case 104044: // 'declare' 'ordering'
- parse_OrderingModeDecl();
- break;
- case -6:
- parse_EmptyOrderDecl();
- break;
- case 113772: // 'declare' 'revalidation'
- parse_RevalidationDecl();
- break;
- case 53356: // 'declare' 'copy-namespaces'
- parse_CopyNamespacesDecl();
- break;
- default:
- parse_DecimalFormatDecl();
- }
- eventHandler.endNonterminal("Setter", e0);
- }
-
- function parse_BoundarySpaceDecl()
- {
- eventHandler.startNonterminal("BoundarySpaceDecl", e0);
- shift(108); // 'declare'
- lookahead1W(33); // S^WS | '(:' | 'boundary-space'
- shift(85); // 'boundary-space'
- lookahead1W(133); // S^WS | '(:' | 'preserve' | 'strip'
- switch (l1)
- {
- case 214: // 'preserve'
- shift(214); // 'preserve'
- break;
- default:
- shift(241); // 'strip'
- }
- eventHandler.endNonterminal("BoundarySpaceDecl", e0);
- }
-
- function parse_DefaultCollationDecl()
- {
- eventHandler.startNonterminal("DefaultCollationDecl", e0);
- shift(108); // 'declare'
- lookahead1W(46); // S^WS | '(:' | 'default'
- shift(109); // 'default'
- lookahead1W(38); // S^WS | '(:' | 'collation'
- shift(94); // 'collation'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- eventHandler.endNonterminal("DefaultCollationDecl", e0);
- }
-
- function try_DefaultCollationDecl()
- {
- shiftT(108); // 'declare'
- lookahead1W(46); // S^WS | '(:' | 'default'
- shiftT(109); // 'default'
- lookahead1W(38); // S^WS | '(:' | 'collation'
- shiftT(94); // 'collation'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shiftT(7); // URILiteral
- }
-
- function parse_BaseURIDecl()
- {
- eventHandler.startNonterminal("BaseURIDecl", e0);
- shift(108); // 'declare'
- lookahead1W(32); // S^WS | '(:' | 'base-uri'
- shift(83); // 'base-uri'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- eventHandler.endNonterminal("BaseURIDecl", e0);
- }
-
- function parse_ConstructionDecl()
- {
- eventHandler.startNonterminal("ConstructionDecl", e0);
- shift(108); // 'declare'
- lookahead1W(41); // S^WS | '(:' | 'construction'
- shift(98); // 'construction'
- lookahead1W(133); // S^WS | '(:' | 'preserve' | 'strip'
- switch (l1)
- {
- case 241: // 'strip'
- shift(241); // 'strip'
- break;
- default:
- shift(214); // 'preserve'
- }
- eventHandler.endNonterminal("ConstructionDecl", e0);
- }
-
- function parse_OrderingModeDecl()
- {
- eventHandler.startNonterminal("OrderingModeDecl", e0);
- shift(108); // 'declare'
- lookahead1W(68); // S^WS | '(:' | 'ordering'
- shift(203); // 'ordering'
- lookahead1W(131); // S^WS | '(:' | 'ordered' | 'unordered'
- switch (l1)
- {
- case 202: // 'ordered'
- shift(202); // 'ordered'
- break;
- default:
- shift(256); // 'unordered'
- }
- eventHandler.endNonterminal("OrderingModeDecl", e0);
- }
-
- function parse_EmptyOrderDecl()
- {
- eventHandler.startNonterminal("EmptyOrderDecl", e0);
- shift(108); // 'declare'
- lookahead1W(46); // S^WS | '(:' | 'default'
- shift(109); // 'default'
- lookahead1W(67); // S^WS | '(:' | 'order'
- shift(201); // 'order'
- lookahead1W(49); // S^WS | '(:' | 'empty'
- shift(123); // 'empty'
- lookahead1W(121); // S^WS | '(:' | 'greatest' | 'least'
- switch (l1)
- {
- case 147: // 'greatest'
- shift(147); // 'greatest'
- break;
- default:
- shift(173); // 'least'
- }
- eventHandler.endNonterminal("EmptyOrderDecl", e0);
- }
-
- function try_EmptyOrderDecl()
- {
- shiftT(108); // 'declare'
- lookahead1W(46); // S^WS | '(:' | 'default'
- shiftT(109); // 'default'
- lookahead1W(67); // S^WS | '(:' | 'order'
- shiftT(201); // 'order'
- lookahead1W(49); // S^WS | '(:' | 'empty'
- shiftT(123); // 'empty'
- lookahead1W(121); // S^WS | '(:' | 'greatest' | 'least'
- switch (l1)
- {
- case 147: // 'greatest'
- shiftT(147); // 'greatest'
- break;
- default:
- shiftT(173); // 'least'
- }
- }
-
- function parse_CopyNamespacesDecl()
- {
- eventHandler.startNonterminal("CopyNamespacesDecl", e0);
- shift(108); // 'declare'
- lookahead1W(44); // S^WS | '(:' | 'copy-namespaces'
- shift(104); // 'copy-namespaces'
- lookahead1W(128); // S^WS | '(:' | 'no-preserve' | 'preserve'
- whitespace();
- parse_PreserveMode();
- lookahead1W(25); // S^WS | '(:' | ','
- shift(41); // ','
- lookahead1W(123); // S^WS | '(:' | 'inherit' | 'no-inherit'
- whitespace();
- parse_InheritMode();
- eventHandler.endNonterminal("CopyNamespacesDecl", e0);
- }
-
- function parse_PreserveMode()
- {
- eventHandler.startNonterminal("PreserveMode", e0);
- switch (l1)
- {
- case 214: // 'preserve'
- shift(214); // 'preserve'
- break;
- default:
- shift(190); // 'no-preserve'
- }
- eventHandler.endNonterminal("PreserveMode", e0);
- }
-
- function parse_InheritMode()
- {
- eventHandler.startNonterminal("InheritMode", e0);
- switch (l1)
- {
- case 157: // 'inherit'
- shift(157); // 'inherit'
- break;
- default:
- shift(189); // 'no-inherit'
- }
- eventHandler.endNonterminal("InheritMode", e0);
- }
-
- function parse_DecimalFormatDecl()
- {
- eventHandler.startNonterminal("DecimalFormatDecl", e0);
- shift(108); // 'declare'
- lookahead1W(114); // S^WS | '(:' | 'decimal-format' | 'default'
- switch (l1)
- {
- case 106: // 'decimal-format'
- shift(106); // 'decimal-format'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- break;
- default:
- shift(109); // 'default'
- lookahead1W(45); // S^WS | '(:' | 'decimal-format'
- shift(106); // 'decimal-format'
- }
- for (;;)
- {
- lookahead1W(180); // S^WS | '(:' | ';' | 'NaN' | 'decimal-separator' | 'digit' |
- if (l1 == 53) // ';'
- {
- break;
- }
- whitespace();
- parse_DFPropertyName();
- lookahead1W(29); // S^WS | '(:' | '='
- shift(60); // '='
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- }
- eventHandler.endNonterminal("DecimalFormatDecl", e0);
- }
-
- function parse_DFPropertyName()
- {
- eventHandler.startNonterminal("DFPropertyName", e0);
- switch (l1)
- {
- case 107: // 'decimal-separator'
- shift(107); // 'decimal-separator'
- break;
- case 149: // 'grouping-separator'
- shift(149); // 'grouping-separator'
- break;
- case 156: // 'infinity'
- shift(156); // 'infinity'
- break;
- case 179: // 'minus-sign'
- shift(179); // 'minus-sign'
- break;
- case 67: // 'NaN'
- shift(67); // 'NaN'
- break;
- case 209: // 'percent'
- shift(209); // 'percent'
- break;
- case 208: // 'per-mille'
- shift(208); // 'per-mille'
- break;
- case 275: // 'zero-digit'
- shift(275); // 'zero-digit'
- break;
- case 116: // 'digit'
- shift(116); // 'digit'
- break;
- default:
- shift(207); // 'pattern-separator'
- }
- eventHandler.endNonterminal("DFPropertyName", e0);
- }
-
- function parse_Import()
- {
- eventHandler.startNonterminal("Import", e0);
- switch (l1)
- {
- case 153: // 'import'
- lookahead2W(126); // S^WS | '(:' | 'module' | 'schema'
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 115353: // 'import' 'schema'
- parse_SchemaImport();
- break;
- default:
- parse_ModuleImport();
- }
- eventHandler.endNonterminal("Import", e0);
- }
-
- function parse_SchemaImport()
- {
- eventHandler.startNonterminal("SchemaImport", e0);
- shift(153); // 'import'
- lookahead1W(73); // S^WS | '(:' | 'schema'
- shift(225); // 'schema'
- lookahead1W(137); // URILiteral | S^WS | '(:' | 'default' | 'namespace'
- if (l1 != 7) // URILiteral
- {
- whitespace();
- parse_SchemaPrefix();
- }
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- lookahead1W(108); // S^WS | '(:' | ';' | 'at'
- if (l1 == 81) // 'at'
- {
- shift(81); // 'at'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- for (;;)
- {
- lookahead1W(103); // S^WS | '(:' | ',' | ';'
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- }
- }
- eventHandler.endNonterminal("SchemaImport", e0);
- }
-
- function parse_SchemaPrefix()
- {
- eventHandler.startNonterminal("SchemaPrefix", e0);
- switch (l1)
- {
- case 184: // 'namespace'
- shift(184); // 'namespace'
- lookahead1W(247); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NCName();
- lookahead1W(29); // S^WS | '(:' | '='
- shift(60); // '='
- break;
- default:
- shift(109); // 'default'
- lookahead1W(47); // S^WS | '(:' | 'element'
- shift(121); // 'element'
- lookahead1W(61); // S^WS | '(:' | 'namespace'
- shift(184); // 'namespace'
- }
- eventHandler.endNonterminal("SchemaPrefix", e0);
- }
-
- function parse_ModuleImport()
- {
- eventHandler.startNonterminal("ModuleImport", e0);
- shift(153); // 'import'
- lookahead1W(60); // S^WS | '(:' | 'module'
- shift(182); // 'module'
- lookahead1W(90); // URILiteral | S^WS | '(:' | 'namespace'
- if (l1 == 184) // 'namespace'
- {
- shift(184); // 'namespace'
- lookahead1W(247); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NCName();
- lookahead1W(29); // S^WS | '(:' | '='
- shift(60); // '='
- }
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- lookahead1W(108); // S^WS | '(:' | ';' | 'at'
- if (l1 == 81) // 'at'
- {
- shift(81); // 'at'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- for (;;)
- {
- lookahead1W(103); // S^WS | '(:' | ',' | ';'
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- }
- }
- eventHandler.endNonterminal("ModuleImport", e0);
- }
-
- function parse_NamespaceDecl()
- {
- eventHandler.startNonterminal("NamespaceDecl", e0);
- shift(108); // 'declare'
- lookahead1W(61); // S^WS | '(:' | 'namespace'
- shift(184); // 'namespace'
- lookahead1W(247); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NCName();
- lookahead1W(29); // S^WS | '(:' | '='
- shift(60); // '='
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- eventHandler.endNonterminal("NamespaceDecl", e0);
- }
-
- function parse_DefaultNamespaceDecl()
- {
- eventHandler.startNonterminal("DefaultNamespaceDecl", e0);
- shift(108); // 'declare'
- lookahead1W(46); // S^WS | '(:' | 'default'
- shift(109); // 'default'
- lookahead1W(115); // S^WS | '(:' | 'element' | 'function'
- switch (l1)
- {
- case 121: // 'element'
- shift(121); // 'element'
- break;
- default:
- shift(145); // 'function'
- }
- lookahead1W(61); // S^WS | '(:' | 'namespace'
- shift(184); // 'namespace'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- eventHandler.endNonterminal("DefaultNamespaceDecl", e0);
- }
-
- function try_DefaultNamespaceDecl()
- {
- shiftT(108); // 'declare'
- lookahead1W(46); // S^WS | '(:' | 'default'
- shiftT(109); // 'default'
- lookahead1W(115); // S^WS | '(:' | 'element' | 'function'
- switch (l1)
- {
- case 121: // 'element'
- shiftT(121); // 'element'
- break;
- default:
- shiftT(145); // 'function'
- }
- lookahead1W(61); // S^WS | '(:' | 'namespace'
- shiftT(184); // 'namespace'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shiftT(7); // URILiteral
- }
-
- function parse_FTOptionDecl()
- {
- eventHandler.startNonterminal("FTOptionDecl", e0);
- shift(108); // 'declare'
- lookahead1W(52); // S^WS | '(:' | 'ft-option'
- shift(141); // 'ft-option'
- lookahead1W(81); // S^WS | '(:' | 'using'
- whitespace();
- parse_FTMatchOptions();
- eventHandler.endNonterminal("FTOptionDecl", e0);
- }
-
- function parse_AnnotatedDecl()
- {
- eventHandler.startNonterminal("AnnotatedDecl", e0);
- shift(108); // 'declare'
- for (;;)
- {
- lookahead1W(170); // S^WS | '%' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |
- if (l1 != 32 // '%'
- && l1 != 257) // 'updating'
- {
- break;
- }
- switch (l1)
- {
- case 257: // 'updating'
- whitespace();
- parse_CompatibilityAnnotation();
- break;
- default:
- whitespace();
- parse_Annotation();
- }
- }
- switch (l1)
- {
- case 262: // 'variable'
- whitespace();
- parse_VarDecl();
- break;
- case 145: // 'function'
- whitespace();
- parse_FunctionDecl();
- break;
- case 95: // 'collection'
- whitespace();
- parse_CollectionDecl();
- break;
- case 155: // 'index'
- whitespace();
- parse_IndexDecl();
- break;
- default:
- whitespace();
- parse_ICDecl();
- }
- eventHandler.endNonterminal("AnnotatedDecl", e0);
- }
-
- function parse_CompatibilityAnnotation()
- {
- eventHandler.startNonterminal("CompatibilityAnnotation", e0);
- shift(257); // 'updating'
- eventHandler.endNonterminal("CompatibilityAnnotation", e0);
- }
-
- function parse_Annotation()
- {
- eventHandler.startNonterminal("Annotation", e0);
- shift(32); // '%'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(171); // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |
- if (l1 == 34) // '('
- {
- shift(34); // '('
- lookahead1W(154); // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'
- whitespace();
- parse_Literal();
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(154); // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'
- whitespace();
- parse_Literal();
- }
- shift(37); // ')'
- }
- eventHandler.endNonterminal("Annotation", e0);
- }
-
- function try_Annotation()
- {
- shiftT(32); // '%'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_EQName();
- lookahead1W(171); // S^WS | '%' | '(' | '(:' | 'collection' | 'function' | 'index' | 'integrity' |
- if (l1 == 34) // '('
- {
- shiftT(34); // '('
- lookahead1W(154); // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'
- try_Literal();
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(154); // IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral | S^WS | '(:'
- try_Literal();
- }
- shiftT(37); // ')'
- }
- }
-
- function parse_VarDecl()
- {
- eventHandler.startNonterminal("VarDecl", e0);
- shift(262); // 'variable'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(147); // S^WS | '(:' | ':=' | 'as' | 'external'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(106); // S^WS | '(:' | ':=' | 'external'
- switch (l1)
- {
- case 52: // ':='
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_VarValue();
- break;
- default:
- shift(133); // 'external'
- lookahead1W(104); // S^WS | '(:' | ':=' | ';'
- if (l1 == 52) // ':='
- {
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_VarDefaultValue();
- }
- }
- eventHandler.endNonterminal("VarDecl", e0);
- }
-
- function parse_VarValue()
- {
- eventHandler.startNonterminal("VarValue", e0);
- parse_ExprSingle();
- eventHandler.endNonterminal("VarValue", e0);
- }
-
- function parse_VarDefaultValue()
- {
- eventHandler.startNonterminal("VarDefaultValue", e0);
- parse_ExprSingle();
- eventHandler.endNonterminal("VarDefaultValue", e0);
- }
-
- function parse_ContextItemDecl()
- {
- eventHandler.startNonterminal("ContextItemDecl", e0);
- shift(108); // 'declare'
- lookahead1W(43); // S^WS | '(:' | 'context'
- shift(101); // 'context'
- lookahead1W(55); // S^WS | '(:' | 'item'
- shift(165); // 'item'
- lookahead1W(147); // S^WS | '(:' | ':=' | 'as' | 'external'
- if (l1 == 79) // 'as'
- {
- shift(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_ItemType();
- }
- lookahead1W(106); // S^WS | '(:' | ':=' | 'external'
- switch (l1)
- {
- case 52: // ':='
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_VarValue();
- break;
- default:
- shift(133); // 'external'
- lookahead1W(104); // S^WS | '(:' | ':=' | ';'
- if (l1 == 52) // ':='
- {
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_VarDefaultValue();
- }
- }
- eventHandler.endNonterminal("ContextItemDecl", e0);
- }
-
- function parse_ParamList()
- {
- eventHandler.startNonterminal("ParamList", e0);
- parse_Param();
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- whitespace();
- parse_Param();
- }
- eventHandler.endNonterminal("ParamList", e0);
- }
-
- function try_ParamList()
- {
- try_Param();
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- try_Param();
- }
- }
-
- function parse_Param()
- {
- eventHandler.startNonterminal("Param", e0);
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(143); // S^WS | '(:' | ')' | ',' | 'as'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- eventHandler.endNonterminal("Param", e0);
- }
-
- function try_Param()
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_EQName();
- lookahead1W(143); // S^WS | '(:' | ')' | ',' | 'as'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- }
-
- function parse_FunctionBody()
- {
- eventHandler.startNonterminal("FunctionBody", e0);
- parse_EnclosedExpr();
- eventHandler.endNonterminal("FunctionBody", e0);
- }
-
- function try_FunctionBody()
- {
- try_EnclosedExpr();
- }
-
- function parse_EnclosedExpr()
- {
- eventHandler.startNonterminal("EnclosedExpr", e0);
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- eventHandler.endNonterminal("EnclosedExpr", e0);
- }
-
- function try_EnclosedExpr()
- {
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- }
-
- function parse_OptionDecl()
- {
- eventHandler.startNonterminal("OptionDecl", e0);
- shift(108); // 'declare'
- lookahead1W(66); // S^WS | '(:' | 'option'
- shift(199); // 'option'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- eventHandler.endNonterminal("OptionDecl", e0);
- }
-
- function parse_Expr()
- {
- eventHandler.startNonterminal("Expr", e0);
- parse_ExprSingle();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- }
- eventHandler.endNonterminal("Expr", e0);
- }
-
- function try_Expr()
- {
- try_ExprSingle();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
- }
-
- function parse_FLWORExpr()
- {
- eventHandler.startNonterminal("FLWORExpr", e0);
- parse_InitialClause();
- for (;;)
- {
- lookahead1W(173); // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |
- if (l1 == 220) // 'return'
- {
- break;
- }
- whitespace();
- parse_IntermediateClause();
- }
- whitespace();
- parse_ReturnClause();
- eventHandler.endNonterminal("FLWORExpr", e0);
- }
-
- function try_FLWORExpr()
- {
- try_InitialClause();
- for (;;)
- {
- lookahead1W(173); // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |
- if (l1 == 220) // 'return'
- {
- break;
- }
- try_IntermediateClause();
- }
- try_ReturnClause();
- }
-
- function parse_InitialClause()
- {
- eventHandler.startNonterminal("InitialClause", e0);
- switch (l1)
- {
- case 137: // 'for'
- lookahead2W(141); // S^WS | '$' | '(:' | 'sliding' | 'tumbling'
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 16009: // 'for' '$'
- parse_ForClause();
- break;
- case 174: // 'let'
- parse_LetClause();
- break;
- default:
- parse_WindowClause();
- }
- eventHandler.endNonterminal("InitialClause", e0);
- }
-
- function try_InitialClause()
- {
- switch (l1)
- {
- case 137: // 'for'
- lookahead2W(141); // S^WS | '$' | '(:' | 'sliding' | 'tumbling'
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 16009: // 'for' '$'
- try_ForClause();
- break;
- case 174: // 'let'
- try_LetClause();
- break;
- default:
- try_WindowClause();
- }
- }
-
- function parse_IntermediateClause()
- {
- eventHandler.startNonterminal("IntermediateClause", e0);
- switch (l1)
- {
- case 137: // 'for'
- case 174: // 'let'
- parse_InitialClause();
- break;
- case 266: // 'where'
- parse_WhereClause();
- break;
- case 148: // 'group'
- parse_GroupByClause();
- break;
- case 105: // 'count'
- parse_CountClause();
- break;
- default:
- parse_OrderByClause();
- }
- eventHandler.endNonterminal("IntermediateClause", e0);
- }
-
- function try_IntermediateClause()
- {
- switch (l1)
- {
- case 137: // 'for'
- case 174: // 'let'
- try_InitialClause();
- break;
- case 266: // 'where'
- try_WhereClause();
- break;
- case 148: // 'group'
- try_GroupByClause();
- break;
- case 105: // 'count'
- try_CountClause();
- break;
- default:
- try_OrderByClause();
- }
- }
-
- function parse_ForClause()
- {
- eventHandler.startNonterminal("ForClause", e0);
- shift(137); // 'for'
- lookahead1W(21); // S^WS | '$' | '(:'
- whitespace();
- parse_ForBinding();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- whitespace();
- parse_ForBinding();
- }
- eventHandler.endNonterminal("ForClause", e0);
- }
-
- function try_ForClause()
- {
- shiftT(137); // 'for'
- lookahead1W(21); // S^WS | '$' | '(:'
- try_ForBinding();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- try_ForBinding();
- }
- }
-
- function parse_ForBinding()
- {
- eventHandler.startNonterminal("ForBinding", e0);
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(164); // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(158); // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score'
- if (l1 == 72) // 'allowing'
- {
- whitespace();
- parse_AllowingEmpty();
- }
- lookahead1W(150); // S^WS | '(:' | 'at' | 'in' | 'score'
- if (l1 == 81) // 'at'
- {
- whitespace();
- parse_PositionalVar();
- }
- lookahead1W(122); // S^WS | '(:' | 'in' | 'score'
- if (l1 == 228) // 'score'
- {
- whitespace();
- parse_FTScoreVar();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shift(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("ForBinding", e0);
- }
-
- function try_ForBinding()
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(164); // S^WS | '(:' | 'allowing' | 'as' | 'at' | 'in' | 'score'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- lookahead1W(158); // S^WS | '(:' | 'allowing' | 'at' | 'in' | 'score'
- if (l1 == 72) // 'allowing'
- {
- try_AllowingEmpty();
- }
- lookahead1W(150); // S^WS | '(:' | 'at' | 'in' | 'score'
- if (l1 == 81) // 'at'
- {
- try_PositionalVar();
- }
- lookahead1W(122); // S^WS | '(:' | 'in' | 'score'
- if (l1 == 228) // 'score'
- {
- try_FTScoreVar();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shiftT(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_AllowingEmpty()
- {
- eventHandler.startNonterminal("AllowingEmpty", e0);
- shift(72); // 'allowing'
- lookahead1W(49); // S^WS | '(:' | 'empty'
- shift(123); // 'empty'
- eventHandler.endNonterminal("AllowingEmpty", e0);
- }
-
- function try_AllowingEmpty()
- {
- shiftT(72); // 'allowing'
- lookahead1W(49); // S^WS | '(:' | 'empty'
- shiftT(123); // 'empty'
- }
-
- function parse_PositionalVar()
- {
- eventHandler.startNonterminal("PositionalVar", e0);
- shift(81); // 'at'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- eventHandler.endNonterminal("PositionalVar", e0);
- }
-
- function try_PositionalVar()
- {
- shiftT(81); // 'at'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- }
-
- function parse_FTScoreVar()
- {
- eventHandler.startNonterminal("FTScoreVar", e0);
- shift(228); // 'score'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- eventHandler.endNonterminal("FTScoreVar", e0);
- }
-
- function try_FTScoreVar()
- {
- shiftT(228); // 'score'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- }
-
- function parse_LetClause()
- {
- eventHandler.startNonterminal("LetClause", e0);
- shift(174); // 'let'
- lookahead1W(96); // S^WS | '$' | '(:' | 'score'
- whitespace();
- parse_LetBinding();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(96); // S^WS | '$' | '(:' | 'score'
- whitespace();
- parse_LetBinding();
- }
- eventHandler.endNonterminal("LetClause", e0);
- }
-
- function try_LetClause()
- {
- shiftT(174); // 'let'
- lookahead1W(96); // S^WS | '$' | '(:' | 'score'
- try_LetBinding();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(96); // S^WS | '$' | '(:' | 'score'
- try_LetBinding();
- }
- }
-
- function parse_LetBinding()
- {
- eventHandler.startNonterminal("LetBinding", e0);
- switch (l1)
- {
- case 31: // '$'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(105); // S^WS | '(:' | ':=' | 'as'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- break;
- default:
- parse_FTScoreVar();
- }
- lookahead1W(27); // S^WS | '(:' | ':='
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("LetBinding", e0);
- }
-
- function try_LetBinding()
- {
- switch (l1)
- {
- case 31: // '$'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(105); // S^WS | '(:' | ':=' | 'as'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- break;
- default:
- try_FTScoreVar();
- }
- lookahead1W(27); // S^WS | '(:' | ':='
- shiftT(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_WindowClause()
- {
- eventHandler.startNonterminal("WindowClause", e0);
- shift(137); // 'for'
- lookahead1W(135); // S^WS | '(:' | 'sliding' | 'tumbling'
- switch (l1)
- {
- case 251: // 'tumbling'
- whitespace();
- parse_TumblingWindowClause();
- break;
- default:
- whitespace();
- parse_SlidingWindowClause();
- }
- eventHandler.endNonterminal("WindowClause", e0);
- }
-
- function try_WindowClause()
- {
- shiftT(137); // 'for'
- lookahead1W(135); // S^WS | '(:' | 'sliding' | 'tumbling'
- switch (l1)
- {
- case 251: // 'tumbling'
- try_TumblingWindowClause();
- break;
- default:
- try_SlidingWindowClause();
- }
- }
-
- function parse_TumblingWindowClause()
- {
- eventHandler.startNonterminal("TumblingWindowClause", e0);
- shift(251); // 'tumbling'
- lookahead1W(85); // S^WS | '(:' | 'window'
- shift(269); // 'window'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(110); // S^WS | '(:' | 'as' | 'in'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shift(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- whitespace();
- parse_WindowStartCondition();
- if (l1 == 126 // 'end'
- || l1 == 198) // 'only'
- {
- whitespace();
- parse_WindowEndCondition();
- }
- eventHandler.endNonterminal("TumblingWindowClause", e0);
- }
-
- function try_TumblingWindowClause()
- {
- shiftT(251); // 'tumbling'
- lookahead1W(85); // S^WS | '(:' | 'window'
- shiftT(269); // 'window'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(110); // S^WS | '(:' | 'as' | 'in'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shiftT(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- try_WindowStartCondition();
- if (l1 == 126 // 'end'
- || l1 == 198) // 'only'
- {
- try_WindowEndCondition();
- }
- }
-
- function parse_SlidingWindowClause()
- {
- eventHandler.startNonterminal("SlidingWindowClause", e0);
- shift(234); // 'sliding'
- lookahead1W(85); // S^WS | '(:' | 'window'
- shift(269); // 'window'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(110); // S^WS | '(:' | 'as' | 'in'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shift(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- whitespace();
- parse_WindowStartCondition();
- whitespace();
- parse_WindowEndCondition();
- eventHandler.endNonterminal("SlidingWindowClause", e0);
- }
-
- function try_SlidingWindowClause()
- {
- shiftT(234); // 'sliding'
- lookahead1W(85); // S^WS | '(:' | 'window'
- shiftT(269); // 'window'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(110); // S^WS | '(:' | 'as' | 'in'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shiftT(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- try_WindowStartCondition();
- try_WindowEndCondition();
- }
-
- function parse_WindowStartCondition()
- {
- eventHandler.startNonterminal("WindowStartCondition", e0);
- shift(237); // 'start'
- lookahead1W(163); // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'
- whitespace();
- parse_WindowVars();
- lookahead1W(83); // S^WS | '(:' | 'when'
- shift(265); // 'when'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("WindowStartCondition", e0);
- }
-
- function try_WindowStartCondition()
- {
- shiftT(237); // 'start'
- lookahead1W(163); // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'
- try_WindowVars();
- lookahead1W(83); // S^WS | '(:' | 'when'
- shiftT(265); // 'when'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_WindowEndCondition()
- {
- eventHandler.startNonterminal("WindowEndCondition", e0);
- if (l1 == 198) // 'only'
- {
- shift(198); // 'only'
- }
- lookahead1W(50); // S^WS | '(:' | 'end'
- shift(126); // 'end'
- lookahead1W(163); // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'
- whitespace();
- parse_WindowVars();
- lookahead1W(83); // S^WS | '(:' | 'when'
- shift(265); // 'when'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("WindowEndCondition", e0);
- }
-
- function try_WindowEndCondition()
- {
- if (l1 == 198) // 'only'
- {
- shiftT(198); // 'only'
- }
- lookahead1W(50); // S^WS | '(:' | 'end'
- shiftT(126); // 'end'
- lookahead1W(163); // S^WS | '$' | '(:' | 'at' | 'next' | 'previous' | 'when'
- try_WindowVars();
- lookahead1W(83); // S^WS | '(:' | 'when'
- shiftT(265); // 'when'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_WindowVars()
- {
- eventHandler.startNonterminal("WindowVars", e0);
- if (l1 == 31) // '$'
- {
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_CurrentItem();
- }
- lookahead1W(159); // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when'
- if (l1 == 81) // 'at'
- {
- whitespace();
- parse_PositionalVar();
- }
- lookahead1W(153); // S^WS | '(:' | 'next' | 'previous' | 'when'
- if (l1 == 215) // 'previous'
- {
- shift(215); // 'previous'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_PreviousItem();
- }
- lookahead1W(127); // S^WS | '(:' | 'next' | 'when'
- if (l1 == 187) // 'next'
- {
- shift(187); // 'next'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NextItem();
- }
- eventHandler.endNonterminal("WindowVars", e0);
- }
-
- function try_WindowVars()
- {
- if (l1 == 31) // '$'
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_CurrentItem();
- }
- lookahead1W(159); // S^WS | '(:' | 'at' | 'next' | 'previous' | 'when'
- if (l1 == 81) // 'at'
- {
- try_PositionalVar();
- }
- lookahead1W(153); // S^WS | '(:' | 'next' | 'previous' | 'when'
- if (l1 == 215) // 'previous'
- {
- shiftT(215); // 'previous'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_PreviousItem();
- }
- lookahead1W(127); // S^WS | '(:' | 'next' | 'when'
- if (l1 == 187) // 'next'
- {
- shiftT(187); // 'next'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_NextItem();
- }
- }
-
- function parse_CurrentItem()
- {
- eventHandler.startNonterminal("CurrentItem", e0);
- parse_EQName();
- eventHandler.endNonterminal("CurrentItem", e0);
- }
-
- function try_CurrentItem()
- {
- try_EQName();
- }
-
- function parse_PreviousItem()
- {
- eventHandler.startNonterminal("PreviousItem", e0);
- parse_EQName();
- eventHandler.endNonterminal("PreviousItem", e0);
- }
-
- function try_PreviousItem()
- {
- try_EQName();
- }
-
- function parse_NextItem()
- {
- eventHandler.startNonterminal("NextItem", e0);
- parse_EQName();
- eventHandler.endNonterminal("NextItem", e0);
- }
-
- function try_NextItem()
- {
- try_EQName();
- }
-
- function parse_CountClause()
- {
- eventHandler.startNonterminal("CountClause", e0);
- shift(105); // 'count'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- eventHandler.endNonterminal("CountClause", e0);
- }
-
- function try_CountClause()
- {
- shiftT(105); // 'count'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- }
-
- function parse_WhereClause()
- {
- eventHandler.startNonterminal("WhereClause", e0);
- shift(266); // 'where'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("WhereClause", e0);
- }
-
- function try_WhereClause()
- {
- shiftT(266); // 'where'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_GroupByClause()
- {
- eventHandler.startNonterminal("GroupByClause", e0);
- shift(148); // 'group'
- lookahead1W(34); // S^WS | '(:' | 'by'
- shift(87); // 'by'
- lookahead1W(21); // S^WS | '$' | '(:'
- whitespace();
- parse_GroupingSpecList();
- eventHandler.endNonterminal("GroupByClause", e0);
- }
-
- function try_GroupByClause()
- {
- shiftT(148); // 'group'
- lookahead1W(34); // S^WS | '(:' | 'by'
- shiftT(87); // 'by'
- lookahead1W(21); // S^WS | '$' | '(:'
- try_GroupingSpecList();
- }
-
- function parse_GroupingSpecList()
- {
- eventHandler.startNonterminal("GroupingSpecList", e0);
- parse_GroupingSpec();
- for (;;)
- {
- lookahead1W(176); // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- whitespace();
- parse_GroupingSpec();
- }
- eventHandler.endNonterminal("GroupingSpecList", e0);
- }
-
- function try_GroupingSpecList()
- {
- try_GroupingSpec();
- for (;;)
- {
- lookahead1W(176); // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- try_GroupingSpec();
- }
- }
-
- function parse_GroupingSpec()
- {
- eventHandler.startNonterminal("GroupingSpec", e0);
- parse_GroupingVariable();
- lookahead1W(182); // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |
- if (l1 == 52 // ':='
- || l1 == 79) // 'as'
- {
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(27); // S^WS | '(:' | ':='
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- }
- if (l1 == 94) // 'collation'
- {
- shift(94); // 'collation'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- }
- eventHandler.endNonterminal("GroupingSpec", e0);
- }
-
- function try_GroupingSpec()
- {
- try_GroupingVariable();
- lookahead1W(182); // S^WS | '(:' | ',' | ':=' | 'as' | 'collation' | 'count' | 'for' | 'group' |
- if (l1 == 52 // ':='
- || l1 == 79) // 'as'
- {
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- lookahead1W(27); // S^WS | '(:' | ':='
- shiftT(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
- if (l1 == 94) // 'collation'
- {
- shiftT(94); // 'collation'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shiftT(7); // URILiteral
- }
- }
-
- function parse_GroupingVariable()
- {
- eventHandler.startNonterminal("GroupingVariable", e0);
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- eventHandler.endNonterminal("GroupingVariable", e0);
- }
-
- function try_GroupingVariable()
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- }
-
- function parse_OrderByClause()
- {
- eventHandler.startNonterminal("OrderByClause", e0);
- switch (l1)
- {
- case 201: // 'order'
- shift(201); // 'order'
- lookahead1W(34); // S^WS | '(:' | 'by'
- shift(87); // 'by'
- break;
- default:
- shift(236); // 'stable'
- lookahead1W(67); // S^WS | '(:' | 'order'
- shift(201); // 'order'
- lookahead1W(34); // S^WS | '(:' | 'by'
- shift(87); // 'by'
- }
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_OrderSpecList();
- eventHandler.endNonterminal("OrderByClause", e0);
- }
-
- function try_OrderByClause()
- {
- switch (l1)
- {
- case 201: // 'order'
- shiftT(201); // 'order'
- lookahead1W(34); // S^WS | '(:' | 'by'
- shiftT(87); // 'by'
- break;
- default:
- shiftT(236); // 'stable'
- lookahead1W(67); // S^WS | '(:' | 'order'
- shiftT(201); // 'order'
- lookahead1W(34); // S^WS | '(:' | 'by'
- shiftT(87); // 'by'
- }
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_OrderSpecList();
- }
-
- function parse_OrderSpecList()
- {
- eventHandler.startNonterminal("OrderSpecList", e0);
- parse_OrderSpec();
- for (;;)
- {
- lookahead1W(176); // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_OrderSpec();
- }
- eventHandler.endNonterminal("OrderSpecList", e0);
- }
-
- function try_OrderSpecList()
- {
- try_OrderSpec();
- for (;;)
- {
- lookahead1W(176); // S^WS | '(:' | ',' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' |
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_OrderSpec();
- }
- }
-
- function parse_OrderSpec()
- {
- eventHandler.startNonterminal("OrderSpec", e0);
- parse_ExprSingle();
- whitespace();
- parse_OrderModifier();
- eventHandler.endNonterminal("OrderSpec", e0);
- }
-
- function try_OrderSpec()
- {
- try_ExprSingle();
- try_OrderModifier();
- }
-
- function parse_OrderModifier()
- {
- eventHandler.startNonterminal("OrderModifier", e0);
- if (l1 == 80 // 'ascending'
- || l1 == 113) // 'descending'
- {
- switch (l1)
- {
- case 80: // 'ascending'
- shift(80); // 'ascending'
- break;
- default:
- shift(113); // 'descending'
- }
- }
- lookahead1W(179); // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' |
- if (l1 == 123) // 'empty'
- {
- shift(123); // 'empty'
- lookahead1W(121); // S^WS | '(:' | 'greatest' | 'least'
- switch (l1)
- {
- case 147: // 'greatest'
- shift(147); // 'greatest'
- break;
- default:
- shift(173); // 'least'
- }
- }
- lookahead1W(177); // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' |
- if (l1 == 94) // 'collation'
- {
- shift(94); // 'collation'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- }
- eventHandler.endNonterminal("OrderModifier", e0);
- }
-
- function try_OrderModifier()
- {
- if (l1 == 80 // 'ascending'
- || l1 == 113) // 'descending'
- {
- switch (l1)
- {
- case 80: // 'ascending'
- shiftT(80); // 'ascending'
- break;
- default:
- shiftT(113); // 'descending'
- }
- }
- lookahead1W(179); // S^WS | '(:' | ',' | 'collation' | 'count' | 'empty' | 'for' | 'group' | 'let' |
- if (l1 == 123) // 'empty'
- {
- shiftT(123); // 'empty'
- lookahead1W(121); // S^WS | '(:' | 'greatest' | 'least'
- switch (l1)
- {
- case 147: // 'greatest'
- shiftT(147); // 'greatest'
- break;
- default:
- shiftT(173); // 'least'
- }
- }
- lookahead1W(177); // S^WS | '(:' | ',' | 'collation' | 'count' | 'for' | 'group' | 'let' | 'order' |
- if (l1 == 94) // 'collation'
- {
- shiftT(94); // 'collation'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shiftT(7); // URILiteral
- }
- }
-
- function parse_ReturnClause()
- {
- eventHandler.startNonterminal("ReturnClause", e0);
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("ReturnClause", e0);
- }
-
- function try_ReturnClause()
- {
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_QuantifiedExpr()
- {
- eventHandler.startNonterminal("QuantifiedExpr", e0);
- switch (l1)
- {
- case 235: // 'some'
- shift(235); // 'some'
- break;
- default:
- shift(129); // 'every'
- }
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(110); // S^WS | '(:' | 'as' | 'in'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shift(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(110); // S^WS | '(:' | 'as' | 'in'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shift(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- }
- shift(224); // 'satisfies'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("QuantifiedExpr", e0);
- }
-
- function try_QuantifiedExpr()
- {
- switch (l1)
- {
- case 235: // 'some'
- shiftT(235); // 'some'
- break;
- default:
- shiftT(129); // 'every'
- }
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(110); // S^WS | '(:' | 'as' | 'in'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shiftT(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(110); // S^WS | '(:' | 'as' | 'in'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- lookahead1W(53); // S^WS | '(:' | 'in'
- shiftT(154); // 'in'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
- shiftT(224); // 'satisfies'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_SwitchExpr()
- {
- eventHandler.startNonterminal("SwitchExpr", e0);
- shift(243); // 'switch'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(37); // ')'
- for (;;)
- {
- lookahead1W(35); // S^WS | '(:' | 'case'
- whitespace();
- parse_SwitchCaseClause();
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shift(109); // 'default'
- lookahead1W(70); // S^WS | '(:' | 'return'
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("SwitchExpr", e0);
- }
-
- function try_SwitchExpr()
- {
- shiftT(243); // 'switch'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(37); // ')'
- for (;;)
- {
- lookahead1W(35); // S^WS | '(:' | 'case'
- try_SwitchCaseClause();
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shiftT(109); // 'default'
- lookahead1W(70); // S^WS | '(:' | 'return'
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_SwitchCaseClause()
- {
- eventHandler.startNonterminal("SwitchCaseClause", e0);
- for (;;)
- {
- shift(88); // 'case'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_SwitchCaseOperand();
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("SwitchCaseClause", e0);
- }
-
- function try_SwitchCaseClause()
- {
- for (;;)
- {
- shiftT(88); // 'case'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_SwitchCaseOperand();
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_SwitchCaseOperand()
- {
- eventHandler.startNonterminal("SwitchCaseOperand", e0);
- parse_ExprSingle();
- eventHandler.endNonterminal("SwitchCaseOperand", e0);
- }
-
- function try_SwitchCaseOperand()
- {
- try_ExprSingle();
- }
-
- function parse_TypeswitchExpr()
- {
- eventHandler.startNonterminal("TypeswitchExpr", e0);
- shift(253); // 'typeswitch'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(37); // ')'
- for (;;)
- {
- lookahead1W(35); // S^WS | '(:' | 'case'
- whitespace();
- parse_CaseClause();
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shift(109); // 'default'
- lookahead1W(95); // S^WS | '$' | '(:' | 'return'
- if (l1 == 31) // '$'
- {
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- }
- lookahead1W(70); // S^WS | '(:' | 'return'
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("TypeswitchExpr", e0);
- }
-
- function try_TypeswitchExpr()
- {
- shiftT(253); // 'typeswitch'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(37); // ')'
- for (;;)
- {
- lookahead1W(35); // S^WS | '(:' | 'case'
- try_CaseClause();
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shiftT(109); // 'default'
- lookahead1W(95); // S^WS | '$' | '(:' | 'return'
- if (l1 == 31) // '$'
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- }
- lookahead1W(70); // S^WS | '(:' | 'return'
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_CaseClause()
- {
- eventHandler.startNonterminal("CaseClause", e0);
- shift(88); // 'case'
- lookahead1W(260); // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |
- if (l1 == 31) // '$'
- {
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(30); // S^WS | '(:' | 'as'
- shift(79); // 'as'
- }
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceTypeUnion();
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("CaseClause", e0);
- }
-
- function try_CaseClause()
- {
- shiftT(88); // 'case'
- lookahead1W(260); // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |
- if (l1 == 31) // '$'
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(30); // S^WS | '(:' | 'as'
- shiftT(79); // 'as'
- }
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceTypeUnion();
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_SequenceTypeUnion()
- {
- eventHandler.startNonterminal("SequenceTypeUnion", e0);
- parse_SequenceType();
- for (;;)
- {
- lookahead1W(134); // S^WS | '(:' | 'return' | '|'
- if (l1 != 279) // '|'
- {
- break;
- }
- shift(279); // '|'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- }
- eventHandler.endNonterminal("SequenceTypeUnion", e0);
- }
-
- function try_SequenceTypeUnion()
- {
- try_SequenceType();
- for (;;)
- {
- lookahead1W(134); // S^WS | '(:' | 'return' | '|'
- if (l1 != 279) // '|'
- {
- break;
- }
- shiftT(279); // '|'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceType();
- }
- }
-
- function parse_IfExpr()
- {
- eventHandler.startNonterminal("IfExpr", e0);
- shift(152); // 'if'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(37); // ')'
- lookahead1W(77); // S^WS | '(:' | 'then'
- shift(245); // 'then'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- shift(122); // 'else'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("IfExpr", e0);
- }
-
- function try_IfExpr()
- {
- shiftT(152); // 'if'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(37); // ')'
- lookahead1W(77); // S^WS | '(:' | 'then'
- shiftT(245); // 'then'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- shiftT(122); // 'else'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_TryCatchExpr()
- {
- eventHandler.startNonterminal("TryCatchExpr", e0);
- parse_TryClause();
- for (;;)
- {
- lookahead1W(36); // S^WS | '(:' | 'catch'
- whitespace();
- parse_CatchClause();
- lookahead1W(184); // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' |
- if (l1 != 91) // 'catch'
- {
- break;
- }
- }
- eventHandler.endNonterminal("TryCatchExpr", e0);
- }
-
- function try_TryCatchExpr()
- {
- try_TryClause();
- for (;;)
- {
- lookahead1W(36); // S^WS | '(:' | 'catch'
- try_CatchClause();
- lookahead1W(184); // S^WS | EOF | '(:' | ')' | ',' | ':' | ';' | ']' | 'after' | 'as' | 'ascending' |
- if (l1 != 91) // 'catch'
- {
- break;
- }
- }
- }
-
- function parse_TryClause()
- {
- eventHandler.startNonterminal("TryClause", e0);
- shift(250); // 'try'
- lookahead1W(87); // S^WS | '(:' | '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_TryTargetExpr();
- shift(282); // '}'
- eventHandler.endNonterminal("TryClause", e0);
- }
-
- function try_TryClause()
- {
- shiftT(250); // 'try'
- lookahead1W(87); // S^WS | '(:' | '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_TryTargetExpr();
- shiftT(282); // '}'
- }
-
- function parse_TryTargetExpr()
- {
- eventHandler.startNonterminal("TryTargetExpr", e0);
- parse_Expr();
- eventHandler.endNonterminal("TryTargetExpr", e0);
- }
-
- function try_TryTargetExpr()
- {
- try_Expr();
- }
-
- function parse_CatchClause()
- {
- eventHandler.startNonterminal("CatchClause", e0);
- shift(91); // 'catch'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_CatchErrorList();
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- eventHandler.endNonterminal("CatchClause", e0);
- }
-
- function try_CatchClause()
- {
- shiftT(91); // 'catch'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_CatchErrorList();
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- }
-
- function parse_CatchErrorList()
- {
- eventHandler.startNonterminal("CatchErrorList", e0);
- parse_NameTest();
- for (;;)
- {
- lookahead1W(136); // S^WS | '(:' | '{' | '|'
- if (l1 != 279) // '|'
- {
- break;
- }
- shift(279); // '|'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NameTest();
- }
- eventHandler.endNonterminal("CatchErrorList", e0);
- }
-
- function try_CatchErrorList()
- {
- try_NameTest();
- for (;;)
- {
- lookahead1W(136); // S^WS | '(:' | '{' | '|'
- if (l1 != 279) // '|'
- {
- break;
- }
- shiftT(279); // '|'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_NameTest();
- }
- }
-
- function parse_OrExpr()
- {
- eventHandler.startNonterminal("OrExpr", e0);
- parse_AndExpr();
- for (;;)
- {
- if (l1 != 200) // 'or'
- {
- break;
- }
- shift(200); // 'or'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_AndExpr();
- }
- eventHandler.endNonterminal("OrExpr", e0);
- }
-
- function try_OrExpr()
- {
- try_AndExpr();
- for (;;)
- {
- if (l1 != 200) // 'or'
- {
- break;
- }
- shiftT(200); // 'or'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_AndExpr();
- }
- }
-
- function parse_AndExpr()
- {
- eventHandler.startNonterminal("AndExpr", e0);
- parse_ComparisonExpr();
- for (;;)
- {
- if (l1 != 75) // 'and'
- {
- break;
- }
- shift(75); // 'and'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ComparisonExpr();
- }
- eventHandler.endNonterminal("AndExpr", e0);
- }
-
- function try_AndExpr()
- {
- try_ComparisonExpr();
- for (;;)
- {
- if (l1 != 75) // 'and'
- {
- break;
- }
- shiftT(75); // 'and'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ComparisonExpr();
- }
- }
-
- function parse_ComparisonExpr()
- {
- eventHandler.startNonterminal("ComparisonExpr", e0);
- parse_FTContainsExpr();
- if (l1 == 27 // '!='
- || l1 == 54 // '<'
- || l1 == 57 // '<<'
- || l1 == 58 // '<='
- || l1 == 60 // '='
- || l1 == 61 // '>'
- || l1 == 62 // '>='
- || l1 == 63 // '>>'
- || l1 == 128 // 'eq'
- || l1 == 146 // 'ge'
- || l1 == 150 // 'gt'
- || l1 == 164 // 'is'
- || l1 == 172 // 'le'
- || l1 == 178 // 'lt'
- || l1 == 186) // 'ne'
- {
- switch (l1)
- {
- case 128: // 'eq'
- case 146: // 'ge'
- case 150: // 'gt'
- case 172: // 'le'
- case 178: // 'lt'
- case 186: // 'ne'
- whitespace();
- parse_ValueComp();
- break;
- case 57: // '<<'
- case 63: // '>>'
- case 164: // 'is'
- whitespace();
- parse_NodeComp();
- break;
- default:
- whitespace();
- parse_GeneralComp();
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_FTContainsExpr();
- }
- eventHandler.endNonterminal("ComparisonExpr", e0);
- }
-
- function try_ComparisonExpr()
- {
- try_FTContainsExpr();
- if (l1 == 27 // '!='
- || l1 == 54 // '<'
- || l1 == 57 // '<<'
- || l1 == 58 // '<='
- || l1 == 60 // '='
- || l1 == 61 // '>'
- || l1 == 62 // '>='
- || l1 == 63 // '>>'
- || l1 == 128 // 'eq'
- || l1 == 146 // 'ge'
- || l1 == 150 // 'gt'
- || l1 == 164 // 'is'
- || l1 == 172 // 'le'
- || l1 == 178 // 'lt'
- || l1 == 186) // 'ne'
- {
- switch (l1)
- {
- case 128: // 'eq'
- case 146: // 'ge'
- case 150: // 'gt'
- case 172: // 'le'
- case 178: // 'lt'
- case 186: // 'ne'
- try_ValueComp();
- break;
- case 57: // '<<'
- case 63: // '>>'
- case 164: // 'is'
- try_NodeComp();
- break;
- default:
- try_GeneralComp();
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_FTContainsExpr();
- }
- }
-
- function parse_FTContainsExpr()
- {
- eventHandler.startNonterminal("FTContainsExpr", e0);
- parse_StringConcatExpr();
- if (l1 == 99) // 'contains'
- {
- shift(99); // 'contains'
- lookahead1W(76); // S^WS | '(:' | 'text'
- shift(244); // 'text'
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- whitespace();
- parse_FTSelection();
- if (l1 == 271) // 'without'
- {
- whitespace();
- parse_FTIgnoreOption();
- }
- }
- eventHandler.endNonterminal("FTContainsExpr", e0);
- }
-
- function try_FTContainsExpr()
- {
- try_StringConcatExpr();
- if (l1 == 99) // 'contains'
- {
- shiftT(99); // 'contains'
- lookahead1W(76); // S^WS | '(:' | 'text'
- shiftT(244); // 'text'
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- try_FTSelection();
- if (l1 == 271) // 'without'
- {
- try_FTIgnoreOption();
- }
- }
- }
-
- function parse_StringConcatExpr()
- {
- eventHandler.startNonterminal("StringConcatExpr", e0);
- parse_RangeExpr();
- for (;;)
- {
- if (l1 != 280) // '||'
- {
- break;
- }
- shift(280); // '||'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_RangeExpr();
- }
- eventHandler.endNonterminal("StringConcatExpr", e0);
- }
-
- function try_StringConcatExpr()
- {
- try_RangeExpr();
- for (;;)
- {
- if (l1 != 280) // '||'
- {
- break;
- }
- shiftT(280); // '||'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_RangeExpr();
- }
- }
-
- function parse_RangeExpr()
- {
- eventHandler.startNonterminal("RangeExpr", e0);
- parse_AdditiveExpr();
- if (l1 == 248) // 'to'
- {
- shift(248); // 'to'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_AdditiveExpr();
- }
- eventHandler.endNonterminal("RangeExpr", e0);
- }
-
- function try_RangeExpr()
- {
- try_AdditiveExpr();
- if (l1 == 248) // 'to'
- {
- shiftT(248); // 'to'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_AdditiveExpr();
- }
- }
-
- function parse_AdditiveExpr()
- {
- eventHandler.startNonterminal("AdditiveExpr", e0);
- parse_MultiplicativeExpr();
- for (;;)
- {
- if (l1 != 40 // '+'
- && l1 != 42) // '-'
- {
- break;
- }
- switch (l1)
- {
- case 40: // '+'
- shift(40); // '+'
- break;
- default:
- shift(42); // '-'
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_MultiplicativeExpr();
- }
- eventHandler.endNonterminal("AdditiveExpr", e0);
- }
-
- function try_AdditiveExpr()
- {
- try_MultiplicativeExpr();
- for (;;)
- {
- if (l1 != 40 // '+'
- && l1 != 42) // '-'
- {
- break;
- }
- switch (l1)
- {
- case 40: // '+'
- shiftT(40); // '+'
- break;
- default:
- shiftT(42); // '-'
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_MultiplicativeExpr();
- }
- }
-
- function parse_MultiplicativeExpr()
- {
- eventHandler.startNonterminal("MultiplicativeExpr", e0);
- parse_UnionExpr();
- for (;;)
- {
- if (l1 != 38 // '*'
- && l1 != 118 // 'div'
- && l1 != 151 // 'idiv'
- && l1 != 180) // 'mod'
- {
- break;
- }
- switch (l1)
- {
- case 38: // '*'
- shift(38); // '*'
- break;
- case 118: // 'div'
- shift(118); // 'div'
- break;
- case 151: // 'idiv'
- shift(151); // 'idiv'
- break;
- default:
- shift(180); // 'mod'
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_UnionExpr();
- }
- eventHandler.endNonterminal("MultiplicativeExpr", e0);
- }
-
- function try_MultiplicativeExpr()
- {
- try_UnionExpr();
- for (;;)
- {
- if (l1 != 38 // '*'
- && l1 != 118 // 'div'
- && l1 != 151 // 'idiv'
- && l1 != 180) // 'mod'
- {
- break;
- }
- switch (l1)
- {
- case 38: // '*'
- shiftT(38); // '*'
- break;
- case 118: // 'div'
- shiftT(118); // 'div'
- break;
- case 151: // 'idiv'
- shiftT(151); // 'idiv'
- break;
- default:
- shiftT(180); // 'mod'
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_UnionExpr();
- }
- }
-
- function parse_UnionExpr()
- {
- eventHandler.startNonterminal("UnionExpr", e0);
- parse_IntersectExceptExpr();
- for (;;)
- {
- if (l1 != 254 // 'union'
- && l1 != 279) // '|'
- {
- break;
- }
- switch (l1)
- {
- case 254: // 'union'
- shift(254); // 'union'
- break;
- default:
- shift(279); // '|'
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_IntersectExceptExpr();
- }
- eventHandler.endNonterminal("UnionExpr", e0);
- }
-
- function try_UnionExpr()
- {
- try_IntersectExceptExpr();
- for (;;)
- {
- if (l1 != 254 // 'union'
- && l1 != 279) // '|'
- {
- break;
- }
- switch (l1)
- {
- case 254: // 'union'
- shiftT(254); // 'union'
- break;
- default:
- shiftT(279); // '|'
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_IntersectExceptExpr();
- }
- }
-
- function parse_IntersectExceptExpr()
- {
- eventHandler.startNonterminal("IntersectExceptExpr", e0);
- parse_InstanceofExpr();
- for (;;)
- {
- lookahead1W(222); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 != 131 // 'except'
- && l1 != 162) // 'intersect'
- {
- break;
- }
- switch (l1)
- {
- case 162: // 'intersect'
- shift(162); // 'intersect'
- break;
- default:
- shift(131); // 'except'
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_InstanceofExpr();
- }
- eventHandler.endNonterminal("IntersectExceptExpr", e0);
- }
-
- function try_IntersectExceptExpr()
- {
- try_InstanceofExpr();
- for (;;)
- {
- lookahead1W(222); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 != 131 // 'except'
- && l1 != 162) // 'intersect'
- {
- break;
- }
- switch (l1)
- {
- case 162: // 'intersect'
- shiftT(162); // 'intersect'
- break;
- default:
- shiftT(131); // 'except'
- }
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_InstanceofExpr();
- }
- }
-
- function parse_InstanceofExpr()
- {
- eventHandler.startNonterminal("InstanceofExpr", e0);
- parse_TreatExpr();
- lookahead1W(223); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 160) // 'instance'
- {
- shift(160); // 'instance'
- lookahead1W(64); // S^WS | '(:' | 'of'
- shift(196); // 'of'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- }
- eventHandler.endNonterminal("InstanceofExpr", e0);
- }
-
- function try_InstanceofExpr()
- {
- try_TreatExpr();
- lookahead1W(223); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 160) // 'instance'
- {
- shiftT(160); // 'instance'
- lookahead1W(64); // S^WS | '(:' | 'of'
- shiftT(196); // 'of'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceType();
- }
- }
-
- function parse_TreatExpr()
- {
- eventHandler.startNonterminal("TreatExpr", e0);
- parse_CastableExpr();
- lookahead1W(224); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 249) // 'treat'
- {
- shift(249); // 'treat'
- lookahead1W(30); // S^WS | '(:' | 'as'
- shift(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- }
- eventHandler.endNonterminal("TreatExpr", e0);
- }
-
- function try_TreatExpr()
- {
- try_CastableExpr();
- lookahead1W(224); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 249) // 'treat'
- {
- shiftT(249); // 'treat'
- lookahead1W(30); // S^WS | '(:' | 'as'
- shiftT(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceType();
- }
- }
-
- function parse_CastableExpr()
- {
- eventHandler.startNonterminal("CastableExpr", e0);
- parse_CastExpr();
- lookahead1W(225); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 90) // 'castable'
- {
- shift(90); // 'castable'
- lookahead1W(30); // S^WS | '(:' | 'as'
- shift(79); // 'as'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SingleType();
- }
- eventHandler.endNonterminal("CastableExpr", e0);
- }
-
- function try_CastableExpr()
- {
- try_CastExpr();
- lookahead1W(225); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 90) // 'castable'
- {
- shiftT(90); // 'castable'
- lookahead1W(30); // S^WS | '(:' | 'as'
- shiftT(79); // 'as'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SingleType();
- }
- }
-
- function parse_CastExpr()
- {
- eventHandler.startNonterminal("CastExpr", e0);
- parse_UnaryExpr();
- lookahead1W(227); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 89) // 'cast'
- {
- shift(89); // 'cast'
- lookahead1W(30); // S^WS | '(:' | 'as'
- shift(79); // 'as'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SingleType();
- }
- eventHandler.endNonterminal("CastExpr", e0);
- }
-
- function try_CastExpr()
- {
- try_UnaryExpr();
- lookahead1W(227); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 89) // 'cast'
- {
- shiftT(89); // 'cast'
- lookahead1W(30); // S^WS | '(:' | 'as'
- shiftT(79); // 'as'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SingleType();
- }
- }
-
- function parse_UnaryExpr()
- {
- eventHandler.startNonterminal("UnaryExpr", e0);
- for (;;)
- {
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 40 // '+'
- && l1 != 42) // '-'
- {
- break;
- }
- switch (l1)
- {
- case 42: // '-'
- shift(42); // '-'
- break;
- default:
- shift(40); // '+'
- }
- }
- whitespace();
- parse_ValueExpr();
- eventHandler.endNonterminal("UnaryExpr", e0);
- }
-
- function try_UnaryExpr()
- {
- for (;;)
- {
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 40 // '+'
- && l1 != 42) // '-'
- {
- break;
- }
- switch (l1)
- {
- case 42: // '-'
- shiftT(42); // '-'
- break;
- default:
- shiftT(40); // '+'
- }
- }
- try_ValueExpr();
- }
-
- function parse_ValueExpr()
- {
- eventHandler.startNonterminal("ValueExpr", e0);
- switch (l1)
- {
- case 260: // 'validate'
- lookahead2W(246); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 87812: // 'validate' 'lax'
- case 123140: // 'validate' 'strict'
- case 129284: // 'validate' 'type'
- case 141572: // 'validate' '{'
- parse_ValidateExpr();
- break;
- case 35: // '(#'
- parse_ExtensionExpr();
- break;
- default:
- parse_SimpleMapExpr();
- }
- eventHandler.endNonterminal("ValueExpr", e0);
- }
-
- function try_ValueExpr()
- {
- switch (l1)
- {
- case 260: // 'validate'
- lookahead2W(246); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 87812: // 'validate' 'lax'
- case 123140: // 'validate' 'strict'
- case 129284: // 'validate' 'type'
- case 141572: // 'validate' '{'
- try_ValidateExpr();
- break;
- case 35: // '(#'
- try_ExtensionExpr();
- break;
- default:
- try_SimpleMapExpr();
- }
- }
-
- function parse_SimpleMapExpr()
- {
- eventHandler.startNonterminal("SimpleMapExpr", e0);
- parse_PathExpr();
- for (;;)
- {
- if (l1 != 26) // '!'
- {
- break;
- }
- shift(26); // '!'
- lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_PathExpr();
- }
- eventHandler.endNonterminal("SimpleMapExpr", e0);
- }
-
- function try_SimpleMapExpr()
- {
- try_PathExpr();
- for (;;)
- {
- if (l1 != 26) // '!'
- {
- break;
- }
- shiftT(26); // '!'
- lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_PathExpr();
- }
- }
-
- function parse_GeneralComp()
- {
- eventHandler.startNonterminal("GeneralComp", e0);
- switch (l1)
- {
- case 60: // '='
- shift(60); // '='
- break;
- case 27: // '!='
- shift(27); // '!='
- break;
- case 54: // '<'
- shift(54); // '<'
- break;
- case 58: // '<='
- shift(58); // '<='
- break;
- case 61: // '>'
- shift(61); // '>'
- break;
- default:
- shift(62); // '>='
- }
- eventHandler.endNonterminal("GeneralComp", e0);
- }
-
- function try_GeneralComp()
- {
- switch (l1)
- {
- case 60: // '='
- shiftT(60); // '='
- break;
- case 27: // '!='
- shiftT(27); // '!='
- break;
- case 54: // '<'
- shiftT(54); // '<'
- break;
- case 58: // '<='
- shiftT(58); // '<='
- break;
- case 61: // '>'
- shiftT(61); // '>'
- break;
- default:
- shiftT(62); // '>='
- }
- }
-
- function parse_ValueComp()
- {
- eventHandler.startNonterminal("ValueComp", e0);
- switch (l1)
- {
- case 128: // 'eq'
- shift(128); // 'eq'
- break;
- case 186: // 'ne'
- shift(186); // 'ne'
- break;
- case 178: // 'lt'
- shift(178); // 'lt'
- break;
- case 172: // 'le'
- shift(172); // 'le'
- break;
- case 150: // 'gt'
- shift(150); // 'gt'
- break;
- default:
- shift(146); // 'ge'
- }
- eventHandler.endNonterminal("ValueComp", e0);
- }
-
- function try_ValueComp()
- {
- switch (l1)
- {
- case 128: // 'eq'
- shiftT(128); // 'eq'
- break;
- case 186: // 'ne'
- shiftT(186); // 'ne'
- break;
- case 178: // 'lt'
- shiftT(178); // 'lt'
- break;
- case 172: // 'le'
- shiftT(172); // 'le'
- break;
- case 150: // 'gt'
- shiftT(150); // 'gt'
- break;
- default:
- shiftT(146); // 'ge'
- }
- }
-
- function parse_NodeComp()
- {
- eventHandler.startNonterminal("NodeComp", e0);
- switch (l1)
- {
- case 164: // 'is'
- shift(164); // 'is'
- break;
- case 57: // '<<'
- shift(57); // '<<'
- break;
- default:
- shift(63); // '>>'
- }
- eventHandler.endNonterminal("NodeComp", e0);
- }
-
- function try_NodeComp()
- {
- switch (l1)
- {
- case 164: // 'is'
- shiftT(164); // 'is'
- break;
- case 57: // '<<'
- shiftT(57); // '<<'
- break;
- default:
- shiftT(63); // '>>'
- }
- }
-
- function parse_ValidateExpr()
- {
- eventHandler.startNonterminal("ValidateExpr", e0);
- shift(260); // 'validate'
- lookahead1W(160); // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{'
- if (l1 != 276) // '{'
- {
- switch (l1)
- {
- case 252: // 'type'
- shift(252); // 'type'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_TypeName();
- break;
- default:
- whitespace();
- parse_ValidationMode();
- }
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- eventHandler.endNonterminal("ValidateExpr", e0);
- }
-
- function try_ValidateExpr()
- {
- shiftT(260); // 'validate'
- lookahead1W(160); // S^WS | '(:' | 'lax' | 'strict' | 'type' | '{'
- if (l1 != 276) // '{'
- {
- switch (l1)
- {
- case 252: // 'type'
- shiftT(252); // 'type'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_TypeName();
- break;
- default:
- try_ValidationMode();
- }
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- }
-
- function parse_ValidationMode()
- {
- eventHandler.startNonterminal("ValidationMode", e0);
- switch (l1)
- {
- case 171: // 'lax'
- shift(171); // 'lax'
- break;
- default:
- shift(240); // 'strict'
- }
- eventHandler.endNonterminal("ValidationMode", e0);
- }
-
- function try_ValidationMode()
- {
- switch (l1)
- {
- case 171: // 'lax'
- shiftT(171); // 'lax'
- break;
- default:
- shiftT(240); // 'strict'
- }
- }
-
- function parse_ExtensionExpr()
- {
- eventHandler.startNonterminal("ExtensionExpr", e0);
- for (;;)
- {
- whitespace();
- parse_Pragma();
- lookahead1W(100); // S^WS | '(#' | '(:' | '{'
- if (l1 != 35) // '(#'
- {
- break;
- }
- }
- shift(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 282) // '}'
- {
- whitespace();
- parse_Expr();
- }
- shift(282); // '}'
- eventHandler.endNonterminal("ExtensionExpr", e0);
- }
-
- function try_ExtensionExpr()
- {
- for (;;)
- {
- try_Pragma();
- lookahead1W(100); // S^WS | '(#' | '(:' | '{'
- if (l1 != 35) // '(#'
- {
- break;
- }
- }
- shiftT(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 282) // '}'
- {
- try_Expr();
- }
- shiftT(282); // '}'
- }
-
- function parse_Pragma()
- {
- eventHandler.startNonterminal("Pragma", e0);
- shift(35); // '(#'
- lookahead1(250); // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
- if (l1 == 21) // S
- {
- shift(21); // S
- }
- parse_EQName();
- lookahead1(10); // S | '#)'
- if (l1 == 21) // S
- {
- shift(21); // S
- lookahead1(0); // PragmaContents
- shift(1); // PragmaContents
- }
- lookahead1(5); // '#)'
- shift(30); // '#)'
- eventHandler.endNonterminal("Pragma", e0);
- }
-
- function try_Pragma()
- {
- shiftT(35); // '(#'
- lookahead1(250); // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
- if (l1 == 21) // S
- {
- shiftT(21); // S
- }
- try_EQName();
- lookahead1(10); // S | '#)'
- if (l1 == 21) // S
- {
- shiftT(21); // S
- lookahead1(0); // PragmaContents
- shiftT(1); // PragmaContents
- }
- lookahead1(5); // '#)'
- shiftT(30); // '#)'
- }
-
- function parse_PathExpr()
- {
- eventHandler.startNonterminal("PathExpr", e0);
- switch (l1)
- {
- case 46: // '/'
- shift(46); // '/'
- lookahead1W(283); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 25: // EOF
- case 26: // '!'
- case 27: // '!='
- case 37: // ')'
- case 38: // '*'
- case 40: // '+'
- case 41: // ','
- case 42: // '-'
- case 49: // ':'
- case 53: // ';'
- case 57: // '<<'
- case 58: // '<='
- case 60: // '='
- case 61: // '>'
- case 62: // '>='
- case 63: // '>>'
- case 69: // ']'
- case 87: // 'by'
- case 99: // 'contains'
- case 205: // 'paragraphs'
- case 232: // 'sentences'
- case 247: // 'times'
- case 273: // 'words'
- case 279: // '|'
- case 280: // '||'
- case 281: // '|}'
- case 282: // '}'
- break;
- default:
- whitespace();
- parse_RelativePathExpr();
- }
- break;
- case 47: // '//'
- shift(47); // '//'
- lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_RelativePathExpr();
- break;
- default:
- parse_RelativePathExpr();
- }
- eventHandler.endNonterminal("PathExpr", e0);
- }
-
- function try_PathExpr()
- {
- switch (l1)
- {
- case 46: // '/'
- shiftT(46); // '/'
- lookahead1W(283); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 25: // EOF
- case 26: // '!'
- case 27: // '!='
- case 37: // ')'
- case 38: // '*'
- case 40: // '+'
- case 41: // ','
- case 42: // '-'
- case 49: // ':'
- case 53: // ';'
- case 57: // '<<'
- case 58: // '<='
- case 60: // '='
- case 61: // '>'
- case 62: // '>='
- case 63: // '>>'
- case 69: // ']'
- case 87: // 'by'
- case 99: // 'contains'
- case 205: // 'paragraphs'
- case 232: // 'sentences'
- case 247: // 'times'
- case 273: // 'words'
- case 279: // '|'
- case 280: // '||'
- case 281: // '|}'
- case 282: // '}'
- break;
- default:
- try_RelativePathExpr();
- }
- break;
- case 47: // '//'
- shiftT(47); // '//'
- lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_RelativePathExpr();
- break;
- default:
- try_RelativePathExpr();
- }
- }
-
- function parse_RelativePathExpr()
- {
- eventHandler.startNonterminal("RelativePathExpr", e0);
- parse_StepExpr();
- for (;;)
- {
- switch (l1)
- {
- case 26: // '!'
- lookahead2W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- default:
- lk = l1;
- }
- if (lk != 25 // EOF
- && lk != 27 // '!='
- && lk != 37 // ')'
- && lk != 38 // '*'
- && lk != 40 // '+'
- && lk != 41 // ','
- && lk != 42 // '-'
- && lk != 46 // '/'
- && lk != 47 // '//'
- && lk != 49 // ':'
- && lk != 53 // ';'
- && lk != 54 // '<'
- && lk != 57 // '<<'
- && lk != 58 // '<='
- && lk != 60 // '='
- && lk != 61 // '>'
- && lk != 62 // '>='
- && lk != 63 // '>>'
- && lk != 69 // ']'
- && lk != 70 // 'after'
- && lk != 75 // 'and'
- && lk != 79 // 'as'
- && lk != 80 // 'ascending'
- && lk != 81 // 'at'
- && lk != 84 // 'before'
- && lk != 87 // 'by'
- && lk != 88 // 'case'
- && lk != 89 // 'cast'
- && lk != 90 // 'castable'
- && lk != 94 // 'collation'
- && lk != 99 // 'contains'
- && lk != 105 // 'count'
- && lk != 109 // 'default'
- && lk != 113 // 'descending'
- && lk != 118 // 'div'
- && lk != 122 // 'else'
- && lk != 123 // 'empty'
- && lk != 126 // 'end'
- && lk != 128 // 'eq'
- && lk != 131 // 'except'
- && lk != 137 // 'for'
- && lk != 146 // 'ge'
- && lk != 148 // 'group'
- && lk != 150 // 'gt'
- && lk != 151 // 'idiv'
- && lk != 160 // 'instance'
- && lk != 162 // 'intersect'
- && lk != 163 // 'into'
- && lk != 164 // 'is'
- && lk != 172 // 'le'
- && lk != 174 // 'let'
- && lk != 178 // 'lt'
- && lk != 180 // 'mod'
- && lk != 181 // 'modify'
- && lk != 186 // 'ne'
- && lk != 198 // 'only'
- && lk != 200 // 'or'
- && lk != 201 // 'order'
- && lk != 205 // 'paragraphs'
- && lk != 220 // 'return'
- && lk != 224 // 'satisfies'
- && lk != 232 // 'sentences'
- && lk != 236 // 'stable'
- && lk != 237 // 'start'
- && lk != 247 // 'times'
- && lk != 248 // 'to'
- && lk != 249 // 'treat'
- && lk != 254 // 'union'
- && lk != 266 // 'where'
- && lk != 270 // 'with'
- && lk != 273 // 'words'
- && lk != 279 // '|'
- && lk != 280 // '||'
- && lk != 281 // '|}'
- && lk != 282 // '}'
- && lk != 23578 // '!' '/'
- && lk != 24090) // '!' '//'
- {
- lk = memoized(2, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- switch (l1)
- {
- case 46: // '/'
- shiftT(46); // '/'
- break;
- case 47: // '//'
- shiftT(47); // '//'
- break;
- default:
- shiftT(26); // '!'
- }
- lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_StepExpr();
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(2, e0, lk);
- }
- }
- if (lk != -1
- && lk != 46 // '/'
- && lk != 47) // '//'
- {
- break;
- }
- switch (l1)
- {
- case 46: // '/'
- shift(46); // '/'
- break;
- case 47: // '//'
- shift(47); // '//'
- break;
- default:
- shift(26); // '!'
- }
- lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_StepExpr();
- }
- eventHandler.endNonterminal("RelativePathExpr", e0);
- }
-
- function try_RelativePathExpr()
- {
- try_StepExpr();
- for (;;)
- {
- switch (l1)
- {
- case 26: // '!'
- lookahead2W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- default:
- lk = l1;
- }
- if (lk != 25 // EOF
- && lk != 27 // '!='
- && lk != 37 // ')'
- && lk != 38 // '*'
- && lk != 40 // '+'
- && lk != 41 // ','
- && lk != 42 // '-'
- && lk != 46 // '/'
- && lk != 47 // '//'
- && lk != 49 // ':'
- && lk != 53 // ';'
- && lk != 54 // '<'
- && lk != 57 // '<<'
- && lk != 58 // '<='
- && lk != 60 // '='
- && lk != 61 // '>'
- && lk != 62 // '>='
- && lk != 63 // '>>'
- && lk != 69 // ']'
- && lk != 70 // 'after'
- && lk != 75 // 'and'
- && lk != 79 // 'as'
- && lk != 80 // 'ascending'
- && lk != 81 // 'at'
- && lk != 84 // 'before'
- && lk != 87 // 'by'
- && lk != 88 // 'case'
- && lk != 89 // 'cast'
- && lk != 90 // 'castable'
- && lk != 94 // 'collation'
- && lk != 99 // 'contains'
- && lk != 105 // 'count'
- && lk != 109 // 'default'
- && lk != 113 // 'descending'
- && lk != 118 // 'div'
- && lk != 122 // 'else'
- && lk != 123 // 'empty'
- && lk != 126 // 'end'
- && lk != 128 // 'eq'
- && lk != 131 // 'except'
- && lk != 137 // 'for'
- && lk != 146 // 'ge'
- && lk != 148 // 'group'
- && lk != 150 // 'gt'
- && lk != 151 // 'idiv'
- && lk != 160 // 'instance'
- && lk != 162 // 'intersect'
- && lk != 163 // 'into'
- && lk != 164 // 'is'
- && lk != 172 // 'le'
- && lk != 174 // 'let'
- && lk != 178 // 'lt'
- && lk != 180 // 'mod'
- && lk != 181 // 'modify'
- && lk != 186 // 'ne'
- && lk != 198 // 'only'
- && lk != 200 // 'or'
- && lk != 201 // 'order'
- && lk != 205 // 'paragraphs'
- && lk != 220 // 'return'
- && lk != 224 // 'satisfies'
- && lk != 232 // 'sentences'
- && lk != 236 // 'stable'
- && lk != 237 // 'start'
- && lk != 247 // 'times'
- && lk != 248 // 'to'
- && lk != 249 // 'treat'
- && lk != 254 // 'union'
- && lk != 266 // 'where'
- && lk != 270 // 'with'
- && lk != 273 // 'words'
- && lk != 279 // '|'
- && lk != 280 // '||'
- && lk != 281 // '|}'
- && lk != 282 // '}'
- && lk != 23578 // '!' '/'
- && lk != 24090) // '!' '//'
- {
- lk = memoized(2, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- switch (l1)
- {
- case 46: // '/'
- shiftT(46); // '/'
- break;
- case 47: // '//'
- shiftT(47); // '//'
- break;
- default:
- shiftT(26); // '!'
- }
- lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_StepExpr();
- memoize(2, e0A, -1);
- continue;
- }
- catch (p1A)
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(2, e0A, -2);
- break;
- }
- }
- }
- if (lk != -1
- && lk != 46 // '/'
- && lk != 47) // '//'
- {
- break;
- }
- switch (l1)
- {
- case 46: // '/'
- shiftT(46); // '/'
- break;
- case 47: // '//'
- shiftT(47); // '//'
- break;
- default:
- shiftT(26); // '!'
- }
- lookahead1W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_StepExpr();
- }
- }
-
- function parse_StepExpr()
- {
- eventHandler.startNonterminal("StepExpr", e0);
- switch (l1)
- {
- case 82: // 'attribute'
- lookahead2W(282); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
- break;
- case 121: // 'element'
- lookahead2W(280); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
- break;
- case 184: // 'namespace'
- case 216: // 'processing-instruction'
- lookahead2W(279); // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
- break;
- case 96: // 'comment'
- case 119: // 'document'
- case 202: // 'ordered'
- case 244: // 'text'
- case 256: // 'unordered'
- lookahead2W(245); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 124: // 'empty-sequence'
- case 152: // 'if'
- case 165: // 'item'
- case 243: // 'switch'
- case 253: // 'typeswitch'
- lookahead2W(238); // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 73: // 'ancestor'
- case 74: // 'ancestor-or-self'
- case 93: // 'child'
- case 111: // 'descendant'
- case 112: // 'descendant-or-self'
- case 135: // 'following'
- case 136: // 'following-sibling'
- case 206: // 'parent'
- case 212: // 'preceding'
- case 213: // 'preceding-sibling'
- case 229: // 'self'
- lookahead2W(244); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 6: // EQName^Token
- case 70: // 'after'
- case 72: // 'allowing'
- case 75: // 'and'
- case 78: // 'array'
- case 79: // 'as'
- case 80: // 'ascending'
- case 81: // 'at'
- case 83: // 'base-uri'
- case 84: // 'before'
- case 85: // 'boundary-space'
- case 86: // 'break'
- case 88: // 'case'
- case 89: // 'cast'
- case 90: // 'castable'
- case 91: // 'catch'
- case 94: // 'collation'
- case 97: // 'constraint'
- case 98: // 'construction'
- case 101: // 'context'
- case 102: // 'continue'
- case 103: // 'copy'
- case 104: // 'copy-namespaces'
- case 105: // 'count'
- case 106: // 'decimal-format'
- case 108: // 'declare'
- case 109: // 'default'
- case 110: // 'delete'
- case 113: // 'descending'
- case 118: // 'div'
- case 120: // 'document-node'
- case 122: // 'else'
- case 123: // 'empty'
- case 125: // 'encoding'
- case 126: // 'end'
- case 128: // 'eq'
- case 129: // 'every'
- case 131: // 'except'
- case 132: // 'exit'
- case 133: // 'external'
- case 134: // 'first'
- case 137: // 'for'
- case 141: // 'ft-option'
- case 145: // 'function'
- case 146: // 'ge'
- case 148: // 'group'
- case 150: // 'gt'
- case 151: // 'idiv'
- case 153: // 'import'
- case 154: // 'in'
- case 155: // 'index'
- case 159: // 'insert'
- case 160: // 'instance'
- case 161: // 'integrity'
- case 162: // 'intersect'
- case 163: // 'into'
- case 164: // 'is'
- case 167: // 'json-item'
- case 170: // 'last'
- case 171: // 'lax'
- case 172: // 'le'
- case 174: // 'let'
- case 176: // 'loop'
- case 178: // 'lt'
- case 180: // 'mod'
- case 181: // 'modify'
- case 182: // 'module'
- case 185: // 'namespace-node'
- case 186: // 'ne'
- case 191: // 'node'
- case 192: // 'nodes'
- case 194: // 'object'
- case 198: // 'only'
- case 199: // 'option'
- case 200: // 'or'
- case 201: // 'order'
- case 203: // 'ordering'
- case 218: // 'rename'
- case 219: // 'replace'
- case 220: // 'return'
- case 221: // 'returning'
- case 222: // 'revalidation'
- case 224: // 'satisfies'
- case 225: // 'schema'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 228: // 'score'
- case 234: // 'sliding'
- case 235: // 'some'
- case 236: // 'stable'
- case 237: // 'start'
- case 240: // 'strict'
- case 248: // 'to'
- case 249: // 'treat'
- case 250: // 'try'
- case 251: // 'tumbling'
- case 252: // 'type'
- case 254: // 'union'
- case 257: // 'updating'
- case 260: // 'validate'
- case 261: // 'value'
- case 262: // 'variable'
- case 263: // 'version'
- case 266: // 'where'
- case 267: // 'while'
- case 270: // 'with'
- case 274: // 'xquery'
- lookahead2W(242); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- default:
- lk = l1;
- }
- if (lk == 17486 // 'array' '('
- || lk == 17575 // 'json-item' '('
- || lk == 17602 // 'object' '('
- || lk == 35922 // 'attribute' 'after'
- || lk == 35961 // 'element' 'after'
- || lk == 36024 // 'namespace' 'after'
- || lk == 36056 // 'processing-instruction' 'after'
- || lk == 38482 // 'attribute' 'and'
- || lk == 38521 // 'element' 'and'
- || lk == 38584 // 'namespace' 'and'
- || lk == 38616 // 'processing-instruction' 'and'
- || lk == 40530 // 'attribute' 'as'
- || lk == 40569 // 'element' 'as'
- || lk == 40632 // 'namespace' 'as'
- || lk == 40664 // 'processing-instruction' 'as'
- || lk == 41042 // 'attribute' 'ascending'
- || lk == 41081 // 'element' 'ascending'
- || lk == 41144 // 'namespace' 'ascending'
- || lk == 41176 // 'processing-instruction' 'ascending'
- || lk == 41554 // 'attribute' 'at'
- || lk == 41593 // 'element' 'at'
- || lk == 41656 // 'namespace' 'at'
- || lk == 41688 // 'processing-instruction' 'at'
- || lk == 43090 // 'attribute' 'before'
- || lk == 43129 // 'element' 'before'
- || lk == 43192 // 'namespace' 'before'
- || lk == 43224 // 'processing-instruction' 'before'
- || lk == 45138 // 'attribute' 'case'
- || lk == 45177 // 'element' 'case'
- || lk == 45240 // 'namespace' 'case'
- || lk == 45272 // 'processing-instruction' 'case'
- || lk == 45650 // 'attribute' 'cast'
- || lk == 45689 // 'element' 'cast'
- || lk == 45752 // 'namespace' 'cast'
- || lk == 45784 // 'processing-instruction' 'cast'
- || lk == 46162 // 'attribute' 'castable'
- || lk == 46201 // 'element' 'castable'
- || lk == 46264 // 'namespace' 'castable'
- || lk == 46296 // 'processing-instruction' 'castable'
- || lk == 48210 // 'attribute' 'collation'
- || lk == 48249 // 'element' 'collation'
- || lk == 48312 // 'namespace' 'collation'
- || lk == 48344 // 'processing-instruction' 'collation'
- || lk == 53842 // 'attribute' 'count'
- || lk == 53881 // 'element' 'count'
- || lk == 53944 // 'namespace' 'count'
- || lk == 53976 // 'processing-instruction' 'count'
- || lk == 55890 // 'attribute' 'default'
- || lk == 55929 // 'element' 'default'
- || lk == 55992 // 'namespace' 'default'
- || lk == 56024 // 'processing-instruction' 'default'
- || lk == 57938 // 'attribute' 'descending'
- || lk == 57977 // 'element' 'descending'
- || lk == 58040 // 'namespace' 'descending'
- || lk == 58072 // 'processing-instruction' 'descending'
- || lk == 60498 // 'attribute' 'div'
- || lk == 60537 // 'element' 'div'
- || lk == 60600 // 'namespace' 'div'
- || lk == 60632 // 'processing-instruction' 'div'
- || lk == 62546 // 'attribute' 'else'
- || lk == 62585 // 'element' 'else'
- || lk == 62648 // 'namespace' 'else'
- || lk == 62680 // 'processing-instruction' 'else'
- || lk == 63058 // 'attribute' 'empty'
- || lk == 63097 // 'element' 'empty'
- || lk == 63160 // 'namespace' 'empty'
- || lk == 63192 // 'processing-instruction' 'empty'
- || lk == 64594 // 'attribute' 'end'
- || lk == 64633 // 'element' 'end'
- || lk == 64696 // 'namespace' 'end'
- || lk == 64728 // 'processing-instruction' 'end'
- || lk == 65618 // 'attribute' 'eq'
- || lk == 65657 // 'element' 'eq'
- || lk == 65720 // 'namespace' 'eq'
- || lk == 65752 // 'processing-instruction' 'eq'
- || lk == 67154 // 'attribute' 'except'
- || lk == 67193 // 'element' 'except'
- || lk == 67256 // 'namespace' 'except'
- || lk == 67288 // 'processing-instruction' 'except'
- || lk == 70226 // 'attribute' 'for'
- || lk == 70265 // 'element' 'for'
- || lk == 70328 // 'namespace' 'for'
- || lk == 70360 // 'processing-instruction' 'for'
- || lk == 74834 // 'attribute' 'ge'
- || lk == 74873 // 'element' 'ge'
- || lk == 74936 // 'namespace' 'ge'
- || lk == 74968 // 'processing-instruction' 'ge'
- || lk == 75858 // 'attribute' 'group'
- || lk == 75897 // 'element' 'group'
- || lk == 75960 // 'namespace' 'group'
- || lk == 75992 // 'processing-instruction' 'group'
- || lk == 76882 // 'attribute' 'gt'
- || lk == 76921 // 'element' 'gt'
- || lk == 76984 // 'namespace' 'gt'
- || lk == 77016 // 'processing-instruction' 'gt'
- || lk == 77394 // 'attribute' 'idiv'
- || lk == 77433 // 'element' 'idiv'
- || lk == 77496 // 'namespace' 'idiv'
- || lk == 77528 // 'processing-instruction' 'idiv'
- || lk == 82002 // 'attribute' 'instance'
- || lk == 82041 // 'element' 'instance'
- || lk == 82104 // 'namespace' 'instance'
- || lk == 82136 // 'processing-instruction' 'instance'
- || lk == 83026 // 'attribute' 'intersect'
- || lk == 83065 // 'element' 'intersect'
- || lk == 83128 // 'namespace' 'intersect'
- || lk == 83160 // 'processing-instruction' 'intersect'
- || lk == 83538 // 'attribute' 'into'
- || lk == 83577 // 'element' 'into'
- || lk == 83640 // 'namespace' 'into'
- || lk == 83672 // 'processing-instruction' 'into'
- || lk == 84050 // 'attribute' 'is'
- || lk == 84089 // 'element' 'is'
- || lk == 84152 // 'namespace' 'is'
- || lk == 84184 // 'processing-instruction' 'is'
- || lk == 88146 // 'attribute' 'le'
- || lk == 88185 // 'element' 'le'
- || lk == 88248 // 'namespace' 'le'
- || lk == 88280 // 'processing-instruction' 'le'
- || lk == 89170 // 'attribute' 'let'
- || lk == 89209 // 'element' 'let'
- || lk == 89272 // 'namespace' 'let'
- || lk == 89304 // 'processing-instruction' 'let'
- || lk == 91218 // 'attribute' 'lt'
- || lk == 91257 // 'element' 'lt'
- || lk == 91320 // 'namespace' 'lt'
- || lk == 91352 // 'processing-instruction' 'lt'
- || lk == 92242 // 'attribute' 'mod'
- || lk == 92281 // 'element' 'mod'
- || lk == 92344 // 'namespace' 'mod'
- || lk == 92376 // 'processing-instruction' 'mod'
- || lk == 92754 // 'attribute' 'modify'
- || lk == 92793 // 'element' 'modify'
- || lk == 92856 // 'namespace' 'modify'
- || lk == 92888 // 'processing-instruction' 'modify'
- || lk == 95314 // 'attribute' 'ne'
- || lk == 95353 // 'element' 'ne'
- || lk == 95416 // 'namespace' 'ne'
- || lk == 95448 // 'processing-instruction' 'ne'
- || lk == 101458 // 'attribute' 'only'
- || lk == 101497 // 'element' 'only'
- || lk == 101560 // 'namespace' 'only'
- || lk == 101592 // 'processing-instruction' 'only'
- || lk == 102482 // 'attribute' 'or'
- || lk == 102521 // 'element' 'or'
- || lk == 102584 // 'namespace' 'or'
- || lk == 102616 // 'processing-instruction' 'or'
- || lk == 102994 // 'attribute' 'order'
- || lk == 103033 // 'element' 'order'
- || lk == 103096 // 'namespace' 'order'
- || lk == 103128 // 'processing-instruction' 'order'
- || lk == 112722 // 'attribute' 'return'
- || lk == 112761 // 'element' 'return'
- || lk == 112824 // 'namespace' 'return'
- || lk == 112856 // 'processing-instruction' 'return'
- || lk == 114770 // 'attribute' 'satisfies'
- || lk == 114809 // 'element' 'satisfies'
- || lk == 114872 // 'namespace' 'satisfies'
- || lk == 114904 // 'processing-instruction' 'satisfies'
- || lk == 120914 // 'attribute' 'stable'
- || lk == 120953 // 'element' 'stable'
- || lk == 121016 // 'namespace' 'stable'
- || lk == 121048 // 'processing-instruction' 'stable'
- || lk == 121426 // 'attribute' 'start'
- || lk == 121465 // 'element' 'start'
- || lk == 121528 // 'namespace' 'start'
- || lk == 121560 // 'processing-instruction' 'start'
- || lk == 127058 // 'attribute' 'to'
- || lk == 127097 // 'element' 'to'
- || lk == 127160 // 'namespace' 'to'
- || lk == 127192 // 'processing-instruction' 'to'
- || lk == 127570 // 'attribute' 'treat'
- || lk == 127609 // 'element' 'treat'
- || lk == 127672 // 'namespace' 'treat'
- || lk == 127704 // 'processing-instruction' 'treat'
- || lk == 130130 // 'attribute' 'union'
- || lk == 130169 // 'element' 'union'
- || lk == 130232 // 'namespace' 'union'
- || lk == 130264 // 'processing-instruction' 'union'
- || lk == 136274 // 'attribute' 'where'
- || lk == 136313 // 'element' 'where'
- || lk == 136376 // 'namespace' 'where'
- || lk == 136408 // 'processing-instruction' 'where'
- || lk == 138322 // 'attribute' 'with'
- || lk == 138361 // 'element' 'with'
- || lk == 138424 // 'namespace' 'with'
- || lk == 138456) // 'processing-instruction' 'with'
- {
- lk = memoized(3, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_PostfixExpr();
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(3, e0, lk);
- }
- }
- switch (lk)
- {
- case -1:
- case 8: // IntegerLiteral
- case 9: // DecimalLiteral
- case 10: // DoubleLiteral
- case 11: // StringLiteral
- case 31: // '$'
- case 32: // '%'
- case 34: // '('
- case 44: // '.'
- case 54: // '<'
- case 55: // '<!--'
- case 59: // '<?'
- case 68: // '['
- case 276: // '{'
- case 278: // '{|'
- case 3154: // 'attribute' EQName^Token
- case 3193: // 'element' EQName^Token
- case 9912: // 'namespace' NCName^Token
- case 9944: // 'processing-instruction' NCName^Token
- case 14854: // EQName^Token '#'
- case 14918: // 'after' '#'
- case 14920: // 'allowing' '#'
- case 14921: // 'ancestor' '#'
- case 14922: // 'ancestor-or-self' '#'
- case 14923: // 'and' '#'
- case 14926: // 'array' '#'
- case 14927: // 'as' '#'
- case 14928: // 'ascending' '#'
- case 14929: // 'at' '#'
- case 14930: // 'attribute' '#'
- case 14931: // 'base-uri' '#'
- case 14932: // 'before' '#'
- case 14933: // 'boundary-space' '#'
- case 14934: // 'break' '#'
- case 14936: // 'case' '#'
- case 14937: // 'cast' '#'
- case 14938: // 'castable' '#'
- case 14939: // 'catch' '#'
- case 14941: // 'child' '#'
- case 14942: // 'collation' '#'
- case 14944: // 'comment' '#'
- case 14945: // 'constraint' '#'
- case 14946: // 'construction' '#'
- case 14949: // 'context' '#'
- case 14950: // 'continue' '#'
- case 14951: // 'copy' '#'
- case 14952: // 'copy-namespaces' '#'
- case 14953: // 'count' '#'
- case 14954: // 'decimal-format' '#'
- case 14956: // 'declare' '#'
- case 14957: // 'default' '#'
- case 14958: // 'delete' '#'
- case 14959: // 'descendant' '#'
- case 14960: // 'descendant-or-self' '#'
- case 14961: // 'descending' '#'
- case 14966: // 'div' '#'
- case 14967: // 'document' '#'
- case 14968: // 'document-node' '#'
- case 14969: // 'element' '#'
- case 14970: // 'else' '#'
- case 14971: // 'empty' '#'
- case 14972: // 'empty-sequence' '#'
- case 14973: // 'encoding' '#'
- case 14974: // 'end' '#'
- case 14976: // 'eq' '#'
- case 14977: // 'every' '#'
- case 14979: // 'except' '#'
- case 14980: // 'exit' '#'
- case 14981: // 'external' '#'
- case 14982: // 'first' '#'
- case 14983: // 'following' '#'
- case 14984: // 'following-sibling' '#'
- case 14985: // 'for' '#'
- case 14989: // 'ft-option' '#'
- case 14993: // 'function' '#'
- case 14994: // 'ge' '#'
- case 14996: // 'group' '#'
- case 14998: // 'gt' '#'
- case 14999: // 'idiv' '#'
- case 15000: // 'if' '#'
- case 15001: // 'import' '#'
- case 15002: // 'in' '#'
- case 15003: // 'index' '#'
- case 15007: // 'insert' '#'
- case 15008: // 'instance' '#'
- case 15009: // 'integrity' '#'
- case 15010: // 'intersect' '#'
- case 15011: // 'into' '#'
- case 15012: // 'is' '#'
- case 15013: // 'item' '#'
- case 15015: // 'json-item' '#'
- case 15018: // 'last' '#'
- case 15019: // 'lax' '#'
- case 15020: // 'le' '#'
- case 15022: // 'let' '#'
- case 15024: // 'loop' '#'
- case 15026: // 'lt' '#'
- case 15028: // 'mod' '#'
- case 15029: // 'modify' '#'
- case 15030: // 'module' '#'
- case 15032: // 'namespace' '#'
- case 15033: // 'namespace-node' '#'
- case 15034: // 'ne' '#'
- case 15039: // 'node' '#'
- case 15040: // 'nodes' '#'
- case 15042: // 'object' '#'
- case 15046: // 'only' '#'
- case 15047: // 'option' '#'
- case 15048: // 'or' '#'
- case 15049: // 'order' '#'
- case 15050: // 'ordered' '#'
- case 15051: // 'ordering' '#'
- case 15054: // 'parent' '#'
- case 15060: // 'preceding' '#'
- case 15061: // 'preceding-sibling' '#'
- case 15064: // 'processing-instruction' '#'
- case 15066: // 'rename' '#'
- case 15067: // 'replace' '#'
- case 15068: // 'return' '#'
- case 15069: // 'returning' '#'
- case 15070: // 'revalidation' '#'
- case 15072: // 'satisfies' '#'
- case 15073: // 'schema' '#'
- case 15074: // 'schema-attribute' '#'
- case 15075: // 'schema-element' '#'
- case 15076: // 'score' '#'
- case 15077: // 'self' '#'
- case 15082: // 'sliding' '#'
- case 15083: // 'some' '#'
- case 15084: // 'stable' '#'
- case 15085: // 'start' '#'
- case 15088: // 'strict' '#'
- case 15091: // 'switch' '#'
- case 15092: // 'text' '#'
- case 15096: // 'to' '#'
- case 15097: // 'treat' '#'
- case 15098: // 'try' '#'
- case 15099: // 'tumbling' '#'
- case 15100: // 'type' '#'
- case 15101: // 'typeswitch' '#'
- case 15102: // 'union' '#'
- case 15104: // 'unordered' '#'
- case 15105: // 'updating' '#'
- case 15108: // 'validate' '#'
- case 15109: // 'value' '#'
- case 15110: // 'variable' '#'
- case 15111: // 'version' '#'
- case 15114: // 'where' '#'
- case 15115: // 'while' '#'
- case 15118: // 'with' '#'
- case 15122: // 'xquery' '#'
- case 17414: // EQName^Token '('
- case 17478: // 'after' '('
- case 17480: // 'allowing' '('
- case 17481: // 'ancestor' '('
- case 17482: // 'ancestor-or-self' '('
- case 17483: // 'and' '('
- case 17487: // 'as' '('
- case 17488: // 'ascending' '('
- case 17489: // 'at' '('
- case 17491: // 'base-uri' '('
- case 17492: // 'before' '('
- case 17493: // 'boundary-space' '('
- case 17494: // 'break' '('
- case 17496: // 'case' '('
- case 17497: // 'cast' '('
- case 17498: // 'castable' '('
- case 17499: // 'catch' '('
- case 17501: // 'child' '('
- case 17502: // 'collation' '('
- case 17505: // 'constraint' '('
- case 17506: // 'construction' '('
- case 17509: // 'context' '('
- case 17510: // 'continue' '('
- case 17511: // 'copy' '('
- case 17512: // 'copy-namespaces' '('
- case 17513: // 'count' '('
- case 17514: // 'decimal-format' '('
- case 17516: // 'declare' '('
- case 17517: // 'default' '('
- case 17518: // 'delete' '('
- case 17519: // 'descendant' '('
- case 17520: // 'descendant-or-self' '('
- case 17521: // 'descending' '('
- case 17526: // 'div' '('
- case 17527: // 'document' '('
- case 17530: // 'else' '('
- case 17531: // 'empty' '('
- case 17533: // 'encoding' '('
- case 17534: // 'end' '('
- case 17536: // 'eq' '('
- case 17537: // 'every' '('
- case 17539: // 'except' '('
- case 17540: // 'exit' '('
- case 17541: // 'external' '('
- case 17542: // 'first' '('
- case 17543: // 'following' '('
- case 17544: // 'following-sibling' '('
- case 17545: // 'for' '('
- case 17549: // 'ft-option' '('
- case 17553: // 'function' '('
- case 17554: // 'ge' '('
- case 17556: // 'group' '('
- case 17558: // 'gt' '('
- case 17559: // 'idiv' '('
- case 17561: // 'import' '('
- case 17562: // 'in' '('
- case 17563: // 'index' '('
- case 17567: // 'insert' '('
- case 17568: // 'instance' '('
- case 17569: // 'integrity' '('
- case 17570: // 'intersect' '('
- case 17571: // 'into' '('
- case 17572: // 'is' '('
- case 17578: // 'last' '('
- case 17579: // 'lax' '('
- case 17580: // 'le' '('
- case 17582: // 'let' '('
- case 17584: // 'loop' '('
- case 17586: // 'lt' '('
- case 17588: // 'mod' '('
- case 17589: // 'modify' '('
- case 17590: // 'module' '('
- case 17592: // 'namespace' '('
- case 17594: // 'ne' '('
- case 17600: // 'nodes' '('
- case 17606: // 'only' '('
- case 17607: // 'option' '('
- case 17608: // 'or' '('
- case 17609: // 'order' '('
- case 17610: // 'ordered' '('
- case 17611: // 'ordering' '('
- case 17614: // 'parent' '('
- case 17620: // 'preceding' '('
- case 17621: // 'preceding-sibling' '('
- case 17626: // 'rename' '('
- case 17627: // 'replace' '('
- case 17628: // 'return' '('
- case 17629: // 'returning' '('
- case 17630: // 'revalidation' '('
- case 17632: // 'satisfies' '('
- case 17633: // 'schema' '('
- case 17636: // 'score' '('
- case 17637: // 'self' '('
- case 17642: // 'sliding' '('
- case 17643: // 'some' '('
- case 17644: // 'stable' '('
- case 17645: // 'start' '('
- case 17648: // 'strict' '('
- case 17656: // 'to' '('
- case 17657: // 'treat' '('
- case 17658: // 'try' '('
- case 17659: // 'tumbling' '('
- case 17660: // 'type' '('
- case 17662: // 'union' '('
- case 17664: // 'unordered' '('
- case 17665: // 'updating' '('
- case 17668: // 'validate' '('
- case 17669: // 'value' '('
- case 17670: // 'variable' '('
- case 17671: // 'version' '('
- case 17674: // 'where' '('
- case 17675: // 'while' '('
- case 17678: // 'with' '('
- case 17682: // 'xquery' '('
- case 36946: // 'attribute' 'allowing'
- case 36985: // 'element' 'allowing'
- case 37048: // 'namespace' 'allowing'
- case 37080: // 'processing-instruction' 'allowing'
- case 37458: // 'attribute' 'ancestor'
- case 37497: // 'element' 'ancestor'
- case 37560: // 'namespace' 'ancestor'
- case 37592: // 'processing-instruction' 'ancestor'
- case 37970: // 'attribute' 'ancestor-or-self'
- case 38009: // 'element' 'ancestor-or-self'
- case 38072: // 'namespace' 'ancestor-or-self'
- case 38104: // 'processing-instruction' 'ancestor-or-self'
- case 40018: // 'attribute' 'array'
- case 40057: // 'element' 'array'
- case 42066: // 'attribute' 'attribute'
- case 42105: // 'element' 'attribute'
- case 42168: // 'namespace' 'attribute'
- case 42200: // 'processing-instruction' 'attribute'
- case 42578: // 'attribute' 'base-uri'
- case 42617: // 'element' 'base-uri'
- case 42680: // 'namespace' 'base-uri'
- case 42712: // 'processing-instruction' 'base-uri'
- case 43602: // 'attribute' 'boundary-space'
- case 43641: // 'element' 'boundary-space'
- case 43704: // 'namespace' 'boundary-space'
- case 43736: // 'processing-instruction' 'boundary-space'
- case 44114: // 'attribute' 'break'
- case 44153: // 'element' 'break'
- case 44216: // 'namespace' 'break'
- case 44248: // 'processing-instruction' 'break'
- case 46674: // 'attribute' 'catch'
- case 46713: // 'element' 'catch'
- case 46776: // 'namespace' 'catch'
- case 46808: // 'processing-instruction' 'catch'
- case 47698: // 'attribute' 'child'
- case 47737: // 'element' 'child'
- case 47800: // 'namespace' 'child'
- case 47832: // 'processing-instruction' 'child'
- case 49234: // 'attribute' 'comment'
- case 49273: // 'element' 'comment'
- case 49336: // 'namespace' 'comment'
- case 49368: // 'processing-instruction' 'comment'
- case 49746: // 'attribute' 'constraint'
- case 49785: // 'element' 'constraint'
- case 49848: // 'namespace' 'constraint'
- case 49880: // 'processing-instruction' 'constraint'
- case 50258: // 'attribute' 'construction'
- case 50297: // 'element' 'construction'
- case 50360: // 'namespace' 'construction'
- case 50392: // 'processing-instruction' 'construction'
- case 51794: // 'attribute' 'context'
- case 51833: // 'element' 'context'
- case 51896: // 'namespace' 'context'
- case 51928: // 'processing-instruction' 'context'
- case 52306: // 'attribute' 'continue'
- case 52345: // 'element' 'continue'
- case 52408: // 'namespace' 'continue'
- case 52440: // 'processing-instruction' 'continue'
- case 52818: // 'attribute' 'copy'
- case 52857: // 'element' 'copy'
- case 52920: // 'namespace' 'copy'
- case 52952: // 'processing-instruction' 'copy'
- case 53330: // 'attribute' 'copy-namespaces'
- case 53369: // 'element' 'copy-namespaces'
- case 53432: // 'namespace' 'copy-namespaces'
- case 53464: // 'processing-instruction' 'copy-namespaces'
- case 54354: // 'attribute' 'decimal-format'
- case 54393: // 'element' 'decimal-format'
- case 54456: // 'namespace' 'decimal-format'
- case 54488: // 'processing-instruction' 'decimal-format'
- case 55378: // 'attribute' 'declare'
- case 55417: // 'element' 'declare'
- case 55480: // 'namespace' 'declare'
- case 55512: // 'processing-instruction' 'declare'
- case 56402: // 'attribute' 'delete'
- case 56441: // 'element' 'delete'
- case 56504: // 'namespace' 'delete'
- case 56536: // 'processing-instruction' 'delete'
- case 56914: // 'attribute' 'descendant'
- case 56953: // 'element' 'descendant'
- case 57016: // 'namespace' 'descendant'
- case 57048: // 'processing-instruction' 'descendant'
- case 57426: // 'attribute' 'descendant-or-self'
- case 57465: // 'element' 'descendant-or-self'
- case 57528: // 'namespace' 'descendant-or-self'
- case 57560: // 'processing-instruction' 'descendant-or-self'
- case 61010: // 'attribute' 'document'
- case 61049: // 'element' 'document'
- case 61112: // 'namespace' 'document'
- case 61144: // 'processing-instruction' 'document'
- case 61522: // 'attribute' 'document-node'
- case 61561: // 'element' 'document-node'
- case 61624: // 'namespace' 'document-node'
- case 61656: // 'processing-instruction' 'document-node'
- case 62034: // 'attribute' 'element'
- case 62073: // 'element' 'element'
- case 62136: // 'namespace' 'element'
- case 62168: // 'processing-instruction' 'element'
- case 63570: // 'attribute' 'empty-sequence'
- case 63609: // 'element' 'empty-sequence'
- case 63672: // 'namespace' 'empty-sequence'
- case 63704: // 'processing-instruction' 'empty-sequence'
- case 64082: // 'attribute' 'encoding'
- case 64121: // 'element' 'encoding'
- case 64184: // 'namespace' 'encoding'
- case 64216: // 'processing-instruction' 'encoding'
- case 66130: // 'attribute' 'every'
- case 66169: // 'element' 'every'
- case 66232: // 'namespace' 'every'
- case 66264: // 'processing-instruction' 'every'
- case 67666: // 'attribute' 'exit'
- case 67705: // 'element' 'exit'
- case 67768: // 'namespace' 'exit'
- case 67800: // 'processing-instruction' 'exit'
- case 68178: // 'attribute' 'external'
- case 68217: // 'element' 'external'
- case 68280: // 'namespace' 'external'
- case 68312: // 'processing-instruction' 'external'
- case 68690: // 'attribute' 'first'
- case 68729: // 'element' 'first'
- case 68792: // 'namespace' 'first'
- case 68824: // 'processing-instruction' 'first'
- case 69202: // 'attribute' 'following'
- case 69241: // 'element' 'following'
- case 69304: // 'namespace' 'following'
- case 69336: // 'processing-instruction' 'following'
- case 69714: // 'attribute' 'following-sibling'
- case 69753: // 'element' 'following-sibling'
- case 69816: // 'namespace' 'following-sibling'
- case 69848: // 'processing-instruction' 'following-sibling'
- case 72274: // 'attribute' 'ft-option'
- case 72313: // 'element' 'ft-option'
- case 72376: // 'namespace' 'ft-option'
- case 72408: // 'processing-instruction' 'ft-option'
- case 74322: // 'attribute' 'function'
- case 74361: // 'element' 'function'
- case 74424: // 'namespace' 'function'
- case 74456: // 'processing-instruction' 'function'
- case 77906: // 'attribute' 'if'
- case 77945: // 'element' 'if'
- case 78008: // 'namespace' 'if'
- case 78040: // 'processing-instruction' 'if'
- case 78418: // 'attribute' 'import'
- case 78457: // 'element' 'import'
- case 78520: // 'namespace' 'import'
- case 78552: // 'processing-instruction' 'import'
- case 78930: // 'attribute' 'in'
- case 78969: // 'element' 'in'
- case 79032: // 'namespace' 'in'
- case 79064: // 'processing-instruction' 'in'
- case 79442: // 'attribute' 'index'
- case 79481: // 'element' 'index'
- case 79544: // 'namespace' 'index'
- case 79576: // 'processing-instruction' 'index'
- case 81490: // 'attribute' 'insert'
- case 81529: // 'element' 'insert'
- case 81592: // 'namespace' 'insert'
- case 81624: // 'processing-instruction' 'insert'
- case 82514: // 'attribute' 'integrity'
- case 82553: // 'element' 'integrity'
- case 82616: // 'namespace' 'integrity'
- case 82648: // 'processing-instruction' 'integrity'
- case 84562: // 'attribute' 'item'
- case 84601: // 'element' 'item'
- case 84664: // 'namespace' 'item'
- case 84696: // 'processing-instruction' 'item'
- case 85586: // 'attribute' 'json-item'
- case 85625: // 'element' 'json-item'
- case 87122: // 'attribute' 'last'
- case 87161: // 'element' 'last'
- case 87224: // 'namespace' 'last'
- case 87256: // 'processing-instruction' 'last'
- case 87634: // 'attribute' 'lax'
- case 87673: // 'element' 'lax'
- case 87736: // 'namespace' 'lax'
- case 87768: // 'processing-instruction' 'lax'
- case 90194: // 'attribute' 'loop'
- case 90233: // 'element' 'loop'
- case 90296: // 'namespace' 'loop'
- case 90328: // 'processing-instruction' 'loop'
- case 93266: // 'attribute' 'module'
- case 93305: // 'element' 'module'
- case 93368: // 'namespace' 'module'
- case 93400: // 'processing-instruction' 'module'
- case 94290: // 'attribute' 'namespace'
- case 94329: // 'element' 'namespace'
- case 94392: // 'namespace' 'namespace'
- case 94424: // 'processing-instruction' 'namespace'
- case 94802: // 'attribute' 'namespace-node'
- case 94841: // 'element' 'namespace-node'
- case 94904: // 'namespace' 'namespace-node'
- case 94936: // 'processing-instruction' 'namespace-node'
- case 97874: // 'attribute' 'node'
- case 97913: // 'element' 'node'
- case 97976: // 'namespace' 'node'
- case 98008: // 'processing-instruction' 'node'
- case 98386: // 'attribute' 'nodes'
- case 98425: // 'element' 'nodes'
- case 98488: // 'namespace' 'nodes'
- case 98520: // 'processing-instruction' 'nodes'
- case 99410: // 'attribute' 'object'
- case 99449: // 'element' 'object'
- case 101970: // 'attribute' 'option'
- case 102009: // 'element' 'option'
- case 102072: // 'namespace' 'option'
- case 102104: // 'processing-instruction' 'option'
- case 103506: // 'attribute' 'ordered'
- case 103545: // 'element' 'ordered'
- case 103608: // 'namespace' 'ordered'
- case 103640: // 'processing-instruction' 'ordered'
- case 104018: // 'attribute' 'ordering'
- case 104057: // 'element' 'ordering'
- case 104120: // 'namespace' 'ordering'
- case 104152: // 'processing-instruction' 'ordering'
- case 105554: // 'attribute' 'parent'
- case 105593: // 'element' 'parent'
- case 105656: // 'namespace' 'parent'
- case 105688: // 'processing-instruction' 'parent'
- case 108626: // 'attribute' 'preceding'
- case 108665: // 'element' 'preceding'
- case 108728: // 'namespace' 'preceding'
- case 108760: // 'processing-instruction' 'preceding'
- case 109138: // 'attribute' 'preceding-sibling'
- case 109177: // 'element' 'preceding-sibling'
- case 109240: // 'namespace' 'preceding-sibling'
- case 109272: // 'processing-instruction' 'preceding-sibling'
- case 110674: // 'attribute' 'processing-instruction'
- case 110713: // 'element' 'processing-instruction'
- case 110776: // 'namespace' 'processing-instruction'
- case 110808: // 'processing-instruction' 'processing-instruction'
- case 111698: // 'attribute' 'rename'
- case 111737: // 'element' 'rename'
- case 111800: // 'namespace' 'rename'
- case 111832: // 'processing-instruction' 'rename'
- case 112210: // 'attribute' 'replace'
- case 112249: // 'element' 'replace'
- case 112312: // 'namespace' 'replace'
- case 112344: // 'processing-instruction' 'replace'
- case 113234: // 'attribute' 'returning'
- case 113273: // 'element' 'returning'
- case 113336: // 'namespace' 'returning'
- case 113368: // 'processing-instruction' 'returning'
- case 113746: // 'attribute' 'revalidation'
- case 113785: // 'element' 'revalidation'
- case 113848: // 'namespace' 'revalidation'
- case 113880: // 'processing-instruction' 'revalidation'
- case 115282: // 'attribute' 'schema'
- case 115321: // 'element' 'schema'
- case 115384: // 'namespace' 'schema'
- case 115416: // 'processing-instruction' 'schema'
- case 115794: // 'attribute' 'schema-attribute'
- case 115833: // 'element' 'schema-attribute'
- case 115896: // 'namespace' 'schema-attribute'
- case 115928: // 'processing-instruction' 'schema-attribute'
- case 116306: // 'attribute' 'schema-element'
- case 116345: // 'element' 'schema-element'
- case 116408: // 'namespace' 'schema-element'
- case 116440: // 'processing-instruction' 'schema-element'
- case 116818: // 'attribute' 'score'
- case 116857: // 'element' 'score'
- case 116920: // 'namespace' 'score'
- case 116952: // 'processing-instruction' 'score'
- case 117330: // 'attribute' 'self'
- case 117369: // 'element' 'self'
- case 117432: // 'namespace' 'self'
- case 117464: // 'processing-instruction' 'self'
- case 119890: // 'attribute' 'sliding'
- case 119929: // 'element' 'sliding'
- case 119992: // 'namespace' 'sliding'
- case 120024: // 'processing-instruction' 'sliding'
- case 120402: // 'attribute' 'some'
- case 120441: // 'element' 'some'
- case 120504: // 'namespace' 'some'
- case 120536: // 'processing-instruction' 'some'
- case 122962: // 'attribute' 'strict'
- case 123001: // 'element' 'strict'
- case 123064: // 'namespace' 'strict'
- case 123096: // 'processing-instruction' 'strict'
- case 124498: // 'attribute' 'switch'
- case 124537: // 'element' 'switch'
- case 124600: // 'namespace' 'switch'
- case 124632: // 'processing-instruction' 'switch'
- case 125010: // 'attribute' 'text'
- case 125049: // 'element' 'text'
- case 125112: // 'namespace' 'text'
- case 125144: // 'processing-instruction' 'text'
- case 128082: // 'attribute' 'try'
- case 128121: // 'element' 'try'
- case 128184: // 'namespace' 'try'
- case 128216: // 'processing-instruction' 'try'
- case 128594: // 'attribute' 'tumbling'
- case 128633: // 'element' 'tumbling'
- case 128696: // 'namespace' 'tumbling'
- case 128728: // 'processing-instruction' 'tumbling'
- case 129106: // 'attribute' 'type'
- case 129145: // 'element' 'type'
- case 129208: // 'namespace' 'type'
- case 129240: // 'processing-instruction' 'type'
- case 129618: // 'attribute' 'typeswitch'
- case 129657: // 'element' 'typeswitch'
- case 129720: // 'namespace' 'typeswitch'
- case 129752: // 'processing-instruction' 'typeswitch'
- case 131154: // 'attribute' 'unordered'
- case 131193: // 'element' 'unordered'
- case 131256: // 'namespace' 'unordered'
- case 131288: // 'processing-instruction' 'unordered'
- case 131666: // 'attribute' 'updating'
- case 131705: // 'element' 'updating'
- case 131768: // 'namespace' 'updating'
- case 131800: // 'processing-instruction' 'updating'
- case 133202: // 'attribute' 'validate'
- case 133241: // 'element' 'validate'
- case 133304: // 'namespace' 'validate'
- case 133336: // 'processing-instruction' 'validate'
- case 133714: // 'attribute' 'value'
- case 133753: // 'element' 'value'
- case 133816: // 'namespace' 'value'
- case 133848: // 'processing-instruction' 'value'
- case 134226: // 'attribute' 'variable'
- case 134265: // 'element' 'variable'
- case 134328: // 'namespace' 'variable'
- case 134360: // 'processing-instruction' 'variable'
- case 134738: // 'attribute' 'version'
- case 134777: // 'element' 'version'
- case 134840: // 'namespace' 'version'
- case 134872: // 'processing-instruction' 'version'
- case 136786: // 'attribute' 'while'
- case 136825: // 'element' 'while'
- case 136888: // 'namespace' 'while'
- case 136920: // 'processing-instruction' 'while'
- case 140370: // 'attribute' 'xquery'
- case 140409: // 'element' 'xquery'
- case 140472: // 'namespace' 'xquery'
- case 140504: // 'processing-instruction' 'xquery'
- case 141394: // 'attribute' '{'
- case 141408: // 'comment' '{'
- case 141431: // 'document' '{'
- case 141433: // 'element' '{'
- case 141496: // 'namespace' '{'
- case 141514: // 'ordered' '{'
- case 141528: // 'processing-instruction' '{'
- case 141556: // 'text' '{'
- case 141568: // 'unordered' '{'
- parse_PostfixExpr();
- break;
- default:
- parse_AxisStep();
- }
- eventHandler.endNonterminal("StepExpr", e0);
- }
-
- function try_StepExpr()
- {
- switch (l1)
- {
- case 82: // 'attribute'
- lookahead2W(282); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
- break;
- case 121: // 'element'
- lookahead2W(280); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
- break;
- case 184: // 'namespace'
- case 216: // 'processing-instruction'
- lookahead2W(279); // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' |
- break;
- case 96: // 'comment'
- case 119: // 'document'
- case 202: // 'ordered'
- case 244: // 'text'
- case 256: // 'unordered'
- lookahead2W(245); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 124: // 'empty-sequence'
- case 152: // 'if'
- case 165: // 'item'
- case 243: // 'switch'
- case 253: // 'typeswitch'
- lookahead2W(238); // S^WS | EOF | '!' | '!=' | '#' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 73: // 'ancestor'
- case 74: // 'ancestor-or-self'
- case 93: // 'child'
- case 111: // 'descendant'
- case 112: // 'descendant-or-self'
- case 135: // 'following'
- case 136: // 'following-sibling'
- case 206: // 'parent'
- case 212: // 'preceding'
- case 213: // 'preceding-sibling'
- case 229: // 'self'
- lookahead2W(244); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 6: // EQName^Token
- case 70: // 'after'
- case 72: // 'allowing'
- case 75: // 'and'
- case 78: // 'array'
- case 79: // 'as'
- case 80: // 'ascending'
- case 81: // 'at'
- case 83: // 'base-uri'
- case 84: // 'before'
- case 85: // 'boundary-space'
- case 86: // 'break'
- case 88: // 'case'
- case 89: // 'cast'
- case 90: // 'castable'
- case 91: // 'catch'
- case 94: // 'collation'
- case 97: // 'constraint'
- case 98: // 'construction'
- case 101: // 'context'
- case 102: // 'continue'
- case 103: // 'copy'
- case 104: // 'copy-namespaces'
- case 105: // 'count'
- case 106: // 'decimal-format'
- case 108: // 'declare'
- case 109: // 'default'
- case 110: // 'delete'
- case 113: // 'descending'
- case 118: // 'div'
- case 120: // 'document-node'
- case 122: // 'else'
- case 123: // 'empty'
- case 125: // 'encoding'
- case 126: // 'end'
- case 128: // 'eq'
- case 129: // 'every'
- case 131: // 'except'
- case 132: // 'exit'
- case 133: // 'external'
- case 134: // 'first'
- case 137: // 'for'
- case 141: // 'ft-option'
- case 145: // 'function'
- case 146: // 'ge'
- case 148: // 'group'
- case 150: // 'gt'
- case 151: // 'idiv'
- case 153: // 'import'
- case 154: // 'in'
- case 155: // 'index'
- case 159: // 'insert'
- case 160: // 'instance'
- case 161: // 'integrity'
- case 162: // 'intersect'
- case 163: // 'into'
- case 164: // 'is'
- case 167: // 'json-item'
- case 170: // 'last'
- case 171: // 'lax'
- case 172: // 'le'
- case 174: // 'let'
- case 176: // 'loop'
- case 178: // 'lt'
- case 180: // 'mod'
- case 181: // 'modify'
- case 182: // 'module'
- case 185: // 'namespace-node'
- case 186: // 'ne'
- case 191: // 'node'
- case 192: // 'nodes'
- case 194: // 'object'
- case 198: // 'only'
- case 199: // 'option'
- case 200: // 'or'
- case 201: // 'order'
- case 203: // 'ordering'
- case 218: // 'rename'
- case 219: // 'replace'
- case 220: // 'return'
- case 221: // 'returning'
- case 222: // 'revalidation'
- case 224: // 'satisfies'
- case 225: // 'schema'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 228: // 'score'
- case 234: // 'sliding'
- case 235: // 'some'
- case 236: // 'stable'
- case 237: // 'start'
- case 240: // 'strict'
- case 248: // 'to'
- case 249: // 'treat'
- case 250: // 'try'
- case 251: // 'tumbling'
- case 252: // 'type'
- case 254: // 'union'
- case 257: // 'updating'
- case 260: // 'validate'
- case 261: // 'value'
- case 262: // 'variable'
- case 263: // 'version'
- case 266: // 'where'
- case 267: // 'while'
- case 270: // 'with'
- case 274: // 'xquery'
- lookahead2W(242); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- default:
- lk = l1;
- }
- if (lk == 17486 // 'array' '('
- || lk == 17575 // 'json-item' '('
- || lk == 17602 // 'object' '('
- || lk == 35922 // 'attribute' 'after'
- || lk == 35961 // 'element' 'after'
- || lk == 36024 // 'namespace' 'after'
- || lk == 36056 // 'processing-instruction' 'after'
- || lk == 38482 // 'attribute' 'and'
- || lk == 38521 // 'element' 'and'
- || lk == 38584 // 'namespace' 'and'
- || lk == 38616 // 'processing-instruction' 'and'
- || lk == 40530 // 'attribute' 'as'
- || lk == 40569 // 'element' 'as'
- || lk == 40632 // 'namespace' 'as'
- || lk == 40664 // 'processing-instruction' 'as'
- || lk == 41042 // 'attribute' 'ascending'
- || lk == 41081 // 'element' 'ascending'
- || lk == 41144 // 'namespace' 'ascending'
- || lk == 41176 // 'processing-instruction' 'ascending'
- || lk == 41554 // 'attribute' 'at'
- || lk == 41593 // 'element' 'at'
- || lk == 41656 // 'namespace' 'at'
- || lk == 41688 // 'processing-instruction' 'at'
- || lk == 43090 // 'attribute' 'before'
- || lk == 43129 // 'element' 'before'
- || lk == 43192 // 'namespace' 'before'
- || lk == 43224 // 'processing-instruction' 'before'
- || lk == 45138 // 'attribute' 'case'
- || lk == 45177 // 'element' 'case'
- || lk == 45240 // 'namespace' 'case'
- || lk == 45272 // 'processing-instruction' 'case'
- || lk == 45650 // 'attribute' 'cast'
- || lk == 45689 // 'element' 'cast'
- || lk == 45752 // 'namespace' 'cast'
- || lk == 45784 // 'processing-instruction' 'cast'
- || lk == 46162 // 'attribute' 'castable'
- || lk == 46201 // 'element' 'castable'
- || lk == 46264 // 'namespace' 'castable'
- || lk == 46296 // 'processing-instruction' 'castable'
- || lk == 48210 // 'attribute' 'collation'
- || lk == 48249 // 'element' 'collation'
- || lk == 48312 // 'namespace' 'collation'
- || lk == 48344 // 'processing-instruction' 'collation'
- || lk == 53842 // 'attribute' 'count'
- || lk == 53881 // 'element' 'count'
- || lk == 53944 // 'namespace' 'count'
- || lk == 53976 // 'processing-instruction' 'count'
- || lk == 55890 // 'attribute' 'default'
- || lk == 55929 // 'element' 'default'
- || lk == 55992 // 'namespace' 'default'
- || lk == 56024 // 'processing-instruction' 'default'
- || lk == 57938 // 'attribute' 'descending'
- || lk == 57977 // 'element' 'descending'
- || lk == 58040 // 'namespace' 'descending'
- || lk == 58072 // 'processing-instruction' 'descending'
- || lk == 60498 // 'attribute' 'div'
- || lk == 60537 // 'element' 'div'
- || lk == 60600 // 'namespace' 'div'
- || lk == 60632 // 'processing-instruction' 'div'
- || lk == 62546 // 'attribute' 'else'
- || lk == 62585 // 'element' 'else'
- || lk == 62648 // 'namespace' 'else'
- || lk == 62680 // 'processing-instruction' 'else'
- || lk == 63058 // 'attribute' 'empty'
- || lk == 63097 // 'element' 'empty'
- || lk == 63160 // 'namespace' 'empty'
- || lk == 63192 // 'processing-instruction' 'empty'
- || lk == 64594 // 'attribute' 'end'
- || lk == 64633 // 'element' 'end'
- || lk == 64696 // 'namespace' 'end'
- || lk == 64728 // 'processing-instruction' 'end'
- || lk == 65618 // 'attribute' 'eq'
- || lk == 65657 // 'element' 'eq'
- || lk == 65720 // 'namespace' 'eq'
- || lk == 65752 // 'processing-instruction' 'eq'
- || lk == 67154 // 'attribute' 'except'
- || lk == 67193 // 'element' 'except'
- || lk == 67256 // 'namespace' 'except'
- || lk == 67288 // 'processing-instruction' 'except'
- || lk == 70226 // 'attribute' 'for'
- || lk == 70265 // 'element' 'for'
- || lk == 70328 // 'namespace' 'for'
- || lk == 70360 // 'processing-instruction' 'for'
- || lk == 74834 // 'attribute' 'ge'
- || lk == 74873 // 'element' 'ge'
- || lk == 74936 // 'namespace' 'ge'
- || lk == 74968 // 'processing-instruction' 'ge'
- || lk == 75858 // 'attribute' 'group'
- || lk == 75897 // 'element' 'group'
- || lk == 75960 // 'namespace' 'group'
- || lk == 75992 // 'processing-instruction' 'group'
- || lk == 76882 // 'attribute' 'gt'
- || lk == 76921 // 'element' 'gt'
- || lk == 76984 // 'namespace' 'gt'
- || lk == 77016 // 'processing-instruction' 'gt'
- || lk == 77394 // 'attribute' 'idiv'
- || lk == 77433 // 'element' 'idiv'
- || lk == 77496 // 'namespace' 'idiv'
- || lk == 77528 // 'processing-instruction' 'idiv'
- || lk == 82002 // 'attribute' 'instance'
- || lk == 82041 // 'element' 'instance'
- || lk == 82104 // 'namespace' 'instance'
- || lk == 82136 // 'processing-instruction' 'instance'
- || lk == 83026 // 'attribute' 'intersect'
- || lk == 83065 // 'element' 'intersect'
- || lk == 83128 // 'namespace' 'intersect'
- || lk == 83160 // 'processing-instruction' 'intersect'
- || lk == 83538 // 'attribute' 'into'
- || lk == 83577 // 'element' 'into'
- || lk == 83640 // 'namespace' 'into'
- || lk == 83672 // 'processing-instruction' 'into'
- || lk == 84050 // 'attribute' 'is'
- || lk == 84089 // 'element' 'is'
- || lk == 84152 // 'namespace' 'is'
- || lk == 84184 // 'processing-instruction' 'is'
- || lk == 88146 // 'attribute' 'le'
- || lk == 88185 // 'element' 'le'
- || lk == 88248 // 'namespace' 'le'
- || lk == 88280 // 'processing-instruction' 'le'
- || lk == 89170 // 'attribute' 'let'
- || lk == 89209 // 'element' 'let'
- || lk == 89272 // 'namespace' 'let'
- || lk == 89304 // 'processing-instruction' 'let'
- || lk == 91218 // 'attribute' 'lt'
- || lk == 91257 // 'element' 'lt'
- || lk == 91320 // 'namespace' 'lt'
- || lk == 91352 // 'processing-instruction' 'lt'
- || lk == 92242 // 'attribute' 'mod'
- || lk == 92281 // 'element' 'mod'
- || lk == 92344 // 'namespace' 'mod'
- || lk == 92376 // 'processing-instruction' 'mod'
- || lk == 92754 // 'attribute' 'modify'
- || lk == 92793 // 'element' 'modify'
- || lk == 92856 // 'namespace' 'modify'
- || lk == 92888 // 'processing-instruction' 'modify'
- || lk == 95314 // 'attribute' 'ne'
- || lk == 95353 // 'element' 'ne'
- || lk == 95416 // 'namespace' 'ne'
- || lk == 95448 // 'processing-instruction' 'ne'
- || lk == 101458 // 'attribute' 'only'
- || lk == 101497 // 'element' 'only'
- || lk == 101560 // 'namespace' 'only'
- || lk == 101592 // 'processing-instruction' 'only'
- || lk == 102482 // 'attribute' 'or'
- || lk == 102521 // 'element' 'or'
- || lk == 102584 // 'namespace' 'or'
- || lk == 102616 // 'processing-instruction' 'or'
- || lk == 102994 // 'attribute' 'order'
- || lk == 103033 // 'element' 'order'
- || lk == 103096 // 'namespace' 'order'
- || lk == 103128 // 'processing-instruction' 'order'
- || lk == 112722 // 'attribute' 'return'
- || lk == 112761 // 'element' 'return'
- || lk == 112824 // 'namespace' 'return'
- || lk == 112856 // 'processing-instruction' 'return'
- || lk == 114770 // 'attribute' 'satisfies'
- || lk == 114809 // 'element' 'satisfies'
- || lk == 114872 // 'namespace' 'satisfies'
- || lk == 114904 // 'processing-instruction' 'satisfies'
- || lk == 120914 // 'attribute' 'stable'
- || lk == 120953 // 'element' 'stable'
- || lk == 121016 // 'namespace' 'stable'
- || lk == 121048 // 'processing-instruction' 'stable'
- || lk == 121426 // 'attribute' 'start'
- || lk == 121465 // 'element' 'start'
- || lk == 121528 // 'namespace' 'start'
- || lk == 121560 // 'processing-instruction' 'start'
- || lk == 127058 // 'attribute' 'to'
- || lk == 127097 // 'element' 'to'
- || lk == 127160 // 'namespace' 'to'
- || lk == 127192 // 'processing-instruction' 'to'
- || lk == 127570 // 'attribute' 'treat'
- || lk == 127609 // 'element' 'treat'
- || lk == 127672 // 'namespace' 'treat'
- || lk == 127704 // 'processing-instruction' 'treat'
- || lk == 130130 // 'attribute' 'union'
- || lk == 130169 // 'element' 'union'
- || lk == 130232 // 'namespace' 'union'
- || lk == 130264 // 'processing-instruction' 'union'
- || lk == 136274 // 'attribute' 'where'
- || lk == 136313 // 'element' 'where'
- || lk == 136376 // 'namespace' 'where'
- || lk == 136408 // 'processing-instruction' 'where'
- || lk == 138322 // 'attribute' 'with'
- || lk == 138361 // 'element' 'with'
- || lk == 138424 // 'namespace' 'with'
- || lk == 138456) // 'processing-instruction' 'with'
- {
- lk = memoized(3, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_PostfixExpr();
- memoize(3, e0A, -1);
- lk = -3;
- }
- catch (p1A)
- {
- lk = -2;
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(3, e0A, -2);
- }
- }
- }
- switch (lk)
- {
- case -1:
- case 8: // IntegerLiteral
- case 9: // DecimalLiteral
- case 10: // DoubleLiteral
- case 11: // StringLiteral
- case 31: // '$'
- case 32: // '%'
- case 34: // '('
- case 44: // '.'
- case 54: // '<'
- case 55: // '<!--'
- case 59: // '<?'
- case 68: // '['
- case 276: // '{'
- case 278: // '{|'
- case 3154: // 'attribute' EQName^Token
- case 3193: // 'element' EQName^Token
- case 9912: // 'namespace' NCName^Token
- case 9944: // 'processing-instruction' NCName^Token
- case 14854: // EQName^Token '#'
- case 14918: // 'after' '#'
- case 14920: // 'allowing' '#'
- case 14921: // 'ancestor' '#'
- case 14922: // 'ancestor-or-self' '#'
- case 14923: // 'and' '#'
- case 14926: // 'array' '#'
- case 14927: // 'as' '#'
- case 14928: // 'ascending' '#'
- case 14929: // 'at' '#'
- case 14930: // 'attribute' '#'
- case 14931: // 'base-uri' '#'
- case 14932: // 'before' '#'
- case 14933: // 'boundary-space' '#'
- case 14934: // 'break' '#'
- case 14936: // 'case' '#'
- case 14937: // 'cast' '#'
- case 14938: // 'castable' '#'
- case 14939: // 'catch' '#'
- case 14941: // 'child' '#'
- case 14942: // 'collation' '#'
- case 14944: // 'comment' '#'
- case 14945: // 'constraint' '#'
- case 14946: // 'construction' '#'
- case 14949: // 'context' '#'
- case 14950: // 'continue' '#'
- case 14951: // 'copy' '#'
- case 14952: // 'copy-namespaces' '#'
- case 14953: // 'count' '#'
- case 14954: // 'decimal-format' '#'
- case 14956: // 'declare' '#'
- case 14957: // 'default' '#'
- case 14958: // 'delete' '#'
- case 14959: // 'descendant' '#'
- case 14960: // 'descendant-or-self' '#'
- case 14961: // 'descending' '#'
- case 14966: // 'div' '#'
- case 14967: // 'document' '#'
- case 14968: // 'document-node' '#'
- case 14969: // 'element' '#'
- case 14970: // 'else' '#'
- case 14971: // 'empty' '#'
- case 14972: // 'empty-sequence' '#'
- case 14973: // 'encoding' '#'
- case 14974: // 'end' '#'
- case 14976: // 'eq' '#'
- case 14977: // 'every' '#'
- case 14979: // 'except' '#'
- case 14980: // 'exit' '#'
- case 14981: // 'external' '#'
- case 14982: // 'first' '#'
- case 14983: // 'following' '#'
- case 14984: // 'following-sibling' '#'
- case 14985: // 'for' '#'
- case 14989: // 'ft-option' '#'
- case 14993: // 'function' '#'
- case 14994: // 'ge' '#'
- case 14996: // 'group' '#'
- case 14998: // 'gt' '#'
- case 14999: // 'idiv' '#'
- case 15000: // 'if' '#'
- case 15001: // 'import' '#'
- case 15002: // 'in' '#'
- case 15003: // 'index' '#'
- case 15007: // 'insert' '#'
- case 15008: // 'instance' '#'
- case 15009: // 'integrity' '#'
- case 15010: // 'intersect' '#'
- case 15011: // 'into' '#'
- case 15012: // 'is' '#'
- case 15013: // 'item' '#'
- case 15015: // 'json-item' '#'
- case 15018: // 'last' '#'
- case 15019: // 'lax' '#'
- case 15020: // 'le' '#'
- case 15022: // 'let' '#'
- case 15024: // 'loop' '#'
- case 15026: // 'lt' '#'
- case 15028: // 'mod' '#'
- case 15029: // 'modify' '#'
- case 15030: // 'module' '#'
- case 15032: // 'namespace' '#'
- case 15033: // 'namespace-node' '#'
- case 15034: // 'ne' '#'
- case 15039: // 'node' '#'
- case 15040: // 'nodes' '#'
- case 15042: // 'object' '#'
- case 15046: // 'only' '#'
- case 15047: // 'option' '#'
- case 15048: // 'or' '#'
- case 15049: // 'order' '#'
- case 15050: // 'ordered' '#'
- case 15051: // 'ordering' '#'
- case 15054: // 'parent' '#'
- case 15060: // 'preceding' '#'
- case 15061: // 'preceding-sibling' '#'
- case 15064: // 'processing-instruction' '#'
- case 15066: // 'rename' '#'
- case 15067: // 'replace' '#'
- case 15068: // 'return' '#'
- case 15069: // 'returning' '#'
- case 15070: // 'revalidation' '#'
- case 15072: // 'satisfies' '#'
- case 15073: // 'schema' '#'
- case 15074: // 'schema-attribute' '#'
- case 15075: // 'schema-element' '#'
- case 15076: // 'score' '#'
- case 15077: // 'self' '#'
- case 15082: // 'sliding' '#'
- case 15083: // 'some' '#'
- case 15084: // 'stable' '#'
- case 15085: // 'start' '#'
- case 15088: // 'strict' '#'
- case 15091: // 'switch' '#'
- case 15092: // 'text' '#'
- case 15096: // 'to' '#'
- case 15097: // 'treat' '#'
- case 15098: // 'try' '#'
- case 15099: // 'tumbling' '#'
- case 15100: // 'type' '#'
- case 15101: // 'typeswitch' '#'
- case 15102: // 'union' '#'
- case 15104: // 'unordered' '#'
- case 15105: // 'updating' '#'
- case 15108: // 'validate' '#'
- case 15109: // 'value' '#'
- case 15110: // 'variable' '#'
- case 15111: // 'version' '#'
- case 15114: // 'where' '#'
- case 15115: // 'while' '#'
- case 15118: // 'with' '#'
- case 15122: // 'xquery' '#'
- case 17414: // EQName^Token '('
- case 17478: // 'after' '('
- case 17480: // 'allowing' '('
- case 17481: // 'ancestor' '('
- case 17482: // 'ancestor-or-self' '('
- case 17483: // 'and' '('
- case 17487: // 'as' '('
- case 17488: // 'ascending' '('
- case 17489: // 'at' '('
- case 17491: // 'base-uri' '('
- case 17492: // 'before' '('
- case 17493: // 'boundary-space' '('
- case 17494: // 'break' '('
- case 17496: // 'case' '('
- case 17497: // 'cast' '('
- case 17498: // 'castable' '('
- case 17499: // 'catch' '('
- case 17501: // 'child' '('
- case 17502: // 'collation' '('
- case 17505: // 'constraint' '('
- case 17506: // 'construction' '('
- case 17509: // 'context' '('
- case 17510: // 'continue' '('
- case 17511: // 'copy' '('
- case 17512: // 'copy-namespaces' '('
- case 17513: // 'count' '('
- case 17514: // 'decimal-format' '('
- case 17516: // 'declare' '('
- case 17517: // 'default' '('
- case 17518: // 'delete' '('
- case 17519: // 'descendant' '('
- case 17520: // 'descendant-or-self' '('
- case 17521: // 'descending' '('
- case 17526: // 'div' '('
- case 17527: // 'document' '('
- case 17530: // 'else' '('
- case 17531: // 'empty' '('
- case 17533: // 'encoding' '('
- case 17534: // 'end' '('
- case 17536: // 'eq' '('
- case 17537: // 'every' '('
- case 17539: // 'except' '('
- case 17540: // 'exit' '('
- case 17541: // 'external' '('
- case 17542: // 'first' '('
- case 17543: // 'following' '('
- case 17544: // 'following-sibling' '('
- case 17545: // 'for' '('
- case 17549: // 'ft-option' '('
- case 17553: // 'function' '('
- case 17554: // 'ge' '('
- case 17556: // 'group' '('
- case 17558: // 'gt' '('
- case 17559: // 'idiv' '('
- case 17561: // 'import' '('
- case 17562: // 'in' '('
- case 17563: // 'index' '('
- case 17567: // 'insert' '('
- case 17568: // 'instance' '('
- case 17569: // 'integrity' '('
- case 17570: // 'intersect' '('
- case 17571: // 'into' '('
- case 17572: // 'is' '('
- case 17578: // 'last' '('
- case 17579: // 'lax' '('
- case 17580: // 'le' '('
- case 17582: // 'let' '('
- case 17584: // 'loop' '('
- case 17586: // 'lt' '('
- case 17588: // 'mod' '('
- case 17589: // 'modify' '('
- case 17590: // 'module' '('
- case 17592: // 'namespace' '('
- case 17594: // 'ne' '('
- case 17600: // 'nodes' '('
- case 17606: // 'only' '('
- case 17607: // 'option' '('
- case 17608: // 'or' '('
- case 17609: // 'order' '('
- case 17610: // 'ordered' '('
- case 17611: // 'ordering' '('
- case 17614: // 'parent' '('
- case 17620: // 'preceding' '('
- case 17621: // 'preceding-sibling' '('
- case 17626: // 'rename' '('
- case 17627: // 'replace' '('
- case 17628: // 'return' '('
- case 17629: // 'returning' '('
- case 17630: // 'revalidation' '('
- case 17632: // 'satisfies' '('
- case 17633: // 'schema' '('
- case 17636: // 'score' '('
- case 17637: // 'self' '('
- case 17642: // 'sliding' '('
- case 17643: // 'some' '('
- case 17644: // 'stable' '('
- case 17645: // 'start' '('
- case 17648: // 'strict' '('
- case 17656: // 'to' '('
- case 17657: // 'treat' '('
- case 17658: // 'try' '('
- case 17659: // 'tumbling' '('
- case 17660: // 'type' '('
- case 17662: // 'union' '('
- case 17664: // 'unordered' '('
- case 17665: // 'updating' '('
- case 17668: // 'validate' '('
- case 17669: // 'value' '('
- case 17670: // 'variable' '('
- case 17671: // 'version' '('
- case 17674: // 'where' '('
- case 17675: // 'while' '('
- case 17678: // 'with' '('
- case 17682: // 'xquery' '('
- case 36946: // 'attribute' 'allowing'
- case 36985: // 'element' 'allowing'
- case 37048: // 'namespace' 'allowing'
- case 37080: // 'processing-instruction' 'allowing'
- case 37458: // 'attribute' 'ancestor'
- case 37497: // 'element' 'ancestor'
- case 37560: // 'namespace' 'ancestor'
- case 37592: // 'processing-instruction' 'ancestor'
- case 37970: // 'attribute' 'ancestor-or-self'
- case 38009: // 'element' 'ancestor-or-self'
- case 38072: // 'namespace' 'ancestor-or-self'
- case 38104: // 'processing-instruction' 'ancestor-or-self'
- case 40018: // 'attribute' 'array'
- case 40057: // 'element' 'array'
- case 42066: // 'attribute' 'attribute'
- case 42105: // 'element' 'attribute'
- case 42168: // 'namespace' 'attribute'
- case 42200: // 'processing-instruction' 'attribute'
- case 42578: // 'attribute' 'base-uri'
- case 42617: // 'element' 'base-uri'
- case 42680: // 'namespace' 'base-uri'
- case 42712: // 'processing-instruction' 'base-uri'
- case 43602: // 'attribute' 'boundary-space'
- case 43641: // 'element' 'boundary-space'
- case 43704: // 'namespace' 'boundary-space'
- case 43736: // 'processing-instruction' 'boundary-space'
- case 44114: // 'attribute' 'break'
- case 44153: // 'element' 'break'
- case 44216: // 'namespace' 'break'
- case 44248: // 'processing-instruction' 'break'
- case 46674: // 'attribute' 'catch'
- case 46713: // 'element' 'catch'
- case 46776: // 'namespace' 'catch'
- case 46808: // 'processing-instruction' 'catch'
- case 47698: // 'attribute' 'child'
- case 47737: // 'element' 'child'
- case 47800: // 'namespace' 'child'
- case 47832: // 'processing-instruction' 'child'
- case 49234: // 'attribute' 'comment'
- case 49273: // 'element' 'comment'
- case 49336: // 'namespace' 'comment'
- case 49368: // 'processing-instruction' 'comment'
- case 49746: // 'attribute' 'constraint'
- case 49785: // 'element' 'constraint'
- case 49848: // 'namespace' 'constraint'
- case 49880: // 'processing-instruction' 'constraint'
- case 50258: // 'attribute' 'construction'
- case 50297: // 'element' 'construction'
- case 50360: // 'namespace' 'construction'
- case 50392: // 'processing-instruction' 'construction'
- case 51794: // 'attribute' 'context'
- case 51833: // 'element' 'context'
- case 51896: // 'namespace' 'context'
- case 51928: // 'processing-instruction' 'context'
- case 52306: // 'attribute' 'continue'
- case 52345: // 'element' 'continue'
- case 52408: // 'namespace' 'continue'
- case 52440: // 'processing-instruction' 'continue'
- case 52818: // 'attribute' 'copy'
- case 52857: // 'element' 'copy'
- case 52920: // 'namespace' 'copy'
- case 52952: // 'processing-instruction' 'copy'
- case 53330: // 'attribute' 'copy-namespaces'
- case 53369: // 'element' 'copy-namespaces'
- case 53432: // 'namespace' 'copy-namespaces'
- case 53464: // 'processing-instruction' 'copy-namespaces'
- case 54354: // 'attribute' 'decimal-format'
- case 54393: // 'element' 'decimal-format'
- case 54456: // 'namespace' 'decimal-format'
- case 54488: // 'processing-instruction' 'decimal-format'
- case 55378: // 'attribute' 'declare'
- case 55417: // 'element' 'declare'
- case 55480: // 'namespace' 'declare'
- case 55512: // 'processing-instruction' 'declare'
- case 56402: // 'attribute' 'delete'
- case 56441: // 'element' 'delete'
- case 56504: // 'namespace' 'delete'
- case 56536: // 'processing-instruction' 'delete'
- case 56914: // 'attribute' 'descendant'
- case 56953: // 'element' 'descendant'
- case 57016: // 'namespace' 'descendant'
- case 57048: // 'processing-instruction' 'descendant'
- case 57426: // 'attribute' 'descendant-or-self'
- case 57465: // 'element' 'descendant-or-self'
- case 57528: // 'namespace' 'descendant-or-self'
- case 57560: // 'processing-instruction' 'descendant-or-self'
- case 61010: // 'attribute' 'document'
- case 61049: // 'element' 'document'
- case 61112: // 'namespace' 'document'
- case 61144: // 'processing-instruction' 'document'
- case 61522: // 'attribute' 'document-node'
- case 61561: // 'element' 'document-node'
- case 61624: // 'namespace' 'document-node'
- case 61656: // 'processing-instruction' 'document-node'
- case 62034: // 'attribute' 'element'
- case 62073: // 'element' 'element'
- case 62136: // 'namespace' 'element'
- case 62168: // 'processing-instruction' 'element'
- case 63570: // 'attribute' 'empty-sequence'
- case 63609: // 'element' 'empty-sequence'
- case 63672: // 'namespace' 'empty-sequence'
- case 63704: // 'processing-instruction' 'empty-sequence'
- case 64082: // 'attribute' 'encoding'
- case 64121: // 'element' 'encoding'
- case 64184: // 'namespace' 'encoding'
- case 64216: // 'processing-instruction' 'encoding'
- case 66130: // 'attribute' 'every'
- case 66169: // 'element' 'every'
- case 66232: // 'namespace' 'every'
- case 66264: // 'processing-instruction' 'every'
- case 67666: // 'attribute' 'exit'
- case 67705: // 'element' 'exit'
- case 67768: // 'namespace' 'exit'
- case 67800: // 'processing-instruction' 'exit'
- case 68178: // 'attribute' 'external'
- case 68217: // 'element' 'external'
- case 68280: // 'namespace' 'external'
- case 68312: // 'processing-instruction' 'external'
- case 68690: // 'attribute' 'first'
- case 68729: // 'element' 'first'
- case 68792: // 'namespace' 'first'
- case 68824: // 'processing-instruction' 'first'
- case 69202: // 'attribute' 'following'
- case 69241: // 'element' 'following'
- case 69304: // 'namespace' 'following'
- case 69336: // 'processing-instruction' 'following'
- case 69714: // 'attribute' 'following-sibling'
- case 69753: // 'element' 'following-sibling'
- case 69816: // 'namespace' 'following-sibling'
- case 69848: // 'processing-instruction' 'following-sibling'
- case 72274: // 'attribute' 'ft-option'
- case 72313: // 'element' 'ft-option'
- case 72376: // 'namespace' 'ft-option'
- case 72408: // 'processing-instruction' 'ft-option'
- case 74322: // 'attribute' 'function'
- case 74361: // 'element' 'function'
- case 74424: // 'namespace' 'function'
- case 74456: // 'processing-instruction' 'function'
- case 77906: // 'attribute' 'if'
- case 77945: // 'element' 'if'
- case 78008: // 'namespace' 'if'
- case 78040: // 'processing-instruction' 'if'
- case 78418: // 'attribute' 'import'
- case 78457: // 'element' 'import'
- case 78520: // 'namespace' 'import'
- case 78552: // 'processing-instruction' 'import'
- case 78930: // 'attribute' 'in'
- case 78969: // 'element' 'in'
- case 79032: // 'namespace' 'in'
- case 79064: // 'processing-instruction' 'in'
- case 79442: // 'attribute' 'index'
- case 79481: // 'element' 'index'
- case 79544: // 'namespace' 'index'
- case 79576: // 'processing-instruction' 'index'
- case 81490: // 'attribute' 'insert'
- case 81529: // 'element' 'insert'
- case 81592: // 'namespace' 'insert'
- case 81624: // 'processing-instruction' 'insert'
- case 82514: // 'attribute' 'integrity'
- case 82553: // 'element' 'integrity'
- case 82616: // 'namespace' 'integrity'
- case 82648: // 'processing-instruction' 'integrity'
- case 84562: // 'attribute' 'item'
- case 84601: // 'element' 'item'
- case 84664: // 'namespace' 'item'
- case 84696: // 'processing-instruction' 'item'
- case 85586: // 'attribute' 'json-item'
- case 85625: // 'element' 'json-item'
- case 87122: // 'attribute' 'last'
- case 87161: // 'element' 'last'
- case 87224: // 'namespace' 'last'
- case 87256: // 'processing-instruction' 'last'
- case 87634: // 'attribute' 'lax'
- case 87673: // 'element' 'lax'
- case 87736: // 'namespace' 'lax'
- case 87768: // 'processing-instruction' 'lax'
- case 90194: // 'attribute' 'loop'
- case 90233: // 'element' 'loop'
- case 90296: // 'namespace' 'loop'
- case 90328: // 'processing-instruction' 'loop'
- case 93266: // 'attribute' 'module'
- case 93305: // 'element' 'module'
- case 93368: // 'namespace' 'module'
- case 93400: // 'processing-instruction' 'module'
- case 94290: // 'attribute' 'namespace'
- case 94329: // 'element' 'namespace'
- case 94392: // 'namespace' 'namespace'
- case 94424: // 'processing-instruction' 'namespace'
- case 94802: // 'attribute' 'namespace-node'
- case 94841: // 'element' 'namespace-node'
- case 94904: // 'namespace' 'namespace-node'
- case 94936: // 'processing-instruction' 'namespace-node'
- case 97874: // 'attribute' 'node'
- case 97913: // 'element' 'node'
- case 97976: // 'namespace' 'node'
- case 98008: // 'processing-instruction' 'node'
- case 98386: // 'attribute' 'nodes'
- case 98425: // 'element' 'nodes'
- case 98488: // 'namespace' 'nodes'
- case 98520: // 'processing-instruction' 'nodes'
- case 99410: // 'attribute' 'object'
- case 99449: // 'element' 'object'
- case 101970: // 'attribute' 'option'
- case 102009: // 'element' 'option'
- case 102072: // 'namespace' 'option'
- case 102104: // 'processing-instruction' 'option'
- case 103506: // 'attribute' 'ordered'
- case 103545: // 'element' 'ordered'
- case 103608: // 'namespace' 'ordered'
- case 103640: // 'processing-instruction' 'ordered'
- case 104018: // 'attribute' 'ordering'
- case 104057: // 'element' 'ordering'
- case 104120: // 'namespace' 'ordering'
- case 104152: // 'processing-instruction' 'ordering'
- case 105554: // 'attribute' 'parent'
- case 105593: // 'element' 'parent'
- case 105656: // 'namespace' 'parent'
- case 105688: // 'processing-instruction' 'parent'
- case 108626: // 'attribute' 'preceding'
- case 108665: // 'element' 'preceding'
- case 108728: // 'namespace' 'preceding'
- case 108760: // 'processing-instruction' 'preceding'
- case 109138: // 'attribute' 'preceding-sibling'
- case 109177: // 'element' 'preceding-sibling'
- case 109240: // 'namespace' 'preceding-sibling'
- case 109272: // 'processing-instruction' 'preceding-sibling'
- case 110674: // 'attribute' 'processing-instruction'
- case 110713: // 'element' 'processing-instruction'
- case 110776: // 'namespace' 'processing-instruction'
- case 110808: // 'processing-instruction' 'processing-instruction'
- case 111698: // 'attribute' 'rename'
- case 111737: // 'element' 'rename'
- case 111800: // 'namespace' 'rename'
- case 111832: // 'processing-instruction' 'rename'
- case 112210: // 'attribute' 'replace'
- case 112249: // 'element' 'replace'
- case 112312: // 'namespace' 'replace'
- case 112344: // 'processing-instruction' 'replace'
- case 113234: // 'attribute' 'returning'
- case 113273: // 'element' 'returning'
- case 113336: // 'namespace' 'returning'
- case 113368: // 'processing-instruction' 'returning'
- case 113746: // 'attribute' 'revalidation'
- case 113785: // 'element' 'revalidation'
- case 113848: // 'namespace' 'revalidation'
- case 113880: // 'processing-instruction' 'revalidation'
- case 115282: // 'attribute' 'schema'
- case 115321: // 'element' 'schema'
- case 115384: // 'namespace' 'schema'
- case 115416: // 'processing-instruction' 'schema'
- case 115794: // 'attribute' 'schema-attribute'
- case 115833: // 'element' 'schema-attribute'
- case 115896: // 'namespace' 'schema-attribute'
- case 115928: // 'processing-instruction' 'schema-attribute'
- case 116306: // 'attribute' 'schema-element'
- case 116345: // 'element' 'schema-element'
- case 116408: // 'namespace' 'schema-element'
- case 116440: // 'processing-instruction' 'schema-element'
- case 116818: // 'attribute' 'score'
- case 116857: // 'element' 'score'
- case 116920: // 'namespace' 'score'
- case 116952: // 'processing-instruction' 'score'
- case 117330: // 'attribute' 'self'
- case 117369: // 'element' 'self'
- case 117432: // 'namespace' 'self'
- case 117464: // 'processing-instruction' 'self'
- case 119890: // 'attribute' 'sliding'
- case 119929: // 'element' 'sliding'
- case 119992: // 'namespace' 'sliding'
- case 120024: // 'processing-instruction' 'sliding'
- case 120402: // 'attribute' 'some'
- case 120441: // 'element' 'some'
- case 120504: // 'namespace' 'some'
- case 120536: // 'processing-instruction' 'some'
- case 122962: // 'attribute' 'strict'
- case 123001: // 'element' 'strict'
- case 123064: // 'namespace' 'strict'
- case 123096: // 'processing-instruction' 'strict'
- case 124498: // 'attribute' 'switch'
- case 124537: // 'element' 'switch'
- case 124600: // 'namespace' 'switch'
- case 124632: // 'processing-instruction' 'switch'
- case 125010: // 'attribute' 'text'
- case 125049: // 'element' 'text'
- case 125112: // 'namespace' 'text'
- case 125144: // 'processing-instruction' 'text'
- case 128082: // 'attribute' 'try'
- case 128121: // 'element' 'try'
- case 128184: // 'namespace' 'try'
- case 128216: // 'processing-instruction' 'try'
- case 128594: // 'attribute' 'tumbling'
- case 128633: // 'element' 'tumbling'
- case 128696: // 'namespace' 'tumbling'
- case 128728: // 'processing-instruction' 'tumbling'
- case 129106: // 'attribute' 'type'
- case 129145: // 'element' 'type'
- case 129208: // 'namespace' 'type'
- case 129240: // 'processing-instruction' 'type'
- case 129618: // 'attribute' 'typeswitch'
- case 129657: // 'element' 'typeswitch'
- case 129720: // 'namespace' 'typeswitch'
- case 129752: // 'processing-instruction' 'typeswitch'
- case 131154: // 'attribute' 'unordered'
- case 131193: // 'element' 'unordered'
- case 131256: // 'namespace' 'unordered'
- case 131288: // 'processing-instruction' 'unordered'
- case 131666: // 'attribute' 'updating'
- case 131705: // 'element' 'updating'
- case 131768: // 'namespace' 'updating'
- case 131800: // 'processing-instruction' 'updating'
- case 133202: // 'attribute' 'validate'
- case 133241: // 'element' 'validate'
- case 133304: // 'namespace' 'validate'
- case 133336: // 'processing-instruction' 'validate'
- case 133714: // 'attribute' 'value'
- case 133753: // 'element' 'value'
- case 133816: // 'namespace' 'value'
- case 133848: // 'processing-instruction' 'value'
- case 134226: // 'attribute' 'variable'
- case 134265: // 'element' 'variable'
- case 134328: // 'namespace' 'variable'
- case 134360: // 'processing-instruction' 'variable'
- case 134738: // 'attribute' 'version'
- case 134777: // 'element' 'version'
- case 134840: // 'namespace' 'version'
- case 134872: // 'processing-instruction' 'version'
- case 136786: // 'attribute' 'while'
- case 136825: // 'element' 'while'
- case 136888: // 'namespace' 'while'
- case 136920: // 'processing-instruction' 'while'
- case 140370: // 'attribute' 'xquery'
- case 140409: // 'element' 'xquery'
- case 140472: // 'namespace' 'xquery'
- case 140504: // 'processing-instruction' 'xquery'
- case 141394: // 'attribute' '{'
- case 141408: // 'comment' '{'
- case 141431: // 'document' '{'
- case 141433: // 'element' '{'
- case 141496: // 'namespace' '{'
- case 141514: // 'ordered' '{'
- case 141528: // 'processing-instruction' '{'
- case 141556: // 'text' '{'
- case 141568: // 'unordered' '{'
- try_PostfixExpr();
- break;
- case -3:
- break;
- default:
- try_AxisStep();
- }
- }
-
- function parse_AxisStep()
- {
- eventHandler.startNonterminal("AxisStep", e0);
- switch (l1)
- {
- case 73: // 'ancestor'
- case 74: // 'ancestor-or-self'
- case 206: // 'parent'
- case 212: // 'preceding'
- case 213: // 'preceding-sibling'
- lookahead2W(240); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 45: // '..'
- case 26185: // 'ancestor' '::'
- case 26186: // 'ancestor-or-self' '::'
- case 26318: // 'parent' '::'
- case 26324: // 'preceding' '::'
- case 26325: // 'preceding-sibling' '::'
- parse_ReverseStep();
- break;
- default:
- parse_ForwardStep();
- }
- lookahead1W(236); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
- whitespace();
- parse_PredicateList();
- eventHandler.endNonterminal("AxisStep", e0);
- }
-
- function try_AxisStep()
- {
- switch (l1)
- {
- case 73: // 'ancestor'
- case 74: // 'ancestor-or-self'
- case 206: // 'parent'
- case 212: // 'preceding'
- case 213: // 'preceding-sibling'
- lookahead2W(240); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 45: // '..'
- case 26185: // 'ancestor' '::'
- case 26186: // 'ancestor-or-self' '::'
- case 26318: // 'parent' '::'
- case 26324: // 'preceding' '::'
- case 26325: // 'preceding-sibling' '::'
- try_ReverseStep();
- break;
- default:
- try_ForwardStep();
- }
- lookahead1W(236); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
- try_PredicateList();
- }
-
- function parse_ForwardStep()
- {
- eventHandler.startNonterminal("ForwardStep", e0);
- switch (l1)
- {
- case 82: // 'attribute'
- lookahead2W(243); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 93: // 'child'
- case 111: // 'descendant'
- case 112: // 'descendant-or-self'
- case 135: // 'following'
- case 136: // 'following-sibling'
- case 229: // 'self'
- lookahead2W(240); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 26194: // 'attribute' '::'
- case 26205: // 'child' '::'
- case 26223: // 'descendant' '::'
- case 26224: // 'descendant-or-self' '::'
- case 26247: // 'following' '::'
- case 26248: // 'following-sibling' '::'
- case 26341: // 'self' '::'
- parse_ForwardAxis();
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NodeTest();
- break;
- default:
- parse_AbbrevForwardStep();
- }
- eventHandler.endNonterminal("ForwardStep", e0);
- }
-
- function try_ForwardStep()
- {
- switch (l1)
- {
- case 82: // 'attribute'
- lookahead2W(243); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 93: // 'child'
- case 111: // 'descendant'
- case 112: // 'descendant-or-self'
- case 135: // 'following'
- case 136: // 'following-sibling'
- case 229: // 'self'
- lookahead2W(240); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 26194: // 'attribute' '::'
- case 26205: // 'child' '::'
- case 26223: // 'descendant' '::'
- case 26224: // 'descendant-or-self' '::'
- case 26247: // 'following' '::'
- case 26248: // 'following-sibling' '::'
- case 26341: // 'self' '::'
- try_ForwardAxis();
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_NodeTest();
- break;
- default:
- try_AbbrevForwardStep();
- }
- }
-
- function parse_ForwardAxis()
- {
- eventHandler.startNonterminal("ForwardAxis", e0);
- switch (l1)
- {
- case 93: // 'child'
- shift(93); // 'child'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- case 111: // 'descendant'
- shift(111); // 'descendant'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- case 82: // 'attribute'
- shift(82); // 'attribute'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- case 229: // 'self'
- shift(229); // 'self'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- case 112: // 'descendant-or-self'
- shift(112); // 'descendant-or-self'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- case 136: // 'following-sibling'
- shift(136); // 'following-sibling'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- default:
- shift(135); // 'following'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- }
- eventHandler.endNonterminal("ForwardAxis", e0);
- }
-
- function try_ForwardAxis()
- {
- switch (l1)
- {
- case 93: // 'child'
- shiftT(93); // 'child'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- case 111: // 'descendant'
- shiftT(111); // 'descendant'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- case 82: // 'attribute'
- shiftT(82); // 'attribute'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- case 229: // 'self'
- shiftT(229); // 'self'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- case 112: // 'descendant-or-self'
- shiftT(112); // 'descendant-or-self'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- case 136: // 'following-sibling'
- shiftT(136); // 'following-sibling'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- default:
- shiftT(135); // 'following'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- }
- }
-
- function parse_AbbrevForwardStep()
- {
- eventHandler.startNonterminal("AbbrevForwardStep", e0);
- if (l1 == 66) // '@'
- {
- shift(66); // '@'
- }
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NodeTest();
- eventHandler.endNonterminal("AbbrevForwardStep", e0);
- }
-
- function try_AbbrevForwardStep()
- {
- if (l1 == 66) // '@'
- {
- shiftT(66); // '@'
- }
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_NodeTest();
- }
-
- function parse_ReverseStep()
- {
- eventHandler.startNonterminal("ReverseStep", e0);
- switch (l1)
- {
- case 45: // '..'
- parse_AbbrevReverseStep();
- break;
- default:
- parse_ReverseAxis();
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_NodeTest();
- }
- eventHandler.endNonterminal("ReverseStep", e0);
- }
-
- function try_ReverseStep()
- {
- switch (l1)
- {
- case 45: // '..'
- try_AbbrevReverseStep();
- break;
- default:
- try_ReverseAxis();
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_NodeTest();
- }
- }
-
- function parse_ReverseAxis()
- {
- eventHandler.startNonterminal("ReverseAxis", e0);
- switch (l1)
- {
- case 206: // 'parent'
- shift(206); // 'parent'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- case 73: // 'ancestor'
- shift(73); // 'ancestor'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- case 213: // 'preceding-sibling'
- shift(213); // 'preceding-sibling'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- case 212: // 'preceding'
- shift(212); // 'preceding'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- break;
- default:
- shift(74); // 'ancestor-or-self'
- lookahead1W(26); // S^WS | '(:' | '::'
- shift(51); // '::'
- }
- eventHandler.endNonterminal("ReverseAxis", e0);
- }
-
- function try_ReverseAxis()
- {
- switch (l1)
- {
- case 206: // 'parent'
- shiftT(206); // 'parent'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- case 73: // 'ancestor'
- shiftT(73); // 'ancestor'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- case 213: // 'preceding-sibling'
- shiftT(213); // 'preceding-sibling'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- case 212: // 'preceding'
- shiftT(212); // 'preceding'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- break;
- default:
- shiftT(74); // 'ancestor-or-self'
- lookahead1W(26); // S^WS | '(:' | '::'
- shiftT(51); // '::'
- }
- }
-
- function parse_AbbrevReverseStep()
- {
- eventHandler.startNonterminal("AbbrevReverseStep", e0);
- shift(45); // '..'
- eventHandler.endNonterminal("AbbrevReverseStep", e0);
- }
-
- function try_AbbrevReverseStep()
- {
- shiftT(45); // '..'
- }
-
- function parse_NodeTest()
- {
- eventHandler.startNonterminal("NodeTest", e0);
- switch (l1)
- {
- case 78: // 'array'
- case 82: // 'attribute'
- case 96: // 'comment'
- case 120: // 'document-node'
- case 121: // 'element'
- case 167: // 'json-item'
- case 185: // 'namespace-node'
- case 191: // 'node'
- case 194: // 'object'
- case 216: // 'processing-instruction'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 244: // 'text'
- lookahead2W(239); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 17486: // 'array' '('
- case 17490: // 'attribute' '('
- case 17504: // 'comment' '('
- case 17528: // 'document-node' '('
- case 17529: // 'element' '('
- case 17575: // 'json-item' '('
- case 17593: // 'namespace-node' '('
- case 17599: // 'node' '('
- case 17602: // 'object' '('
- case 17624: // 'processing-instruction' '('
- case 17634: // 'schema-attribute' '('
- case 17635: // 'schema-element' '('
- case 17652: // 'text' '('
- parse_KindTest();
- break;
- default:
- parse_NameTest();
- }
- eventHandler.endNonterminal("NodeTest", e0);
- }
-
- function try_NodeTest()
- {
- switch (l1)
- {
- case 78: // 'array'
- case 82: // 'attribute'
- case 96: // 'comment'
- case 120: // 'document-node'
- case 121: // 'element'
- case 167: // 'json-item'
- case 185: // 'namespace-node'
- case 191: // 'node'
- case 194: // 'object'
- case 216: // 'processing-instruction'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 244: // 'text'
- lookahead2W(239); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 17486: // 'array' '('
- case 17490: // 'attribute' '('
- case 17504: // 'comment' '('
- case 17528: // 'document-node' '('
- case 17529: // 'element' '('
- case 17575: // 'json-item' '('
- case 17593: // 'namespace-node' '('
- case 17599: // 'node' '('
- case 17602: // 'object' '('
- case 17624: // 'processing-instruction' '('
- case 17634: // 'schema-attribute' '('
- case 17635: // 'schema-element' '('
- case 17652: // 'text' '('
- try_KindTest();
- break;
- default:
- try_NameTest();
- }
- }
-
- function parse_NameTest()
- {
- eventHandler.startNonterminal("NameTest", e0);
- switch (l1)
- {
- case 5: // Wildcard
- shift(5); // Wildcard
- break;
- default:
- parse_EQName();
- }
- eventHandler.endNonterminal("NameTest", e0);
- }
-
- function try_NameTest()
- {
- switch (l1)
- {
- case 5: // Wildcard
- shiftT(5); // Wildcard
- break;
- default:
- try_EQName();
- }
- }
-
- function parse_PostfixExpr()
- {
- eventHandler.startNonterminal("PostfixExpr", e0);
- parse_PrimaryExpr();
- for (;;)
- {
- lookahead1W(239); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
- if (l1 != 34 // '('
- && l1 != 68) // '['
- {
- break;
- }
- switch (l1)
- {
- case 68: // '['
- whitespace();
- parse_Predicate();
- break;
- default:
- whitespace();
- parse_ArgumentList();
- }
- }
- eventHandler.endNonterminal("PostfixExpr", e0);
- }
-
- function try_PostfixExpr()
- {
- try_PrimaryExpr();
- for (;;)
- {
- lookahead1W(239); // S^WS | EOF | '!' | '!=' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' |
- if (l1 != 34 // '('
- && l1 != 68) // '['
- {
- break;
- }
- switch (l1)
- {
- case 68: // '['
- try_Predicate();
- break;
- default:
- try_ArgumentList();
- }
- }
- }
-
- function parse_ArgumentList()
- {
- eventHandler.startNonterminal("ArgumentList", e0);
- shift(34); // '('
- lookahead1W(275); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 37) // ')'
- {
- whitespace();
- parse_Argument();
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(270); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Argument();
- }
- }
- shift(37); // ')'
- eventHandler.endNonterminal("ArgumentList", e0);
- }
-
- function try_ArgumentList()
- {
- shiftT(34); // '('
- lookahead1W(275); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 37) // ')'
- {
- try_Argument();
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(270); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Argument();
- }
- }
- shiftT(37); // ')'
- }
-
- function parse_PredicateList()
- {
- eventHandler.startNonterminal("PredicateList", e0);
- for (;;)
- {
- lookahead1W(236); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
- if (l1 != 68) // '['
- {
- break;
- }
- whitespace();
- parse_Predicate();
- }
- eventHandler.endNonterminal("PredicateList", e0);
- }
-
- function try_PredicateList()
- {
- for (;;)
- {
- lookahead1W(236); // S^WS | EOF | '!' | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' | '//' | ':' |
- if (l1 != 68) // '['
- {
- break;
- }
- try_Predicate();
- }
- }
-
- function parse_Predicate()
- {
- eventHandler.startNonterminal("Predicate", e0);
- shift(68); // '['
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(69); // ']'
- eventHandler.endNonterminal("Predicate", e0);
- }
-
- function try_Predicate()
- {
- shiftT(68); // '['
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(69); // ']'
- }
-
- function parse_Literal()
- {
- eventHandler.startNonterminal("Literal", e0);
- switch (l1)
- {
- case 11: // StringLiteral
- shift(11); // StringLiteral
- break;
- default:
- parse_NumericLiteral();
- }
- eventHandler.endNonterminal("Literal", e0);
- }
-
- function try_Literal()
- {
- switch (l1)
- {
- case 11: // StringLiteral
- shiftT(11); // StringLiteral
- break;
- default:
- try_NumericLiteral();
- }
- }
-
- function parse_NumericLiteral()
- {
- eventHandler.startNonterminal("NumericLiteral", e0);
- switch (l1)
- {
- case 8: // IntegerLiteral
- shift(8); // IntegerLiteral
- break;
- case 9: // DecimalLiteral
- shift(9); // DecimalLiteral
- break;
- default:
- shift(10); // DoubleLiteral
- }
- eventHandler.endNonterminal("NumericLiteral", e0);
- }
-
- function try_NumericLiteral()
- {
- switch (l1)
- {
- case 8: // IntegerLiteral
- shiftT(8); // IntegerLiteral
- break;
- case 9: // DecimalLiteral
- shiftT(9); // DecimalLiteral
- break;
- default:
- shiftT(10); // DoubleLiteral
- }
- }
-
- function parse_VarRef()
- {
- eventHandler.startNonterminal("VarRef", e0);
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- eventHandler.endNonterminal("VarRef", e0);
- }
-
- function try_VarRef()
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- }
-
- function parse_VarName()
- {
- eventHandler.startNonterminal("VarName", e0);
- parse_EQName();
- eventHandler.endNonterminal("VarName", e0);
- }
-
- function try_VarName()
- {
- try_EQName();
- }
-
- function parse_ParenthesizedExpr()
- {
- eventHandler.startNonterminal("ParenthesizedExpr", e0);
- shift(34); // '('
- lookahead1W(269); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 37) // ')'
- {
- whitespace();
- parse_Expr();
- }
- shift(37); // ')'
- eventHandler.endNonterminal("ParenthesizedExpr", e0);
- }
-
- function try_ParenthesizedExpr()
- {
- shiftT(34); // '('
- lookahead1W(269); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 37) // ')'
- {
- try_Expr();
- }
- shiftT(37); // ')'
- }
-
- function parse_ContextItemExpr()
- {
- eventHandler.startNonterminal("ContextItemExpr", e0);
- shift(44); // '.'
- eventHandler.endNonterminal("ContextItemExpr", e0);
- }
-
- function try_ContextItemExpr()
- {
- shiftT(44); // '.'
- }
-
- function parse_OrderedExpr()
- {
- eventHandler.startNonterminal("OrderedExpr", e0);
- shift(202); // 'ordered'
- lookahead1W(87); // S^WS | '(:' | '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- eventHandler.endNonterminal("OrderedExpr", e0);
- }
-
- function try_OrderedExpr()
- {
- shiftT(202); // 'ordered'
- lookahead1W(87); // S^WS | '(:' | '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- }
-
- function parse_UnorderedExpr()
- {
- eventHandler.startNonterminal("UnorderedExpr", e0);
- shift(256); // 'unordered'
- lookahead1W(87); // S^WS | '(:' | '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- eventHandler.endNonterminal("UnorderedExpr", e0);
- }
-
- function try_UnorderedExpr()
- {
- shiftT(256); // 'unordered'
- lookahead1W(87); // S^WS | '(:' | '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- }
-
- function parse_FunctionCall()
- {
- eventHandler.startNonterminal("FunctionCall", e0);
- parse_FunctionName();
- lookahead1W(22); // S^WS | '(' | '(:'
- whitespace();
- parse_ArgumentList();
- eventHandler.endNonterminal("FunctionCall", e0);
- }
-
- function try_FunctionCall()
- {
- try_FunctionName();
- lookahead1W(22); // S^WS | '(' | '(:'
- try_ArgumentList();
- }
-
- function parse_Argument()
- {
- eventHandler.startNonterminal("Argument", e0);
- switch (l1)
- {
- case 64: // '?'
- parse_ArgumentPlaceholder();
- break;
- default:
- parse_ExprSingle();
- }
- eventHandler.endNonterminal("Argument", e0);
- }
-
- function try_Argument()
- {
- switch (l1)
- {
- case 64: // '?'
- try_ArgumentPlaceholder();
- break;
- default:
- try_ExprSingle();
- }
- }
-
- function parse_ArgumentPlaceholder()
- {
- eventHandler.startNonterminal("ArgumentPlaceholder", e0);
- shift(64); // '?'
- eventHandler.endNonterminal("ArgumentPlaceholder", e0);
- }
-
- function try_ArgumentPlaceholder()
- {
- shiftT(64); // '?'
- }
-
- function parse_Constructor()
- {
- eventHandler.startNonterminal("Constructor", e0);
- switch (l1)
- {
- case 54: // '<'
- case 55: // '<!--'
- case 59: // '<?'
- parse_DirectConstructor();
- break;
- default:
- parse_ComputedConstructor();
- }
- eventHandler.endNonterminal("Constructor", e0);
- }
-
- function try_Constructor()
- {
- switch (l1)
- {
- case 54: // '<'
- case 55: // '<!--'
- case 59: // '<?'
- try_DirectConstructor();
- break;
- default:
- try_ComputedConstructor();
- }
- }
-
- function parse_DirectConstructor()
- {
- eventHandler.startNonterminal("DirectConstructor", e0);
- switch (l1)
- {
- case 54: // '<'
- parse_DirElemConstructor();
- break;
- case 55: // '<!--'
- parse_DirCommentConstructor();
- break;
- default:
- parse_DirPIConstructor();
- }
- eventHandler.endNonterminal("DirectConstructor", e0);
- }
-
- function try_DirectConstructor()
- {
- switch (l1)
- {
- case 54: // '<'
- try_DirElemConstructor();
- break;
- case 55: // '<!--'
- try_DirCommentConstructor();
- break;
- default:
- try_DirPIConstructor();
- }
- }
-
- function parse_DirElemConstructor()
- {
- eventHandler.startNonterminal("DirElemConstructor", e0);
- shift(54); // '<'
- lookahead1(4); // QName
- shift(20); // QName
- parse_DirAttributeList();
- switch (l1)
- {
- case 48: // '/>'
- shift(48); // '/>'
- break;
- default:
- shift(61); // '>'
- for (;;)
- {
- lookahead1(174); // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' |
- if (l1 == 56) // '</'
- {
- break;
- }
- parse_DirElemContent();
- }
- shift(56); // '</'
- lookahead1(4); // QName
- shift(20); // QName
- lookahead1(12); // S | '>'
- if (l1 == 21) // S
- {
- shift(21); // S
- }
- lookahead1(8); // '>'
- shift(61); // '>'
- }
- eventHandler.endNonterminal("DirElemConstructor", e0);
- }
-
- function try_DirElemConstructor()
- {
- shiftT(54); // '<'
- lookahead1(4); // QName
- shiftT(20); // QName
- try_DirAttributeList();
- switch (l1)
- {
- case 48: // '/>'
- shiftT(48); // '/>'
- break;
- default:
- shiftT(61); // '>'
- for (;;)
- {
- lookahead1(174); // CDataSection | PredefinedEntityRef | ElementContentChar | CharRef | '<' |
- if (l1 == 56) // '</'
- {
- break;
- }
- try_DirElemContent();
- }
- shiftT(56); // '</'
- lookahead1(4); // QName
- shiftT(20); // QName
- lookahead1(12); // S | '>'
- if (l1 == 21) // S
- {
- shiftT(21); // S
- }
- lookahead1(8); // '>'
- shiftT(61); // '>'
- }
- }
-
- function parse_DirAttributeList()
- {
- eventHandler.startNonterminal("DirAttributeList", e0);
- for (;;)
- {
- lookahead1(19); // S | '/>' | '>'
- if (l1 != 21) // S
- {
- break;
- }
- shift(21); // S
- lookahead1(91); // QName | S | '/>' | '>'
- if (l1 == 20) // QName
- {
- shift(20); // QName
- lookahead1(11); // S | '='
- if (l1 == 21) // S
- {
- shift(21); // S
- }
- lookahead1(7); // '='
- shift(60); // '='
- lookahead1(18); // S | '"' | "'"
- if (l1 == 21) // S
- {
- shift(21); // S
- }
- parse_DirAttributeValue();
- }
- }
- eventHandler.endNonterminal("DirAttributeList", e0);
- }
-
- function try_DirAttributeList()
- {
- for (;;)
- {
- lookahead1(19); // S | '/>' | '>'
- if (l1 != 21) // S
- {
- break;
- }
- shiftT(21); // S
- lookahead1(91); // QName | S | '/>' | '>'
- if (l1 == 20) // QName
- {
- shiftT(20); // QName
- lookahead1(11); // S | '='
- if (l1 == 21) // S
- {
- shiftT(21); // S
- }
- lookahead1(7); // '='
- shiftT(60); // '='
- lookahead1(18); // S | '"' | "'"
- if (l1 == 21) // S
- {
- shiftT(21); // S
- }
- try_DirAttributeValue();
- }
- }
- }
-
- function parse_DirAttributeValue()
- {
- eventHandler.startNonterminal("DirAttributeValue", e0);
- lookahead1(14); // '"' | "'"
- switch (l1)
- {
- case 28: // '"'
- shift(28); // '"'
- for (;;)
- {
- lookahead1(167); // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '"' | '{' |
- if (l1 == 28) // '"'
- {
- break;
- }
- switch (l1)
- {
- case 13: // EscapeQuot
- shift(13); // EscapeQuot
- break;
- default:
- parse_QuotAttrValueContent();
- }
- }
- shift(28); // '"'
- break;
- default:
- shift(33); // "'"
- for (;;)
- {
- lookahead1(168); // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | "'" | '{' |
- if (l1 == 33) // "'"
- {
- break;
- }
- switch (l1)
- {
- case 14: // EscapeApos
- shift(14); // EscapeApos
- break;
- default:
- parse_AposAttrValueContent();
- }
- }
- shift(33); // "'"
- }
- eventHandler.endNonterminal("DirAttributeValue", e0);
- }
-
- function try_DirAttributeValue()
- {
- lookahead1(14); // '"' | "'"
- switch (l1)
- {
- case 28: // '"'
- shiftT(28); // '"'
- for (;;)
- {
- lookahead1(167); // PredefinedEntityRef | EscapeQuot | QuotAttrContentChar | CharRef | '"' | '{' |
- if (l1 == 28) // '"'
- {
- break;
- }
- switch (l1)
- {
- case 13: // EscapeQuot
- shiftT(13); // EscapeQuot
- break;
- default:
- try_QuotAttrValueContent();
- }
- }
- shiftT(28); // '"'
- break;
- default:
- shiftT(33); // "'"
- for (;;)
- {
- lookahead1(168); // PredefinedEntityRef | EscapeApos | AposAttrContentChar | CharRef | "'" | '{' |
- if (l1 == 33) // "'"
- {
- break;
- }
- switch (l1)
- {
- case 14: // EscapeApos
- shiftT(14); // EscapeApos
- break;
- default:
- try_AposAttrValueContent();
- }
- }
- shiftT(33); // "'"
- }
- }
-
- function parse_QuotAttrValueContent()
- {
- eventHandler.startNonterminal("QuotAttrValueContent", e0);
- switch (l1)
- {
- case 16: // QuotAttrContentChar
- shift(16); // QuotAttrContentChar
- break;
- default:
- parse_CommonContent();
- }
- eventHandler.endNonterminal("QuotAttrValueContent", e0);
- }
-
- function try_QuotAttrValueContent()
- {
- switch (l1)
- {
- case 16: // QuotAttrContentChar
- shiftT(16); // QuotAttrContentChar
- break;
- default:
- try_CommonContent();
- }
- }
-
- function parse_AposAttrValueContent()
- {
- eventHandler.startNonterminal("AposAttrValueContent", e0);
- switch (l1)
- {
- case 17: // AposAttrContentChar
- shift(17); // AposAttrContentChar
- break;
- default:
- parse_CommonContent();
- }
- eventHandler.endNonterminal("AposAttrValueContent", e0);
- }
-
- function try_AposAttrValueContent()
- {
- switch (l1)
- {
- case 17: // AposAttrContentChar
- shiftT(17); // AposAttrContentChar
- break;
- default:
- try_CommonContent();
- }
- }
-
- function parse_DirElemContent()
- {
- eventHandler.startNonterminal("DirElemContent", e0);
- switch (l1)
- {
- case 54: // '<'
- case 55: // '<!--'
- case 59: // '<?'
- parse_DirectConstructor();
- break;
- case 4: // CDataSection
- shift(4); // CDataSection
- break;
- case 15: // ElementContentChar
- shift(15); // ElementContentChar
- break;
- default:
- parse_CommonContent();
- }
- eventHandler.endNonterminal("DirElemContent", e0);
- }
-
- function try_DirElemContent()
- {
- switch (l1)
- {
- case 54: // '<'
- case 55: // '<!--'
- case 59: // '<?'
- try_DirectConstructor();
- break;
- case 4: // CDataSection
- shiftT(4); // CDataSection
- break;
- case 15: // ElementContentChar
- shiftT(15); // ElementContentChar
- break;
- default:
- try_CommonContent();
- }
- }
-
- function parse_DirCommentConstructor()
- {
- eventHandler.startNonterminal("DirCommentConstructor", e0);
- shift(55); // '<!--'
- lookahead1(1); // DirCommentContents
- shift(2); // DirCommentContents
- lookahead1(6); // '-->'
- shift(43); // '-->'
- eventHandler.endNonterminal("DirCommentConstructor", e0);
- }
-
- function try_DirCommentConstructor()
- {
- shiftT(55); // '<!--'
- lookahead1(1); // DirCommentContents
- shiftT(2); // DirCommentContents
- lookahead1(6); // '-->'
- shiftT(43); // '-->'
- }
-
- function parse_DirPIConstructor()
- {
- eventHandler.startNonterminal("DirPIConstructor", e0);
- shift(59); // '<?'
- lookahead1(3); // PITarget
- shift(18); // PITarget
- lookahead1(13); // S | '?>'
- if (l1 == 21) // S
- {
- shift(21); // S
- lookahead1(2); // DirPIContents
- shift(3); // DirPIContents
- }
- lookahead1(9); // '?>'
- shift(65); // '?>'
- eventHandler.endNonterminal("DirPIConstructor", e0);
- }
-
- function try_DirPIConstructor()
- {
- shiftT(59); // '<?'
- lookahead1(3); // PITarget
- shiftT(18); // PITarget
- lookahead1(13); // S | '?>'
- if (l1 == 21) // S
- {
- shiftT(21); // S
- lookahead1(2); // DirPIContents
- shiftT(3); // DirPIContents
- }
- lookahead1(9); // '?>'
- shiftT(65); // '?>'
- }
-
- function parse_ComputedConstructor()
- {
- eventHandler.startNonterminal("ComputedConstructor", e0);
- switch (l1)
- {
- case 119: // 'document'
- parse_CompDocConstructor();
- break;
- case 121: // 'element'
- parse_CompElemConstructor();
- break;
- case 82: // 'attribute'
- parse_CompAttrConstructor();
- break;
- case 184: // 'namespace'
- parse_CompNamespaceConstructor();
- break;
- case 244: // 'text'
- parse_CompTextConstructor();
- break;
- case 96: // 'comment'
- parse_CompCommentConstructor();
- break;
- default:
- parse_CompPIConstructor();
- }
- eventHandler.endNonterminal("ComputedConstructor", e0);
- }
-
- function try_ComputedConstructor()
- {
- switch (l1)
- {
- case 119: // 'document'
- try_CompDocConstructor();
- break;
- case 121: // 'element'
- try_CompElemConstructor();
- break;
- case 82: // 'attribute'
- try_CompAttrConstructor();
- break;
- case 184: // 'namespace'
- try_CompNamespaceConstructor();
- break;
- case 244: // 'text'
- try_CompTextConstructor();
- break;
- case 96: // 'comment'
- try_CompCommentConstructor();
- break;
- default:
- try_CompPIConstructor();
- }
- }
-
- function parse_CompElemConstructor()
- {
- eventHandler.startNonterminal("CompElemConstructor", e0);
- shift(121); // 'element'
- lookahead1W(256); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- switch (l1)
- {
- case 276: // '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- break;
- default:
- whitespace();
- parse_EQName();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- shift(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 282) // '}'
- {
- whitespace();
- parse_ContentExpr();
- }
- shift(282); // '}'
- eventHandler.endNonterminal("CompElemConstructor", e0);
- }
-
- function try_CompElemConstructor()
- {
- shiftT(121); // 'element'
- lookahead1W(256); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- switch (l1)
- {
- case 276: // '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- break;
- default:
- try_EQName();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- shiftT(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 282) // '}'
- {
- try_ContentExpr();
- }
- shiftT(282); // '}'
- }
-
- function parse_CompNamespaceConstructor()
- {
- eventHandler.startNonterminal("CompNamespaceConstructor", e0);
- shift(184); // 'namespace'
- lookahead1W(249); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- switch (l1)
- {
- case 276: // '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_PrefixExpr();
- shift(282); // '}'
- break;
- default:
- whitespace();
- parse_Prefix();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_URIExpr();
- shift(282); // '}'
- eventHandler.endNonterminal("CompNamespaceConstructor", e0);
- }
-
- function try_CompNamespaceConstructor()
- {
- shiftT(184); // 'namespace'
- lookahead1W(249); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- switch (l1)
- {
- case 276: // '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_PrefixExpr();
- shiftT(282); // '}'
- break;
- default:
- try_Prefix();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_URIExpr();
- shiftT(282); // '}'
- }
-
- function parse_Prefix()
- {
- eventHandler.startNonterminal("Prefix", e0);
- parse_NCName();
- eventHandler.endNonterminal("Prefix", e0);
- }
-
- function try_Prefix()
- {
- try_NCName();
- }
-
- function parse_PrefixExpr()
- {
- eventHandler.startNonterminal("PrefixExpr", e0);
- parse_Expr();
- eventHandler.endNonterminal("PrefixExpr", e0);
- }
-
- function try_PrefixExpr()
- {
- try_Expr();
- }
-
- function parse_URIExpr()
- {
- eventHandler.startNonterminal("URIExpr", e0);
- parse_Expr();
- eventHandler.endNonterminal("URIExpr", e0);
- }
-
- function try_URIExpr()
- {
- try_Expr();
- }
-
- function parse_FunctionItemExpr()
- {
- eventHandler.startNonterminal("FunctionItemExpr", e0);
- switch (l1)
- {
- case 145: // 'function'
- lookahead2W(92); // S^WS | '#' | '(' | '(:'
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 32: // '%'
- case 17553: // 'function' '('
- parse_InlineFunctionExpr();
- break;
- default:
- parse_NamedFunctionRef();
- }
- eventHandler.endNonterminal("FunctionItemExpr", e0);
- }
-
- function try_FunctionItemExpr()
- {
- switch (l1)
- {
- case 145: // 'function'
- lookahead2W(92); // S^WS | '#' | '(' | '(:'
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 32: // '%'
- case 17553: // 'function' '('
- try_InlineFunctionExpr();
- break;
- default:
- try_NamedFunctionRef();
- }
- }
-
- function parse_NamedFunctionRef()
- {
- eventHandler.startNonterminal("NamedFunctionRef", e0);
- parse_EQName();
- lookahead1W(20); // S^WS | '#' | '(:'
- shift(29); // '#'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shift(8); // IntegerLiteral
- eventHandler.endNonterminal("NamedFunctionRef", e0);
- }
-
- function try_NamedFunctionRef()
- {
- try_EQName();
- lookahead1W(20); // S^WS | '#' | '(:'
- shiftT(29); // '#'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shiftT(8); // IntegerLiteral
- }
-
- function parse_InlineFunctionExpr()
- {
- eventHandler.startNonterminal("InlineFunctionExpr", e0);
- for (;;)
- {
- lookahead1W(97); // S^WS | '%' | '(:' | 'function'
- if (l1 != 32) // '%'
- {
- break;
- }
- whitespace();
- parse_Annotation();
- }
- shift(145); // 'function'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(94); // S^WS | '$' | '(:' | ')'
- if (l1 == 31) // '$'
- {
- whitespace();
- parse_ParamList();
- }
- shift(37); // ')'
- lookahead1W(111); // S^WS | '(:' | 'as' | '{'
- if (l1 == 79) // 'as'
- {
- shift(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- whitespace();
- parse_FunctionBody();
- eventHandler.endNonterminal("InlineFunctionExpr", e0);
- }
-
- function try_InlineFunctionExpr()
- {
- for (;;)
- {
- lookahead1W(97); // S^WS | '%' | '(:' | 'function'
- if (l1 != 32) // '%'
- {
- break;
- }
- try_Annotation();
- }
- shiftT(145); // 'function'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(94); // S^WS | '$' | '(:' | ')'
- if (l1 == 31) // '$'
- {
- try_ParamList();
- }
- shiftT(37); // ')'
- lookahead1W(111); // S^WS | '(:' | 'as' | '{'
- if (l1 == 79) // 'as'
- {
- shiftT(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceType();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- try_FunctionBody();
- }
-
- function parse_SingleType()
- {
- eventHandler.startNonterminal("SingleType", e0);
- parse_SimpleTypeName();
- lookahead1W(226); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 64) // '?'
- {
- shift(64); // '?'
- }
- eventHandler.endNonterminal("SingleType", e0);
- }
-
- function try_SingleType()
- {
- try_SimpleTypeName();
- lookahead1W(226); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '+' | ',' | '-' | ':' | ';' | '<' | '<<' |
- if (l1 == 64) // '?'
- {
- shiftT(64); // '?'
- }
- }
-
- function parse_TypeDeclaration()
- {
- eventHandler.startNonterminal("TypeDeclaration", e0);
- shift(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- eventHandler.endNonterminal("TypeDeclaration", e0);
- }
-
- function try_TypeDeclaration()
- {
- shiftT(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceType();
- }
-
- function parse_SequenceType()
- {
- eventHandler.startNonterminal("SequenceType", e0);
- switch (l1)
- {
- case 124: // 'empty-sequence'
- lookahead2W(241); // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 17532: // 'empty-sequence' '('
- shift(124); // 'empty-sequence'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- break;
- default:
- parse_ItemType();
- lookahead1W(237); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' |
- switch (l1)
- {
- case 39: // '*'
- case 40: // '+'
- case 64: // '?'
- whitespace();
- parse_OccurrenceIndicator();
- break;
- default:
- break;
- }
- }
- eventHandler.endNonterminal("SequenceType", e0);
- }
-
- function try_SequenceType()
- {
- switch (l1)
- {
- case 124: // 'empty-sequence'
- lookahead2W(241); // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 17532: // 'empty-sequence' '('
- shiftT(124); // 'empty-sequence'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- break;
- default:
- try_ItemType();
- lookahead1W(237); // S^WS | EOF | '!=' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' | ';' |
- switch (l1)
- {
- case 39: // '*'
- case 40: // '+'
- case 64: // '?'
- try_OccurrenceIndicator();
- break;
- default:
- break;
- }
- }
- }
-
- function parse_OccurrenceIndicator()
- {
- eventHandler.startNonterminal("OccurrenceIndicator", e0);
- switch (l1)
- {
- case 64: // '?'
- shift(64); // '?'
- break;
- case 39: // '*'
- shift(39); // '*'
- break;
- default:
- shift(40); // '+'
- }
- eventHandler.endNonterminal("OccurrenceIndicator", e0);
- }
-
- function try_OccurrenceIndicator()
- {
- switch (l1)
- {
- case 64: // '?'
- shiftT(64); // '?'
- break;
- case 39: // '*'
- shiftT(39); // '*'
- break;
- default:
- shiftT(40); // '+'
- }
- }
-
- function parse_ItemType()
- {
- eventHandler.startNonterminal("ItemType", e0);
- switch (l1)
- {
- case 78: // 'array'
- case 82: // 'attribute'
- case 96: // 'comment'
- case 120: // 'document-node'
- case 121: // 'element'
- case 145: // 'function'
- case 165: // 'item'
- case 167: // 'json-item'
- case 185: // 'namespace-node'
- case 191: // 'node'
- case 194: // 'object'
- case 216: // 'processing-instruction'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 244: // 'text'
- lookahead2W(241); // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |
- break;
- default:
- lk = l1;
- }
- if (lk == 17486 // 'array' '('
- || lk == 17575 // 'json-item' '('
- || lk == 17602) // 'object' '('
- {
- lk = memoized(4, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_KindTest();
- lk = -1;
- }
- catch (p1A)
- {
- lk = -6;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(4, e0, lk);
- }
- }
- switch (lk)
- {
- case -1:
- case 17490: // 'attribute' '('
- case 17504: // 'comment' '('
- case 17528: // 'document-node' '('
- case 17529: // 'element' '('
- case 17593: // 'namespace-node' '('
- case 17599: // 'node' '('
- case 17624: // 'processing-instruction' '('
- case 17634: // 'schema-attribute' '('
- case 17635: // 'schema-element' '('
- case 17652: // 'text' '('
- parse_KindTest();
- break;
- case 17573: // 'item' '('
- shift(165); // 'item'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- break;
- case 32: // '%'
- case 17553: // 'function' '('
- parse_FunctionTest();
- break;
- case 34: // '('
- parse_ParenthesizedItemType();
- break;
- case -6:
- parse_JSONTest();
- break;
- case 242: // 'structured-item'
- parse_StructuredItemTest();
- break;
- default:
- parse_AtomicOrUnionType();
- }
- eventHandler.endNonterminal("ItemType", e0);
- }
-
- function try_ItemType()
- {
- switch (l1)
- {
- case 78: // 'array'
- case 82: // 'attribute'
- case 96: // 'comment'
- case 120: // 'document-node'
- case 121: // 'element'
- case 145: // 'function'
- case 165: // 'item'
- case 167: // 'json-item'
- case 185: // 'namespace-node'
- case 191: // 'node'
- case 194: // 'object'
- case 216: // 'processing-instruction'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 244: // 'text'
- lookahead2W(241); // S^WS | EOF | '!=' | '(' | '(:' | ')' | '*' | '*' | '+' | ',' | '-' | ':' | ':=' |
- break;
- default:
- lk = l1;
- }
- if (lk == 17486 // 'array' '('
- || lk == 17575 // 'json-item' '('
- || lk == 17602) // 'object' '('
- {
- lk = memoized(4, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_KindTest();
- memoize(4, e0A, -1);
- lk = -8;
- }
- catch (p1A)
- {
- lk = -6;
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(4, e0A, -6);
- }
- }
- }
- switch (lk)
- {
- case -1:
- case 17490: // 'attribute' '('
- case 17504: // 'comment' '('
- case 17528: // 'document-node' '('
- case 17529: // 'element' '('
- case 17593: // 'namespace-node' '('
- case 17599: // 'node' '('
- case 17624: // 'processing-instruction' '('
- case 17634: // 'schema-attribute' '('
- case 17635: // 'schema-element' '('
- case 17652: // 'text' '('
- try_KindTest();
- break;
- case 17573: // 'item' '('
- shiftT(165); // 'item'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- break;
- case 32: // '%'
- case 17553: // 'function' '('
- try_FunctionTest();
- break;
- case 34: // '('
- try_ParenthesizedItemType();
- break;
- case -6:
- try_JSONTest();
- break;
- case 242: // 'structured-item'
- try_StructuredItemTest();
- break;
- case -8:
- break;
- default:
- try_AtomicOrUnionType();
- }
- }
-
- function parse_JSONTest()
- {
- eventHandler.startNonterminal("JSONTest", e0);
- switch (l1)
- {
- case 167: // 'json-item'
- parse_JSONItemTest();
- break;
- case 194: // 'object'
- parse_JSONObjectTest();
- break;
- default:
- parse_JSONArrayTest();
- }
- eventHandler.endNonterminal("JSONTest", e0);
- }
-
- function try_JSONTest()
- {
- switch (l1)
- {
- case 167: // 'json-item'
- try_JSONItemTest();
- break;
- case 194: // 'object'
- try_JSONObjectTest();
- break;
- default:
- try_JSONArrayTest();
- }
- }
-
- function parse_StructuredItemTest()
- {
- eventHandler.startNonterminal("StructuredItemTest", e0);
- shift(242); // 'structured-item'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("StructuredItemTest", e0);
- }
-
- function try_StructuredItemTest()
- {
- shiftT(242); // 'structured-item'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_JSONItemTest()
- {
- eventHandler.startNonterminal("JSONItemTest", e0);
- shift(167); // 'json-item'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("JSONItemTest", e0);
- }
-
- function try_JSONItemTest()
- {
- shiftT(167); // 'json-item'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_JSONObjectTest()
- {
- eventHandler.startNonterminal("JSONObjectTest", e0);
- shift(194); // 'object'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("JSONObjectTest", e0);
- }
-
- function try_JSONObjectTest()
- {
- shiftT(194); // 'object'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_JSONArrayTest()
- {
- eventHandler.startNonterminal("JSONArrayTest", e0);
- shift(78); // 'array'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("JSONArrayTest", e0);
- }
-
- function try_JSONArrayTest()
- {
- shiftT(78); // 'array'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_AtomicOrUnionType()
- {
- eventHandler.startNonterminal("AtomicOrUnionType", e0);
- parse_EQName();
- eventHandler.endNonterminal("AtomicOrUnionType", e0);
- }
-
- function try_AtomicOrUnionType()
- {
- try_EQName();
- }
-
- function parse_KindTest()
- {
- eventHandler.startNonterminal("KindTest", e0);
- switch (l1)
- {
- case 120: // 'document-node'
- parse_DocumentTest();
- break;
- case 121: // 'element'
- parse_ElementTest();
- break;
- case 82: // 'attribute'
- parse_AttributeTest();
- break;
- case 227: // 'schema-element'
- parse_SchemaElementTest();
- break;
- case 226: // 'schema-attribute'
- parse_SchemaAttributeTest();
- break;
- case 216: // 'processing-instruction'
- parse_PITest();
- break;
- case 96: // 'comment'
- parse_CommentTest();
- break;
- case 244: // 'text'
- parse_TextTest();
- break;
- case 185: // 'namespace-node'
- parse_NamespaceNodeTest();
- break;
- case 191: // 'node'
- parse_AnyKindTest();
- break;
- default:
- parse_JSONTest();
- }
- eventHandler.endNonterminal("KindTest", e0);
- }
-
- function try_KindTest()
- {
- switch (l1)
- {
- case 120: // 'document-node'
- try_DocumentTest();
- break;
- case 121: // 'element'
- try_ElementTest();
- break;
- case 82: // 'attribute'
- try_AttributeTest();
- break;
- case 227: // 'schema-element'
- try_SchemaElementTest();
- break;
- case 226: // 'schema-attribute'
- try_SchemaAttributeTest();
- break;
- case 216: // 'processing-instruction'
- try_PITest();
- break;
- case 96: // 'comment'
- try_CommentTest();
- break;
- case 244: // 'text'
- try_TextTest();
- break;
- case 185: // 'namespace-node'
- try_NamespaceNodeTest();
- break;
- case 191: // 'node'
- try_AnyKindTest();
- break;
- default:
- try_JSONTest();
- }
- }
-
- function parse_AnyKindTest()
- {
- eventHandler.startNonterminal("AnyKindTest", e0);
- shift(191); // 'node'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("AnyKindTest", e0);
- }
-
- function try_AnyKindTest()
- {
- shiftT(191); // 'node'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_DocumentTest()
- {
- eventHandler.startNonterminal("DocumentTest", e0);
- shift(120); // 'document-node'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(144); // S^WS | '(:' | ')' | 'element' | 'schema-element'
- if (l1 != 37) // ')'
- {
- switch (l1)
- {
- case 121: // 'element'
- whitespace();
- parse_ElementTest();
- break;
- default:
- whitespace();
- parse_SchemaElementTest();
- }
- }
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("DocumentTest", e0);
- }
-
- function try_DocumentTest()
- {
- shiftT(120); // 'document-node'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(144); // S^WS | '(:' | ')' | 'element' | 'schema-element'
- if (l1 != 37) // ')'
- {
- switch (l1)
- {
- case 121: // 'element'
- try_ElementTest();
- break;
- default:
- try_SchemaElementTest();
- }
- }
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_TextTest()
- {
- eventHandler.startNonterminal("TextTest", e0);
- shift(244); // 'text'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("TextTest", e0);
- }
-
- function try_TextTest()
- {
- shiftT(244); // 'text'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_CommentTest()
- {
- eventHandler.startNonterminal("CommentTest", e0);
- shift(96); // 'comment'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("CommentTest", e0);
- }
-
- function try_CommentTest()
- {
- shiftT(96); // 'comment'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_NamespaceNodeTest()
- {
- eventHandler.startNonterminal("NamespaceNodeTest", e0);
- shift(185); // 'namespace-node'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("NamespaceNodeTest", e0);
- }
-
- function try_NamespaceNodeTest()
- {
- shiftT(185); // 'namespace-node'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_PITest()
- {
- eventHandler.startNonterminal("PITest", e0);
- shift(216); // 'processing-instruction'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(251); // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' |
- if (l1 != 37) // ')'
- {
- switch (l1)
- {
- case 11: // StringLiteral
- shift(11); // StringLiteral
- break;
- default:
- whitespace();
- parse_NCName();
- }
- }
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("PITest", e0);
- }
-
- function try_PITest()
- {
- shiftT(216); // 'processing-instruction'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(251); // StringLiteral | NCName^Token | S^WS | '(:' | ')' | 'after' | 'allowing' |
- if (l1 != 37) // ')'
- {
- switch (l1)
- {
- case 11: // StringLiteral
- shiftT(11); // StringLiteral
- break;
- default:
- try_NCName();
- }
- }
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_AttributeTest()
- {
- eventHandler.startNonterminal("AttributeTest", e0);
- shift(82); // 'attribute'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(258); // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |
- if (l1 != 37) // ')'
- {
- whitespace();
- parse_AttribNameOrWildcard();
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 == 41) // ','
- {
- shift(41); // ','
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_TypeName();
- }
- }
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("AttributeTest", e0);
- }
-
- function try_AttributeTest()
- {
- shiftT(82); // 'attribute'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(258); // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |
- if (l1 != 37) // ')'
- {
- try_AttribNameOrWildcard();
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 == 41) // ','
- {
- shiftT(41); // ','
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_TypeName();
- }
- }
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_AttribNameOrWildcard()
- {
- eventHandler.startNonterminal("AttribNameOrWildcard", e0);
- switch (l1)
- {
- case 38: // '*'
- shift(38); // '*'
- break;
- default:
- parse_AttributeName();
- }
- eventHandler.endNonterminal("AttribNameOrWildcard", e0);
- }
-
- function try_AttribNameOrWildcard()
- {
- switch (l1)
- {
- case 38: // '*'
- shiftT(38); // '*'
- break;
- default:
- try_AttributeName();
- }
- }
-
- function parse_SchemaAttributeTest()
- {
- eventHandler.startNonterminal("SchemaAttributeTest", e0);
- shift(226); // 'schema-attribute'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_AttributeDeclaration();
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("SchemaAttributeTest", e0);
- }
-
- function try_SchemaAttributeTest()
- {
- shiftT(226); // 'schema-attribute'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_AttributeDeclaration();
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_AttributeDeclaration()
- {
- eventHandler.startNonterminal("AttributeDeclaration", e0);
- parse_AttributeName();
- eventHandler.endNonterminal("AttributeDeclaration", e0);
- }
-
- function try_AttributeDeclaration()
- {
- try_AttributeName();
- }
-
- function parse_ElementTest()
- {
- eventHandler.startNonterminal("ElementTest", e0);
- shift(121); // 'element'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(258); // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |
- if (l1 != 37) // ')'
- {
- whitespace();
- parse_ElementNameOrWildcard();
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 == 41) // ','
- {
- shift(41); // ','
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_TypeName();
- lookahead1W(102); // S^WS | '(:' | ')' | '?'
- if (l1 == 64) // '?'
- {
- shift(64); // '?'
- }
- }
- }
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("ElementTest", e0);
- }
-
- function try_ElementTest()
- {
- shiftT(121); // 'element'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(258); // EQName^Token | S^WS | '(:' | ')' | '*' | 'after' | 'allowing' | 'ancestor' |
- if (l1 != 37) // ')'
- {
- try_ElementNameOrWildcard();
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 == 41) // ','
- {
- shiftT(41); // ','
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_TypeName();
- lookahead1W(102); // S^WS | '(:' | ')' | '?'
- if (l1 == 64) // '?'
- {
- shiftT(64); // '?'
- }
- }
- }
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_ElementNameOrWildcard()
- {
- eventHandler.startNonterminal("ElementNameOrWildcard", e0);
- switch (l1)
- {
- case 38: // '*'
- shift(38); // '*'
- break;
- default:
- parse_ElementName();
- }
- eventHandler.endNonterminal("ElementNameOrWildcard", e0);
- }
-
- function try_ElementNameOrWildcard()
- {
- switch (l1)
- {
- case 38: // '*'
- shiftT(38); // '*'
- break;
- default:
- try_ElementName();
- }
- }
-
- function parse_SchemaElementTest()
- {
- eventHandler.startNonterminal("SchemaElementTest", e0);
- shift(227); // 'schema-element'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_ElementDeclaration();
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("SchemaElementTest", e0);
- }
-
- function try_SchemaElementTest()
- {
- shiftT(227); // 'schema-element'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_ElementDeclaration();
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_ElementDeclaration()
- {
- eventHandler.startNonterminal("ElementDeclaration", e0);
- parse_ElementName();
- eventHandler.endNonterminal("ElementDeclaration", e0);
- }
-
- function try_ElementDeclaration()
- {
- try_ElementName();
- }
-
- function parse_AttributeName()
- {
- eventHandler.startNonterminal("AttributeName", e0);
- parse_EQName();
- eventHandler.endNonterminal("AttributeName", e0);
- }
-
- function try_AttributeName()
- {
- try_EQName();
- }
-
- function parse_ElementName()
- {
- eventHandler.startNonterminal("ElementName", e0);
- parse_EQName();
- eventHandler.endNonterminal("ElementName", e0);
- }
-
- function try_ElementName()
- {
- try_EQName();
- }
-
- function parse_SimpleTypeName()
- {
- eventHandler.startNonterminal("SimpleTypeName", e0);
- parse_TypeName();
- eventHandler.endNonterminal("SimpleTypeName", e0);
- }
-
- function try_SimpleTypeName()
- {
- try_TypeName();
- }
-
- function parse_TypeName()
- {
- eventHandler.startNonterminal("TypeName", e0);
- parse_EQName();
- eventHandler.endNonterminal("TypeName", e0);
- }
-
- function try_TypeName()
- {
- try_EQName();
- }
-
- function parse_FunctionTest()
- {
- eventHandler.startNonterminal("FunctionTest", e0);
- for (;;)
- {
- lookahead1W(97); // S^WS | '%' | '(:' | 'function'
- if (l1 != 32) // '%'
- {
- break;
- }
- whitespace();
- parse_Annotation();
- }
- switch (l1)
- {
- case 145: // 'function'
- lookahead2W(22); // S^WS | '(' | '(:'
- break;
- default:
- lk = l1;
- }
- lk = memoized(5, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_AnyFunctionTest();
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(5, e0, lk);
- }
- switch (lk)
- {
- case -1:
- whitespace();
- parse_AnyFunctionTest();
- break;
- default:
- whitespace();
- parse_TypedFunctionTest();
- }
- eventHandler.endNonterminal("FunctionTest", e0);
- }
-
- function try_FunctionTest()
- {
- for (;;)
- {
- lookahead1W(97); // S^WS | '%' | '(:' | 'function'
- if (l1 != 32) // '%'
- {
- break;
- }
- try_Annotation();
- }
- switch (l1)
- {
- case 145: // 'function'
- lookahead2W(22); // S^WS | '(' | '(:'
- break;
- default:
- lk = l1;
- }
- lk = memoized(5, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_AnyFunctionTest();
- memoize(5, e0A, -1);
- lk = -3;
- }
- catch (p1A)
- {
- lk = -2;
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(5, e0A, -2);
- }
- }
- switch (lk)
- {
- case -1:
- try_AnyFunctionTest();
- break;
- case -3:
- break;
- default:
- try_TypedFunctionTest();
- }
- }
-
- function parse_AnyFunctionTest()
- {
- eventHandler.startNonterminal("AnyFunctionTest", e0);
- shift(145); // 'function'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(24); // S^WS | '(:' | '*'
- shift(38); // '*'
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("AnyFunctionTest", e0);
- }
-
- function try_AnyFunctionTest()
- {
- shiftT(145); // 'function'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(24); // S^WS | '(:' | '*'
- shiftT(38); // '*'
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_TypedFunctionTest()
- {
- eventHandler.startNonterminal("TypedFunctionTest", e0);
- shift(145); // 'function'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(261); // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |
- if (l1 != 37) // ')'
- {
- whitespace();
- parse_SequenceType();
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- }
- }
- shift(37); // ')'
- lookahead1W(30); // S^WS | '(:' | 'as'
- shift(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- eventHandler.endNonterminal("TypedFunctionTest", e0);
- }
-
- function try_TypedFunctionTest()
- {
- shiftT(145); // 'function'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(261); // EQName^Token | S^WS | '%' | '(' | '(:' | ')' | 'after' | 'allowing' |
- if (l1 != 37) // ')'
- {
- try_SequenceType();
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceType();
- }
- }
- shiftT(37); // ')'
- lookahead1W(30); // S^WS | '(:' | 'as'
- shiftT(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceType();
- }
-
- function parse_ParenthesizedItemType()
- {
- eventHandler.startNonterminal("ParenthesizedItemType", e0);
- shift(34); // '('
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_ItemType();
- lookahead1W(23); // S^WS | '(:' | ')'
- shift(37); // ')'
- eventHandler.endNonterminal("ParenthesizedItemType", e0);
- }
-
- function try_ParenthesizedItemType()
- {
- shiftT(34); // '('
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_ItemType();
- lookahead1W(23); // S^WS | '(:' | ')'
- shiftT(37); // ')'
- }
-
- function parse_RevalidationDecl()
- {
- eventHandler.startNonterminal("RevalidationDecl", e0);
- shift(108); // 'declare'
- lookahead1W(72); // S^WS | '(:' | 'revalidation'
- shift(222); // 'revalidation'
- lookahead1W(152); // S^WS | '(:' | 'lax' | 'skip' | 'strict'
- switch (l1)
- {
- case 240: // 'strict'
- shift(240); // 'strict'
- break;
- case 171: // 'lax'
- shift(171); // 'lax'
- break;
- default:
- shift(233); // 'skip'
- }
- eventHandler.endNonterminal("RevalidationDecl", e0);
- }
-
- function parse_InsertExprTargetChoice()
- {
- eventHandler.startNonterminal("InsertExprTargetChoice", e0);
- switch (l1)
- {
- case 70: // 'after'
- shift(70); // 'after'
- break;
- case 84: // 'before'
- shift(84); // 'before'
- break;
- default:
- if (l1 == 79) // 'as'
- {
- shift(79); // 'as'
- lookahead1W(119); // S^WS | '(:' | 'first' | 'last'
- switch (l1)
- {
- case 134: // 'first'
- shift(134); // 'first'
- break;
- default:
- shift(170); // 'last'
- }
- }
- lookahead1W(54); // S^WS | '(:' | 'into'
- shift(163); // 'into'
- }
- eventHandler.endNonterminal("InsertExprTargetChoice", e0);
- }
-
- function try_InsertExprTargetChoice()
- {
- switch (l1)
- {
- case 70: // 'after'
- shiftT(70); // 'after'
- break;
- case 84: // 'before'
- shiftT(84); // 'before'
- break;
- default:
- if (l1 == 79) // 'as'
- {
- shiftT(79); // 'as'
- lookahead1W(119); // S^WS | '(:' | 'first' | 'last'
- switch (l1)
- {
- case 134: // 'first'
- shiftT(134); // 'first'
- break;
- default:
- shiftT(170); // 'last'
- }
- }
- lookahead1W(54); // S^WS | '(:' | 'into'
- shiftT(163); // 'into'
- }
- }
-
- function parse_InsertExpr()
- {
- eventHandler.startNonterminal("InsertExpr", e0);
- shift(159); // 'insert'
- lookahead1W(129); // S^WS | '(:' | 'node' | 'nodes'
- switch (l1)
- {
- case 191: // 'node'
- shift(191); // 'node'
- break;
- default:
- shift(192); // 'nodes'
- }
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_SourceExpr();
- whitespace();
- parse_InsertExprTargetChoice();
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_TargetExpr();
- eventHandler.endNonterminal("InsertExpr", e0);
- }
-
- function try_InsertExpr()
- {
- shiftT(159); // 'insert'
- lookahead1W(129); // S^WS | '(:' | 'node' | 'nodes'
- switch (l1)
- {
- case 191: // 'node'
- shiftT(191); // 'node'
- break;
- default:
- shiftT(192); // 'nodes'
- }
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_SourceExpr();
- try_InsertExprTargetChoice();
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_TargetExpr();
- }
-
- function parse_DeleteExpr()
- {
- eventHandler.startNonterminal("DeleteExpr", e0);
- shift(110); // 'delete'
- lookahead1W(129); // S^WS | '(:' | 'node' | 'nodes'
- switch (l1)
- {
- case 191: // 'node'
- shift(191); // 'node'
- break;
- default:
- shift(192); // 'nodes'
- }
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_TargetExpr();
- eventHandler.endNonterminal("DeleteExpr", e0);
- }
-
- function try_DeleteExpr()
- {
- shiftT(110); // 'delete'
- lookahead1W(129); // S^WS | '(:' | 'node' | 'nodes'
- switch (l1)
- {
- case 191: // 'node'
- shiftT(191); // 'node'
- break;
- default:
- shiftT(192); // 'nodes'
- }
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_TargetExpr();
- }
-
- function parse_ReplaceExpr()
- {
- eventHandler.startNonterminal("ReplaceExpr", e0);
- shift(219); // 'replace'
- lookahead1W(130); // S^WS | '(:' | 'node' | 'value'
- if (l1 == 261) // 'value'
- {
- shift(261); // 'value'
- lookahead1W(64); // S^WS | '(:' | 'of'
- shift(196); // 'of'
- }
- lookahead1W(62); // S^WS | '(:' | 'node'
- shift(191); // 'node'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_TargetExpr();
- shift(270); // 'with'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("ReplaceExpr", e0);
- }
-
- function try_ReplaceExpr()
- {
- shiftT(219); // 'replace'
- lookahead1W(130); // S^WS | '(:' | 'node' | 'value'
- if (l1 == 261) // 'value'
- {
- shiftT(261); // 'value'
- lookahead1W(64); // S^WS | '(:' | 'of'
- shiftT(196); // 'of'
- }
- lookahead1W(62); // S^WS | '(:' | 'node'
- shiftT(191); // 'node'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_TargetExpr();
- shiftT(270); // 'with'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_RenameExpr()
- {
- eventHandler.startNonterminal("RenameExpr", e0);
- shift(218); // 'rename'
- lookahead1W(62); // S^WS | '(:' | 'node'
- shift(191); // 'node'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_TargetExpr();
- shift(79); // 'as'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_NewNameExpr();
- eventHandler.endNonterminal("RenameExpr", e0);
- }
-
- function try_RenameExpr()
- {
- shiftT(218); // 'rename'
- lookahead1W(62); // S^WS | '(:' | 'node'
- shiftT(191); // 'node'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_TargetExpr();
- shiftT(79); // 'as'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_NewNameExpr();
- }
-
- function parse_SourceExpr()
- {
- eventHandler.startNonterminal("SourceExpr", e0);
- parse_ExprSingle();
- eventHandler.endNonterminal("SourceExpr", e0);
- }
-
- function try_SourceExpr()
- {
- try_ExprSingle();
- }
-
- function parse_TargetExpr()
- {
- eventHandler.startNonterminal("TargetExpr", e0);
- parse_ExprSingle();
- eventHandler.endNonterminal("TargetExpr", e0);
- }
-
- function try_TargetExpr()
- {
- try_ExprSingle();
- }
-
- function parse_NewNameExpr()
- {
- eventHandler.startNonterminal("NewNameExpr", e0);
- parse_ExprSingle();
- eventHandler.endNonterminal("NewNameExpr", e0);
- }
-
- function try_NewNameExpr()
- {
- try_ExprSingle();
- }
-
- function parse_TransformExpr()
- {
- eventHandler.startNonterminal("TransformExpr", e0);
- shift(103); // 'copy'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(27); // S^WS | '(:' | ':='
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(27); // S^WS | '(:' | ':='
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- }
- shift(181); // 'modify'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("TransformExpr", e0);
- }
-
- function try_TransformExpr()
- {
- shiftT(103); // 'copy'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(27); // S^WS | '(:' | ':='
- shiftT(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(27); // S^WS | '(:' | ':='
- shiftT(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
- shiftT(181); // 'modify'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_FTSelection()
- {
- eventHandler.startNonterminal("FTSelection", e0);
- parse_FTOr();
- for (;;)
- {
- lookahead1W(211); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- switch (l1)
- {
- case 81: // 'at'
- lookahead2W(151); // S^WS | '(:' | 'end' | 'position' | 'start'
- break;
- default:
- lk = l1;
- }
- if (lk != 115 // 'different'
- && lk != 117 // 'distance'
- && lk != 127 // 'entire'
- && lk != 202 // 'ordered'
- && lk != 223 // 'same'
- && lk != 269 // 'window'
- && lk != 64593 // 'at' 'end'
- && lk != 121425) // 'at' 'start'
- {
- break;
- }
- whitespace();
- parse_FTPosFilter();
- }
- eventHandler.endNonterminal("FTSelection", e0);
- }
-
- function try_FTSelection()
- {
- try_FTOr();
- for (;;)
- {
- lookahead1W(211); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- switch (l1)
- {
- case 81: // 'at'
- lookahead2W(151); // S^WS | '(:' | 'end' | 'position' | 'start'
- break;
- default:
- lk = l1;
- }
- if (lk != 115 // 'different'
- && lk != 117 // 'distance'
- && lk != 127 // 'entire'
- && lk != 202 // 'ordered'
- && lk != 223 // 'same'
- && lk != 269 // 'window'
- && lk != 64593 // 'at' 'end'
- && lk != 121425) // 'at' 'start'
- {
- break;
- }
- try_FTPosFilter();
- }
- }
-
- function parse_FTWeight()
- {
- eventHandler.startNonterminal("FTWeight", e0);
- shift(264); // 'weight'
- lookahead1W(87); // S^WS | '(:' | '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- eventHandler.endNonterminal("FTWeight", e0);
- }
-
- function try_FTWeight()
- {
- shiftT(264); // 'weight'
- lookahead1W(87); // S^WS | '(:' | '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- }
-
- function parse_FTOr()
- {
- eventHandler.startNonterminal("FTOr", e0);
- parse_FTAnd();
- for (;;)
- {
- if (l1 != 144) // 'ftor'
- {
- break;
- }
- shift(144); // 'ftor'
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- whitespace();
- parse_FTAnd();
- }
- eventHandler.endNonterminal("FTOr", e0);
- }
-
- function try_FTOr()
- {
- try_FTAnd();
- for (;;)
- {
- if (l1 != 144) // 'ftor'
- {
- break;
- }
- shiftT(144); // 'ftor'
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- try_FTAnd();
- }
- }
-
- function parse_FTAnd()
- {
- eventHandler.startNonterminal("FTAnd", e0);
- parse_FTMildNot();
- for (;;)
- {
- if (l1 != 142) // 'ftand'
- {
- break;
- }
- shift(142); // 'ftand'
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- whitespace();
- parse_FTMildNot();
- }
- eventHandler.endNonterminal("FTAnd", e0);
- }
-
- function try_FTAnd()
- {
- try_FTMildNot();
- for (;;)
- {
- if (l1 != 142) // 'ftand'
- {
- break;
- }
- shiftT(142); // 'ftand'
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- try_FTMildNot();
- }
- }
-
- function parse_FTMildNot()
- {
- eventHandler.startNonterminal("FTMildNot", e0);
- parse_FTUnaryNot();
- for (;;)
- {
- lookahead1W(212); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 != 193) // 'not'
- {
- break;
- }
- shift(193); // 'not'
- lookahead1W(53); // S^WS | '(:' | 'in'
- shift(154); // 'in'
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- whitespace();
- parse_FTUnaryNot();
- }
- eventHandler.endNonterminal("FTMildNot", e0);
- }
-
- function try_FTMildNot()
- {
- try_FTUnaryNot();
- for (;;)
- {
- lookahead1W(212); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 != 193) // 'not'
- {
- break;
- }
- shiftT(193); // 'not'
- lookahead1W(53); // S^WS | '(:' | 'in'
- shiftT(154); // 'in'
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- try_FTUnaryNot();
- }
- }
-
- function parse_FTUnaryNot()
- {
- eventHandler.startNonterminal("FTUnaryNot", e0);
- if (l1 == 143) // 'ftnot'
- {
- shift(143); // 'ftnot'
- }
- lookahead1W(155); // StringLiteral | S^WS | '(' | '(#' | '(:' | '{'
- whitespace();
- parse_FTPrimaryWithOptions();
- eventHandler.endNonterminal("FTUnaryNot", e0);
- }
-
- function try_FTUnaryNot()
- {
- if (l1 == 143) // 'ftnot'
- {
- shiftT(143); // 'ftnot'
- }
- lookahead1W(155); // StringLiteral | S^WS | '(' | '(#' | '(:' | '{'
- try_FTPrimaryWithOptions();
- }
-
- function parse_FTPrimaryWithOptions()
- {
- eventHandler.startNonterminal("FTPrimaryWithOptions", e0);
- parse_FTPrimary();
- lookahead1W(214); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 259) // 'using'
- {
- whitespace();
- parse_FTMatchOptions();
- }
- if (l1 == 264) // 'weight'
- {
- whitespace();
- parse_FTWeight();
- }
- eventHandler.endNonterminal("FTPrimaryWithOptions", e0);
- }
-
- function try_FTPrimaryWithOptions()
- {
- try_FTPrimary();
- lookahead1W(214); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 259) // 'using'
- {
- try_FTMatchOptions();
- }
- if (l1 == 264) // 'weight'
- {
- try_FTWeight();
- }
- }
-
- function parse_FTPrimary()
- {
- eventHandler.startNonterminal("FTPrimary", e0);
- switch (l1)
- {
- case 34: // '('
- shift(34); // '('
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- whitespace();
- parse_FTSelection();
- shift(37); // ')'
- break;
- case 35: // '(#'
- parse_FTExtensionSelection();
- break;
- default:
- parse_FTWords();
- lookahead1W(215); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 195) // 'occurs'
- {
- whitespace();
- parse_FTTimes();
- }
- }
- eventHandler.endNonterminal("FTPrimary", e0);
- }
-
- function try_FTPrimary()
- {
- switch (l1)
- {
- case 34: // '('
- shiftT(34); // '('
- lookahead1W(162); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{'
- try_FTSelection();
- shiftT(37); // ')'
- break;
- case 35: // '(#'
- try_FTExtensionSelection();
- break;
- default:
- try_FTWords();
- lookahead1W(215); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 195) // 'occurs'
- {
- try_FTTimes();
- }
- }
- }
-
- function parse_FTWords()
- {
- eventHandler.startNonterminal("FTWords", e0);
- parse_FTWordsValue();
- lookahead1W(221); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 71 // 'all'
- || l1 == 76 // 'any'
- || l1 == 210) // 'phrase'
- {
- whitespace();
- parse_FTAnyallOption();
- }
- eventHandler.endNonterminal("FTWords", e0);
- }
-
- function try_FTWords()
- {
- try_FTWordsValue();
- lookahead1W(221); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 71 // 'all'
- || l1 == 76 // 'any'
- || l1 == 210) // 'phrase'
- {
- try_FTAnyallOption();
- }
- }
-
- function parse_FTWordsValue()
- {
- eventHandler.startNonterminal("FTWordsValue", e0);
- switch (l1)
- {
- case 11: // StringLiteral
- shift(11); // StringLiteral
- break;
- default:
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- }
- eventHandler.endNonterminal("FTWordsValue", e0);
- }
-
- function try_FTWordsValue()
- {
- switch (l1)
- {
- case 11: // StringLiteral
- shiftT(11); // StringLiteral
- break;
- default:
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- }
- }
-
- function parse_FTExtensionSelection()
- {
- eventHandler.startNonterminal("FTExtensionSelection", e0);
- for (;;)
- {
- whitespace();
- parse_Pragma();
- lookahead1W(100); // S^WS | '(#' | '(:' | '{'
- if (l1 != 35) // '(#'
- {
- break;
- }
- }
- shift(276); // '{'
- lookahead1W(166); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}'
- if (l1 != 282) // '}'
- {
- whitespace();
- parse_FTSelection();
- }
- shift(282); // '}'
- eventHandler.endNonterminal("FTExtensionSelection", e0);
- }
-
- function try_FTExtensionSelection()
- {
- for (;;)
- {
- try_Pragma();
- lookahead1W(100); // S^WS | '(#' | '(:' | '{'
- if (l1 != 35) // '(#'
- {
- break;
- }
- }
- shiftT(276); // '{'
- lookahead1W(166); // StringLiteral | S^WS | '(' | '(#' | '(:' | 'ftnot' | '{' | '}'
- if (l1 != 282) // '}'
- {
- try_FTSelection();
- }
- shiftT(282); // '}'
- }
-
- function parse_FTAnyallOption()
- {
- eventHandler.startNonterminal("FTAnyallOption", e0);
- switch (l1)
- {
- case 76: // 'any'
- shift(76); // 'any'
- lookahead1W(218); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 272) // 'word'
- {
- shift(272); // 'word'
- }
- break;
- case 71: // 'all'
- shift(71); // 'all'
- lookahead1W(219); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 273) // 'words'
- {
- shift(273); // 'words'
- }
- break;
- default:
- shift(210); // 'phrase'
- }
- eventHandler.endNonterminal("FTAnyallOption", e0);
- }
-
- function try_FTAnyallOption()
- {
- switch (l1)
- {
- case 76: // 'any'
- shiftT(76); // 'any'
- lookahead1W(218); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 272) // 'word'
- {
- shiftT(272); // 'word'
- }
- break;
- case 71: // 'all'
- shiftT(71); // 'all'
- lookahead1W(219); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 273) // 'words'
- {
- shiftT(273); // 'words'
- }
- break;
- default:
- shiftT(210); // 'phrase'
- }
- }
-
- function parse_FTTimes()
- {
- eventHandler.startNonterminal("FTTimes", e0);
- shift(195); // 'occurs'
- lookahead1W(149); // S^WS | '(:' | 'at' | 'exactly' | 'from'
- whitespace();
- parse_FTRange();
- shift(247); // 'times'
- eventHandler.endNonterminal("FTTimes", e0);
- }
-
- function try_FTTimes()
- {
- shiftT(195); // 'occurs'
- lookahead1W(149); // S^WS | '(:' | 'at' | 'exactly' | 'from'
- try_FTRange();
- shiftT(247); // 'times'
- }
-
- function parse_FTRange()
- {
- eventHandler.startNonterminal("FTRange", e0);
- switch (l1)
- {
- case 130: // 'exactly'
- shift(130); // 'exactly'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_AdditiveExpr();
- break;
- case 81: // 'at'
- shift(81); // 'at'
- lookahead1W(125); // S^WS | '(:' | 'least' | 'most'
- switch (l1)
- {
- case 173: // 'least'
- shift(173); // 'least'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_AdditiveExpr();
- break;
- default:
- shift(183); // 'most'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_AdditiveExpr();
- }
- break;
- default:
- shift(140); // 'from'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_AdditiveExpr();
- shift(248); // 'to'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_AdditiveExpr();
- }
- eventHandler.endNonterminal("FTRange", e0);
- }
-
- function try_FTRange()
- {
- switch (l1)
- {
- case 130: // 'exactly'
- shiftT(130); // 'exactly'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_AdditiveExpr();
- break;
- case 81: // 'at'
- shiftT(81); // 'at'
- lookahead1W(125); // S^WS | '(:' | 'least' | 'most'
- switch (l1)
- {
- case 173: // 'least'
- shiftT(173); // 'least'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_AdditiveExpr();
- break;
- default:
- shiftT(183); // 'most'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_AdditiveExpr();
- }
- break;
- default:
- shiftT(140); // 'from'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_AdditiveExpr();
- shiftT(248); // 'to'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_AdditiveExpr();
- }
- }
-
- function parse_FTPosFilter()
- {
- eventHandler.startNonterminal("FTPosFilter", e0);
- switch (l1)
- {
- case 202: // 'ordered'
- parse_FTOrder();
- break;
- case 269: // 'window'
- parse_FTWindow();
- break;
- case 117: // 'distance'
- parse_FTDistance();
- break;
- case 115: // 'different'
- case 223: // 'same'
- parse_FTScope();
- break;
- default:
- parse_FTContent();
- }
- eventHandler.endNonterminal("FTPosFilter", e0);
- }
-
- function try_FTPosFilter()
- {
- switch (l1)
- {
- case 202: // 'ordered'
- try_FTOrder();
- break;
- case 269: // 'window'
- try_FTWindow();
- break;
- case 117: // 'distance'
- try_FTDistance();
- break;
- case 115: // 'different'
- case 223: // 'same'
- try_FTScope();
- break;
- default:
- try_FTContent();
- }
- }
-
- function parse_FTOrder()
- {
- eventHandler.startNonterminal("FTOrder", e0);
- shift(202); // 'ordered'
- eventHandler.endNonterminal("FTOrder", e0);
- }
-
- function try_FTOrder()
- {
- shiftT(202); // 'ordered'
- }
-
- function parse_FTWindow()
- {
- eventHandler.startNonterminal("FTWindow", e0);
- shift(269); // 'window'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_AdditiveExpr();
- whitespace();
- parse_FTUnit();
- eventHandler.endNonterminal("FTWindow", e0);
- }
-
- function try_FTWindow()
- {
- shiftT(269); // 'window'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_AdditiveExpr();
- try_FTUnit();
- }
-
- function parse_FTDistance()
- {
- eventHandler.startNonterminal("FTDistance", e0);
- shift(117); // 'distance'
- lookahead1W(149); // S^WS | '(:' | 'at' | 'exactly' | 'from'
- whitespace();
- parse_FTRange();
- whitespace();
- parse_FTUnit();
- eventHandler.endNonterminal("FTDistance", e0);
- }
-
- function try_FTDistance()
- {
- shiftT(117); // 'distance'
- lookahead1W(149); // S^WS | '(:' | 'at' | 'exactly' | 'from'
- try_FTRange();
- try_FTUnit();
- }
-
- function parse_FTUnit()
- {
- eventHandler.startNonterminal("FTUnit", e0);
- switch (l1)
- {
- case 273: // 'words'
- shift(273); // 'words'
- break;
- case 232: // 'sentences'
- shift(232); // 'sentences'
- break;
- default:
- shift(205); // 'paragraphs'
- }
- eventHandler.endNonterminal("FTUnit", e0);
- }
-
- function try_FTUnit()
- {
- switch (l1)
- {
- case 273: // 'words'
- shiftT(273); // 'words'
- break;
- case 232: // 'sentences'
- shiftT(232); // 'sentences'
- break;
- default:
- shiftT(205); // 'paragraphs'
- }
- }
-
- function parse_FTScope()
- {
- eventHandler.startNonterminal("FTScope", e0);
- switch (l1)
- {
- case 223: // 'same'
- shift(223); // 'same'
- break;
- default:
- shift(115); // 'different'
- }
- lookahead1W(132); // S^WS | '(:' | 'paragraph' | 'sentence'
- whitespace();
- parse_FTBigUnit();
- eventHandler.endNonterminal("FTScope", e0);
- }
-
- function try_FTScope()
- {
- switch (l1)
- {
- case 223: // 'same'
- shiftT(223); // 'same'
- break;
- default:
- shiftT(115); // 'different'
- }
- lookahead1W(132); // S^WS | '(:' | 'paragraph' | 'sentence'
- try_FTBigUnit();
- }
-
- function parse_FTBigUnit()
- {
- eventHandler.startNonterminal("FTBigUnit", e0);
- switch (l1)
- {
- case 231: // 'sentence'
- shift(231); // 'sentence'
- break;
- default:
- shift(204); // 'paragraph'
- }
- eventHandler.endNonterminal("FTBigUnit", e0);
- }
-
- function try_FTBigUnit()
- {
- switch (l1)
- {
- case 231: // 'sentence'
- shiftT(231); // 'sentence'
- break;
- default:
- shiftT(204); // 'paragraph'
- }
- }
-
- function parse_FTContent()
- {
- eventHandler.startNonterminal("FTContent", e0);
- switch (l1)
- {
- case 81: // 'at'
- shift(81); // 'at'
- lookahead1W(117); // S^WS | '(:' | 'end' | 'start'
- switch (l1)
- {
- case 237: // 'start'
- shift(237); // 'start'
- break;
- default:
- shift(126); // 'end'
- }
- break;
- default:
- shift(127); // 'entire'
- lookahead1W(42); // S^WS | '(:' | 'content'
- shift(100); // 'content'
- }
- eventHandler.endNonterminal("FTContent", e0);
- }
-
- function try_FTContent()
- {
- switch (l1)
- {
- case 81: // 'at'
- shiftT(81); // 'at'
- lookahead1W(117); // S^WS | '(:' | 'end' | 'start'
- switch (l1)
- {
- case 237: // 'start'
- shiftT(237); // 'start'
- break;
- default:
- shiftT(126); // 'end'
- }
- break;
- default:
- shiftT(127); // 'entire'
- lookahead1W(42); // S^WS | '(:' | 'content'
- shiftT(100); // 'content'
- }
- }
-
- function parse_FTMatchOptions()
- {
- eventHandler.startNonterminal("FTMatchOptions", e0);
- for (;;)
- {
- shift(259); // 'using'
- lookahead1W(181); // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' |
- whitespace();
- parse_FTMatchOption();
- lookahead1W(214); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 != 259) // 'using'
- {
- break;
- }
- }
- eventHandler.endNonterminal("FTMatchOptions", e0);
- }
-
- function try_FTMatchOptions()
- {
- for (;;)
- {
- shiftT(259); // 'using'
- lookahead1W(181); // S^WS | '(:' | 'case' | 'diacritics' | 'language' | 'lowercase' | 'no' |
- try_FTMatchOption();
- lookahead1W(214); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 != 259) // 'using'
- {
- break;
- }
- }
- }
-
- function parse_FTMatchOption()
- {
- eventHandler.startNonterminal("FTMatchOption", e0);
- switch (l1)
- {
- case 188: // 'no'
- lookahead2W(161); // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards'
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 169: // 'language'
- parse_FTLanguageOption();
- break;
- case 268: // 'wildcards'
- case 137404: // 'no' 'wildcards'
- parse_FTWildCardOption();
- break;
- case 246: // 'thesaurus'
- case 126140: // 'no' 'thesaurus'
- parse_FTThesaurusOption();
- break;
- case 238: // 'stemming'
- case 122044: // 'no' 'stemming'
- parse_FTStemOption();
- break;
- case 114: // 'diacritics'
- parse_FTDiacriticsOption();
- break;
- case 239: // 'stop'
- case 122556: // 'no' 'stop'
- parse_FTStopWordOption();
- break;
- case 199: // 'option'
- parse_FTExtensionOption();
- break;
- default:
- parse_FTCaseOption();
- }
- eventHandler.endNonterminal("FTMatchOption", e0);
- }
-
- function try_FTMatchOption()
- {
- switch (l1)
- {
- case 188: // 'no'
- lookahead2W(161); // S^WS | '(:' | 'stemming' | 'stop' | 'thesaurus' | 'wildcards'
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 169: // 'language'
- try_FTLanguageOption();
- break;
- case 268: // 'wildcards'
- case 137404: // 'no' 'wildcards'
- try_FTWildCardOption();
- break;
- case 246: // 'thesaurus'
- case 126140: // 'no' 'thesaurus'
- try_FTThesaurusOption();
- break;
- case 238: // 'stemming'
- case 122044: // 'no' 'stemming'
- try_FTStemOption();
- break;
- case 114: // 'diacritics'
- try_FTDiacriticsOption();
- break;
- case 239: // 'stop'
- case 122556: // 'no' 'stop'
- try_FTStopWordOption();
- break;
- case 199: // 'option'
- try_FTExtensionOption();
- break;
- default:
- try_FTCaseOption();
- }
- }
-
- function parse_FTCaseOption()
- {
- eventHandler.startNonterminal("FTCaseOption", e0);
- switch (l1)
- {
- case 88: // 'case'
- shift(88); // 'case'
- lookahead1W(124); // S^WS | '(:' | 'insensitive' | 'sensitive'
- switch (l1)
- {
- case 158: // 'insensitive'
- shift(158); // 'insensitive'
- break;
- default:
- shift(230); // 'sensitive'
- }
- break;
- case 177: // 'lowercase'
- shift(177); // 'lowercase'
- break;
- default:
- shift(258); // 'uppercase'
- }
- eventHandler.endNonterminal("FTCaseOption", e0);
- }
-
- function try_FTCaseOption()
- {
- switch (l1)
- {
- case 88: // 'case'
- shiftT(88); // 'case'
- lookahead1W(124); // S^WS | '(:' | 'insensitive' | 'sensitive'
- switch (l1)
- {
- case 158: // 'insensitive'
- shiftT(158); // 'insensitive'
- break;
- default:
- shiftT(230); // 'sensitive'
- }
- break;
- case 177: // 'lowercase'
- shiftT(177); // 'lowercase'
- break;
- default:
- shiftT(258); // 'uppercase'
- }
- }
-
- function parse_FTDiacriticsOption()
- {
- eventHandler.startNonterminal("FTDiacriticsOption", e0);
- shift(114); // 'diacritics'
- lookahead1W(124); // S^WS | '(:' | 'insensitive' | 'sensitive'
- switch (l1)
- {
- case 158: // 'insensitive'
- shift(158); // 'insensitive'
- break;
- default:
- shift(230); // 'sensitive'
- }
- eventHandler.endNonterminal("FTDiacriticsOption", e0);
- }
-
- function try_FTDiacriticsOption()
- {
- shiftT(114); // 'diacritics'
- lookahead1W(124); // S^WS | '(:' | 'insensitive' | 'sensitive'
- switch (l1)
- {
- case 158: // 'insensitive'
- shiftT(158); // 'insensitive'
- break;
- default:
- shiftT(230); // 'sensitive'
- }
- }
-
- function parse_FTStemOption()
- {
- eventHandler.startNonterminal("FTStemOption", e0);
- switch (l1)
- {
- case 238: // 'stemming'
- shift(238); // 'stemming'
- break;
- default:
- shift(188); // 'no'
- lookahead1W(74); // S^WS | '(:' | 'stemming'
- shift(238); // 'stemming'
- }
- eventHandler.endNonterminal("FTStemOption", e0);
- }
-
- function try_FTStemOption()
- {
- switch (l1)
- {
- case 238: // 'stemming'
- shiftT(238); // 'stemming'
- break;
- default:
- shiftT(188); // 'no'
- lookahead1W(74); // S^WS | '(:' | 'stemming'
- shiftT(238); // 'stemming'
- }
- }
-
- function parse_FTThesaurusOption()
- {
- eventHandler.startNonterminal("FTThesaurusOption", e0);
- switch (l1)
- {
- case 246: // 'thesaurus'
- shift(246); // 'thesaurus'
- lookahead1W(142); // S^WS | '(' | '(:' | 'at' | 'default'
- switch (l1)
- {
- case 81: // 'at'
- whitespace();
- parse_FTThesaurusID();
- break;
- case 109: // 'default'
- shift(109); // 'default'
- break;
- default:
- shift(34); // '('
- lookahead1W(112); // S^WS | '(:' | 'at' | 'default'
- switch (l1)
- {
- case 81: // 'at'
- whitespace();
- parse_FTThesaurusID();
- break;
- default:
- shift(109); // 'default'
- }
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(31); // S^WS | '(:' | 'at'
- whitespace();
- parse_FTThesaurusID();
- }
- shift(37); // ')'
- }
- break;
- default:
- shift(188); // 'no'
- lookahead1W(78); // S^WS | '(:' | 'thesaurus'
- shift(246); // 'thesaurus'
- }
- eventHandler.endNonterminal("FTThesaurusOption", e0);
- }
-
- function try_FTThesaurusOption()
- {
- switch (l1)
- {
- case 246: // 'thesaurus'
- shiftT(246); // 'thesaurus'
- lookahead1W(142); // S^WS | '(' | '(:' | 'at' | 'default'
- switch (l1)
- {
- case 81: // 'at'
- try_FTThesaurusID();
- break;
- case 109: // 'default'
- shiftT(109); // 'default'
- break;
- default:
- shiftT(34); // '('
- lookahead1W(112); // S^WS | '(:' | 'at' | 'default'
- switch (l1)
- {
- case 81: // 'at'
- try_FTThesaurusID();
- break;
- default:
- shiftT(109); // 'default'
- }
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(31); // S^WS | '(:' | 'at'
- try_FTThesaurusID();
- }
- shiftT(37); // ')'
- }
- break;
- default:
- shiftT(188); // 'no'
- lookahead1W(78); // S^WS | '(:' | 'thesaurus'
- shiftT(246); // 'thesaurus'
- }
- }
-
- function parse_FTThesaurusID()
- {
- eventHandler.startNonterminal("FTThesaurusID", e0);
- shift(81); // 'at'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- lookahead1W(220); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 217) // 'relationship'
- {
- shift(217); // 'relationship'
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- }
- lookahead1W(216); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- switch (l1)
- {
- case 81: // 'at'
- lookahead2W(165); // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start'
- break;
- default:
- lk = l1;
- }
- if (lk == 130 // 'exactly'
- || lk == 140 // 'from'
- || lk == 88657 // 'at' 'least'
- || lk == 93777) // 'at' 'most'
- {
- whitespace();
- parse_FTLiteralRange();
- lookahead1W(58); // S^WS | '(:' | 'levels'
- shift(175); // 'levels'
- }
- eventHandler.endNonterminal("FTThesaurusID", e0);
- }
-
- function try_FTThesaurusID()
- {
- shiftT(81); // 'at'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shiftT(7); // URILiteral
- lookahead1W(220); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 == 217) // 'relationship'
- {
- shiftT(217); // 'relationship'
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shiftT(11); // StringLiteral
- }
- lookahead1W(216); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- switch (l1)
- {
- case 81: // 'at'
- lookahead2W(165); // S^WS | '(:' | 'end' | 'least' | 'most' | 'position' | 'start'
- break;
- default:
- lk = l1;
- }
- if (lk == 130 // 'exactly'
- || lk == 140 // 'from'
- || lk == 88657 // 'at' 'least'
- || lk == 93777) // 'at' 'most'
- {
- try_FTLiteralRange();
- lookahead1W(58); // S^WS | '(:' | 'levels'
- shiftT(175); // 'levels'
- }
- }
-
- function parse_FTLiteralRange()
- {
- eventHandler.startNonterminal("FTLiteralRange", e0);
- switch (l1)
- {
- case 130: // 'exactly'
- shift(130); // 'exactly'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shift(8); // IntegerLiteral
- break;
- case 81: // 'at'
- shift(81); // 'at'
- lookahead1W(125); // S^WS | '(:' | 'least' | 'most'
- switch (l1)
- {
- case 173: // 'least'
- shift(173); // 'least'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shift(8); // IntegerLiteral
- break;
- default:
- shift(183); // 'most'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shift(8); // IntegerLiteral
- }
- break;
- default:
- shift(140); // 'from'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shift(8); // IntegerLiteral
- lookahead1W(79); // S^WS | '(:' | 'to'
- shift(248); // 'to'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shift(8); // IntegerLiteral
- }
- eventHandler.endNonterminal("FTLiteralRange", e0);
- }
-
- function try_FTLiteralRange()
- {
- switch (l1)
- {
- case 130: // 'exactly'
- shiftT(130); // 'exactly'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shiftT(8); // IntegerLiteral
- break;
- case 81: // 'at'
- shiftT(81); // 'at'
- lookahead1W(125); // S^WS | '(:' | 'least' | 'most'
- switch (l1)
- {
- case 173: // 'least'
- shiftT(173); // 'least'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shiftT(8); // IntegerLiteral
- break;
- default:
- shiftT(183); // 'most'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shiftT(8); // IntegerLiteral
- }
- break;
- default:
- shiftT(140); // 'from'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shiftT(8); // IntegerLiteral
- lookahead1W(79); // S^WS | '(:' | 'to'
- shiftT(248); // 'to'
- lookahead1W(16); // IntegerLiteral | S^WS | '(:'
- shiftT(8); // IntegerLiteral
- }
- }
-
- function parse_FTStopWordOption()
- {
- eventHandler.startNonterminal("FTStopWordOption", e0);
- switch (l1)
- {
- case 239: // 'stop'
- shift(239); // 'stop'
- lookahead1W(86); // S^WS | '(:' | 'words'
- shift(273); // 'words'
- lookahead1W(142); // S^WS | '(' | '(:' | 'at' | 'default'
- switch (l1)
- {
- case 109: // 'default'
- shift(109); // 'default'
- for (;;)
- {
- lookahead1W(217); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 != 131 // 'except'
- && l1 != 254) // 'union'
- {
- break;
- }
- whitespace();
- parse_FTStopWordsInclExcl();
- }
- break;
- default:
- whitespace();
- parse_FTStopWords();
- for (;;)
- {
- lookahead1W(217); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 != 131 // 'except'
- && l1 != 254) // 'union'
- {
- break;
- }
- whitespace();
- parse_FTStopWordsInclExcl();
- }
- }
- break;
- default:
- shift(188); // 'no'
- lookahead1W(75); // S^WS | '(:' | 'stop'
- shift(239); // 'stop'
- lookahead1W(86); // S^WS | '(:' | 'words'
- shift(273); // 'words'
- }
- eventHandler.endNonterminal("FTStopWordOption", e0);
- }
-
- function try_FTStopWordOption()
- {
- switch (l1)
- {
- case 239: // 'stop'
- shiftT(239); // 'stop'
- lookahead1W(86); // S^WS | '(:' | 'words'
- shiftT(273); // 'words'
- lookahead1W(142); // S^WS | '(' | '(:' | 'at' | 'default'
- switch (l1)
- {
- case 109: // 'default'
- shiftT(109); // 'default'
- for (;;)
- {
- lookahead1W(217); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 != 131 // 'except'
- && l1 != 254) // 'union'
- {
- break;
- }
- try_FTStopWordsInclExcl();
- }
- break;
- default:
- try_FTStopWords();
- for (;;)
- {
- lookahead1W(217); // S^WS | EOF | '!=' | '(:' | ')' | ',' | ':' | ';' | '<' | '<<' | '<=' | '=' |
- if (l1 != 131 // 'except'
- && l1 != 254) // 'union'
- {
- break;
- }
- try_FTStopWordsInclExcl();
- }
- }
- break;
- default:
- shiftT(188); // 'no'
- lookahead1W(75); // S^WS | '(:' | 'stop'
- shiftT(239); // 'stop'
- lookahead1W(86); // S^WS | '(:' | 'words'
- shiftT(273); // 'words'
- }
- }
-
- function parse_FTStopWords()
- {
- eventHandler.startNonterminal("FTStopWords", e0);
- switch (l1)
- {
- case 81: // 'at'
- shift(81); // 'at'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- break;
- default:
- shift(34); // '('
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- }
- shift(37); // ')'
- }
- eventHandler.endNonterminal("FTStopWords", e0);
- }
-
- function try_FTStopWords()
- {
- switch (l1)
- {
- case 81: // 'at'
- shiftT(81); // 'at'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shiftT(7); // URILiteral
- break;
- default:
- shiftT(34); // '('
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shiftT(11); // StringLiteral
- for (;;)
- {
- lookahead1W(101); // S^WS | '(:' | ')' | ','
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shiftT(11); // StringLiteral
- }
- shiftT(37); // ')'
- }
- }
-
- function parse_FTStopWordsInclExcl()
- {
- eventHandler.startNonterminal("FTStopWordsInclExcl", e0);
- switch (l1)
- {
- case 254: // 'union'
- shift(254); // 'union'
- break;
- default:
- shift(131); // 'except'
- }
- lookahead1W(99); // S^WS | '(' | '(:' | 'at'
- whitespace();
- parse_FTStopWords();
- eventHandler.endNonterminal("FTStopWordsInclExcl", e0);
- }
-
- function try_FTStopWordsInclExcl()
- {
- switch (l1)
- {
- case 254: // 'union'
- shiftT(254); // 'union'
- break;
- default:
- shiftT(131); // 'except'
- }
- lookahead1W(99); // S^WS | '(' | '(:' | 'at'
- try_FTStopWords();
- }
-
- function parse_FTLanguageOption()
- {
- eventHandler.startNonterminal("FTLanguageOption", e0);
- shift(169); // 'language'
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- eventHandler.endNonterminal("FTLanguageOption", e0);
- }
-
- function try_FTLanguageOption()
- {
- shiftT(169); // 'language'
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shiftT(11); // StringLiteral
- }
-
- function parse_FTWildCardOption()
- {
- eventHandler.startNonterminal("FTWildCardOption", e0);
- switch (l1)
- {
- case 268: // 'wildcards'
- shift(268); // 'wildcards'
- break;
- default:
- shift(188); // 'no'
- lookahead1W(84); // S^WS | '(:' | 'wildcards'
- shift(268); // 'wildcards'
- }
- eventHandler.endNonterminal("FTWildCardOption", e0);
- }
-
- function try_FTWildCardOption()
- {
- switch (l1)
- {
- case 268: // 'wildcards'
- shiftT(268); // 'wildcards'
- break;
- default:
- shiftT(188); // 'no'
- lookahead1W(84); // S^WS | '(:' | 'wildcards'
- shiftT(268); // 'wildcards'
- }
- }
-
- function parse_FTExtensionOption()
- {
- eventHandler.startNonterminal("FTExtensionOption", e0);
- shift(199); // 'option'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shift(11); // StringLiteral
- eventHandler.endNonterminal("FTExtensionOption", e0);
- }
-
- function try_FTExtensionOption()
- {
- shiftT(199); // 'option'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_EQName();
- lookahead1W(17); // StringLiteral | S^WS | '(:'
- shiftT(11); // StringLiteral
- }
-
- function parse_FTIgnoreOption()
- {
- eventHandler.startNonterminal("FTIgnoreOption", e0);
- shift(271); // 'without'
- lookahead1W(42); // S^WS | '(:' | 'content'
- shift(100); // 'content'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_UnionExpr();
- eventHandler.endNonterminal("FTIgnoreOption", e0);
- }
-
- function try_FTIgnoreOption()
- {
- shiftT(271); // 'without'
- lookahead1W(42); // S^WS | '(:' | 'content'
- shiftT(100); // 'content'
- lookahead1W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_UnionExpr();
- }
-
- function parse_CollectionDecl()
- {
- eventHandler.startNonterminal("CollectionDecl", e0);
- shift(95); // 'collection'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(107); // S^WS | '(:' | ';' | 'as'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_CollectionTypeDecl();
- }
- eventHandler.endNonterminal("CollectionDecl", e0);
- }
-
- function parse_CollectionTypeDecl()
- {
- eventHandler.startNonterminal("CollectionTypeDecl", e0);
- shift(79); // 'as'
- lookahead1W(183); // S^WS | '(:' | 'array' | 'attribute' | 'comment' | 'document-node' | 'element' |
- whitespace();
- parse_KindTest();
- lookahead1W(156); // S^WS | '(:' | '*' | '+' | ';' | '?'
- if (l1 != 53) // ';'
- {
- whitespace();
- parse_OccurrenceIndicator();
- }
- eventHandler.endNonterminal("CollectionTypeDecl", e0);
- }
-
- function parse_IndexName()
- {
- eventHandler.startNonterminal("IndexName", e0);
- parse_EQName();
- eventHandler.endNonterminal("IndexName", e0);
- }
-
- function parse_IndexDomainExpr()
- {
- eventHandler.startNonterminal("IndexDomainExpr", e0);
- parse_PathExpr();
- eventHandler.endNonterminal("IndexDomainExpr", e0);
- }
-
- function parse_IndexKeySpec()
- {
- eventHandler.startNonterminal("IndexKeySpec", e0);
- parse_IndexKeyExpr();
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_IndexKeyTypeDecl();
- }
- lookahead1W(146); // S^WS | '(:' | ',' | ';' | 'collation'
- if (l1 == 94) // 'collation'
- {
- whitespace();
- parse_IndexKeyCollation();
- }
- eventHandler.endNonterminal("IndexKeySpec", e0);
- }
-
- function parse_IndexKeyExpr()
- {
- eventHandler.startNonterminal("IndexKeyExpr", e0);
- parse_PathExpr();
- eventHandler.endNonterminal("IndexKeyExpr", e0);
- }
-
- function parse_IndexKeyTypeDecl()
- {
- eventHandler.startNonterminal("IndexKeyTypeDecl", e0);
- shift(79); // 'as'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_AtomicType();
- lookahead1W(169); // S^WS | '(:' | '*' | '+' | ',' | ';' | '?' | 'collation'
- if (l1 == 39 // '*'
- || l1 == 40 // '+'
- || l1 == 64) // '?'
- {
- whitespace();
- parse_OccurrenceIndicator();
- }
- eventHandler.endNonterminal("IndexKeyTypeDecl", e0);
- }
-
- function parse_AtomicType()
- {
- eventHandler.startNonterminal("AtomicType", e0);
- parse_EQName();
- eventHandler.endNonterminal("AtomicType", e0);
- }
-
- function parse_IndexKeyCollation()
- {
- eventHandler.startNonterminal("IndexKeyCollation", e0);
- shift(94); // 'collation'
- lookahead1W(15); // URILiteral | S^WS | '(:'
- shift(7); // URILiteral
- eventHandler.endNonterminal("IndexKeyCollation", e0);
- }
-
- function parse_IndexDecl()
- {
- eventHandler.startNonterminal("IndexDecl", e0);
- shift(155); // 'index'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_IndexName();
- lookahead1W(65); // S^WS | '(:' | 'on'
- shift(197); // 'on'
- lookahead1W(63); // S^WS | '(:' | 'nodes'
- shift(192); // 'nodes'
- lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_IndexDomainExpr();
- shift(87); // 'by'
- lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_IndexKeySpec();
- for (;;)
- {
- lookahead1W(103); // S^WS | '(:' | ',' | ';'
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_IndexKeySpec();
- }
- eventHandler.endNonterminal("IndexDecl", e0);
- }
-
- function parse_ICDecl()
- {
- eventHandler.startNonterminal("ICDecl", e0);
- shift(161); // 'integrity'
- lookahead1W(40); // S^WS | '(:' | 'constraint'
- shift(97); // 'constraint'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(120); // S^WS | '(:' | 'foreign' | 'on'
- switch (l1)
- {
- case 197: // 'on'
- whitespace();
- parse_ICCollection();
- break;
- default:
- whitespace();
- parse_ICForeignKey();
- }
- eventHandler.endNonterminal("ICDecl", e0);
- }
-
- function parse_ICCollection()
- {
- eventHandler.startNonterminal("ICCollection", e0);
- shift(197); // 'on'
- lookahead1W(39); // S^WS | '(:' | 'collection'
- shift(95); // 'collection'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(140); // S^WS | '$' | '(:' | 'foreach' | 'node'
- switch (l1)
- {
- case 31: // '$'
- whitespace();
- parse_ICCollSequence();
- break;
- case 191: // 'node'
- whitespace();
- parse_ICCollSequenceUnique();
- break;
- default:
- whitespace();
- parse_ICCollNode();
- }
- eventHandler.endNonterminal("ICCollection", e0);
- }
-
- function parse_ICCollSequence()
- {
- eventHandler.startNonterminal("ICCollSequence", e0);
- parse_VarRef();
- lookahead1W(37); // S^WS | '(:' | 'check'
- shift(92); // 'check'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("ICCollSequence", e0);
- }
-
- function parse_ICCollSequenceUnique()
- {
- eventHandler.startNonterminal("ICCollSequenceUnique", e0);
- shift(191); // 'node'
- lookahead1W(21); // S^WS | '$' | '(:'
- whitespace();
- parse_VarRef();
- lookahead1W(37); // S^WS | '(:' | 'check'
- shift(92); // 'check'
- lookahead1W(80); // S^WS | '(:' | 'unique'
- shift(255); // 'unique'
- lookahead1W(57); // S^WS | '(:' | 'key'
- shift(168); // 'key'
- lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_PathExpr();
- eventHandler.endNonterminal("ICCollSequenceUnique", e0);
- }
-
- function parse_ICCollNode()
- {
- eventHandler.startNonterminal("ICCollNode", e0);
- shift(138); // 'foreach'
- lookahead1W(62); // S^WS | '(:' | 'node'
- shift(191); // 'node'
- lookahead1W(21); // S^WS | '$' | '(:'
- whitespace();
- parse_VarRef();
- lookahead1W(37); // S^WS | '(:' | 'check'
- shift(92); // 'check'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("ICCollNode", e0);
- }
-
- function parse_ICForeignKey()
- {
- eventHandler.startNonterminal("ICForeignKey", e0);
- shift(139); // 'foreign'
- lookahead1W(57); // S^WS | '(:' | 'key'
- shift(168); // 'key'
- lookahead1W(51); // S^WS | '(:' | 'from'
- whitespace();
- parse_ICForeignKeySource();
- whitespace();
- parse_ICForeignKeyTarget();
- eventHandler.endNonterminal("ICForeignKey", e0);
- }
-
- function parse_ICForeignKeySource()
- {
- eventHandler.startNonterminal("ICForeignKeySource", e0);
- shift(140); // 'from'
- lookahead1W(39); // S^WS | '(:' | 'collection'
- whitespace();
- parse_ICForeignKeyValues();
- eventHandler.endNonterminal("ICForeignKeySource", e0);
- }
-
- function parse_ICForeignKeyTarget()
- {
- eventHandler.startNonterminal("ICForeignKeyTarget", e0);
- shift(248); // 'to'
- lookahead1W(39); // S^WS | '(:' | 'collection'
- whitespace();
- parse_ICForeignKeyValues();
- eventHandler.endNonterminal("ICForeignKeyTarget", e0);
- }
-
- function parse_ICForeignKeyValues()
- {
- eventHandler.startNonterminal("ICForeignKeyValues", e0);
- shift(95); // 'collection'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(62); // S^WS | '(:' | 'node'
- shift(191); // 'node'
- lookahead1W(21); // S^WS | '$' | '(:'
- whitespace();
- parse_VarRef();
- lookahead1W(57); // S^WS | '(:' | 'key'
- shift(168); // 'key'
- lookahead1W(264); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_PathExpr();
- eventHandler.endNonterminal("ICForeignKeyValues", e0);
- }
-
- function try_Comment()
- {
- shiftT(36); // '(:'
- for (;;)
- {
- lookahead1(89); // CommentContents | '(:' | ':)'
- if (l1 == 50) // ':)'
- {
- break;
- }
- switch (l1)
- {
- case 24: // CommentContents
- shiftT(24); // CommentContents
- break;
- default:
- try_Comment();
- }
- }
- shiftT(50); // ':)'
- }
-
- function try_Whitespace()
- {
- switch (l1)
- {
- case 22: // S^WS
- shiftT(22); // S^WS
- break;
- default:
- try_Comment();
- }
- }
-
- function parse_EQName()
- {
- eventHandler.startNonterminal("EQName", e0);
- lookahead1(248); // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' |
- switch (l1)
- {
- case 82: // 'attribute'
- shift(82); // 'attribute'
- break;
- case 96: // 'comment'
- shift(96); // 'comment'
- break;
- case 120: // 'document-node'
- shift(120); // 'document-node'
- break;
- case 121: // 'element'
- shift(121); // 'element'
- break;
- case 124: // 'empty-sequence'
- shift(124); // 'empty-sequence'
- break;
- case 145: // 'function'
- shift(145); // 'function'
- break;
- case 152: // 'if'
- shift(152); // 'if'
- break;
- case 165: // 'item'
- shift(165); // 'item'
- break;
- case 185: // 'namespace-node'
- shift(185); // 'namespace-node'
- break;
- case 191: // 'node'
- shift(191); // 'node'
- break;
- case 216: // 'processing-instruction'
- shift(216); // 'processing-instruction'
- break;
- case 226: // 'schema-attribute'
- shift(226); // 'schema-attribute'
- break;
- case 227: // 'schema-element'
- shift(227); // 'schema-element'
- break;
- case 243: // 'switch'
- shift(243); // 'switch'
- break;
- case 244: // 'text'
- shift(244); // 'text'
- break;
- case 253: // 'typeswitch'
- shift(253); // 'typeswitch'
- break;
- default:
- parse_FunctionName();
- }
- eventHandler.endNonterminal("EQName", e0);
- }
-
- function try_EQName()
- {
- lookahead1(248); // EQName^Token | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | 'and' |
- switch (l1)
- {
- case 82: // 'attribute'
- shiftT(82); // 'attribute'
- break;
- case 96: // 'comment'
- shiftT(96); // 'comment'
- break;
- case 120: // 'document-node'
- shiftT(120); // 'document-node'
- break;
- case 121: // 'element'
- shiftT(121); // 'element'
- break;
- case 124: // 'empty-sequence'
- shiftT(124); // 'empty-sequence'
- break;
- case 145: // 'function'
- shiftT(145); // 'function'
- break;
- case 152: // 'if'
- shiftT(152); // 'if'
- break;
- case 165: // 'item'
- shiftT(165); // 'item'
- break;
- case 185: // 'namespace-node'
- shiftT(185); // 'namespace-node'
- break;
- case 191: // 'node'
- shiftT(191); // 'node'
- break;
- case 216: // 'processing-instruction'
- shiftT(216); // 'processing-instruction'
- break;
- case 226: // 'schema-attribute'
- shiftT(226); // 'schema-attribute'
- break;
- case 227: // 'schema-element'
- shiftT(227); // 'schema-element'
- break;
- case 243: // 'switch'
- shiftT(243); // 'switch'
- break;
- case 244: // 'text'
- shiftT(244); // 'text'
- break;
- case 253: // 'typeswitch'
- shiftT(253); // 'typeswitch'
- break;
- default:
- try_FunctionName();
- }
- }
-
- function parse_FunctionName()
- {
- eventHandler.startNonterminal("FunctionName", e0);
- switch (l1)
- {
- case 6: // EQName^Token
- shift(6); // EQName^Token
- break;
- case 70: // 'after'
- shift(70); // 'after'
- break;
- case 73: // 'ancestor'
- shift(73); // 'ancestor'
- break;
- case 74: // 'ancestor-or-self'
- shift(74); // 'ancestor-or-self'
- break;
- case 75: // 'and'
- shift(75); // 'and'
- break;
- case 79: // 'as'
- shift(79); // 'as'
- break;
- case 80: // 'ascending'
- shift(80); // 'ascending'
- break;
- case 84: // 'before'
- shift(84); // 'before'
- break;
- case 88: // 'case'
- shift(88); // 'case'
- break;
- case 89: // 'cast'
- shift(89); // 'cast'
- break;
- case 90: // 'castable'
- shift(90); // 'castable'
- break;
- case 93: // 'child'
- shift(93); // 'child'
- break;
- case 94: // 'collation'
- shift(94); // 'collation'
- break;
- case 103: // 'copy'
- shift(103); // 'copy'
- break;
- case 105: // 'count'
- shift(105); // 'count'
- break;
- case 108: // 'declare'
- shift(108); // 'declare'
- break;
- case 109: // 'default'
- shift(109); // 'default'
- break;
- case 110: // 'delete'
- shift(110); // 'delete'
- break;
- case 111: // 'descendant'
- shift(111); // 'descendant'
- break;
- case 112: // 'descendant-or-self'
- shift(112); // 'descendant-or-self'
- break;
- case 113: // 'descending'
- shift(113); // 'descending'
- break;
- case 118: // 'div'
- shift(118); // 'div'
- break;
- case 119: // 'document'
- shift(119); // 'document'
- break;
- case 122: // 'else'
- shift(122); // 'else'
- break;
- case 123: // 'empty'
- shift(123); // 'empty'
- break;
- case 126: // 'end'
- shift(126); // 'end'
- break;
- case 128: // 'eq'
- shift(128); // 'eq'
- break;
- case 129: // 'every'
- shift(129); // 'every'
- break;
- case 131: // 'except'
- shift(131); // 'except'
- break;
- case 134: // 'first'
- shift(134); // 'first'
- break;
- case 135: // 'following'
- shift(135); // 'following'
- break;
- case 136: // 'following-sibling'
- shift(136); // 'following-sibling'
- break;
- case 137: // 'for'
- shift(137); // 'for'
- break;
- case 146: // 'ge'
- shift(146); // 'ge'
- break;
- case 148: // 'group'
- shift(148); // 'group'
- break;
- case 150: // 'gt'
- shift(150); // 'gt'
- break;
- case 151: // 'idiv'
- shift(151); // 'idiv'
- break;
- case 153: // 'import'
- shift(153); // 'import'
- break;
- case 159: // 'insert'
- shift(159); // 'insert'
- break;
- case 160: // 'instance'
- shift(160); // 'instance'
- break;
- case 162: // 'intersect'
- shift(162); // 'intersect'
- break;
- case 163: // 'into'
- shift(163); // 'into'
- break;
- case 164: // 'is'
- shift(164); // 'is'
- break;
- case 170: // 'last'
- shift(170); // 'last'
- break;
- case 172: // 'le'
- shift(172); // 'le'
- break;
- case 174: // 'let'
- shift(174); // 'let'
- break;
- case 178: // 'lt'
- shift(178); // 'lt'
- break;
- case 180: // 'mod'
- shift(180); // 'mod'
- break;
- case 181: // 'modify'
- shift(181); // 'modify'
- break;
- case 182: // 'module'
- shift(182); // 'module'
- break;
- case 184: // 'namespace'
- shift(184); // 'namespace'
- break;
- case 186: // 'ne'
- shift(186); // 'ne'
- break;
- case 198: // 'only'
- shift(198); // 'only'
- break;
- case 200: // 'or'
- shift(200); // 'or'
- break;
- case 201: // 'order'
- shift(201); // 'order'
- break;
- case 202: // 'ordered'
- shift(202); // 'ordered'
- break;
- case 206: // 'parent'
- shift(206); // 'parent'
- break;
- case 212: // 'preceding'
- shift(212); // 'preceding'
- break;
- case 213: // 'preceding-sibling'
- shift(213); // 'preceding-sibling'
- break;
- case 218: // 'rename'
- shift(218); // 'rename'
- break;
- case 219: // 'replace'
- shift(219); // 'replace'
- break;
- case 220: // 'return'
- shift(220); // 'return'
- break;
- case 224: // 'satisfies'
- shift(224); // 'satisfies'
- break;
- case 229: // 'self'
- shift(229); // 'self'
- break;
- case 235: // 'some'
- shift(235); // 'some'
- break;
- case 236: // 'stable'
- shift(236); // 'stable'
- break;
- case 237: // 'start'
- shift(237); // 'start'
- break;
- case 248: // 'to'
- shift(248); // 'to'
- break;
- case 249: // 'treat'
- shift(249); // 'treat'
- break;
- case 250: // 'try'
- shift(250); // 'try'
- break;
- case 254: // 'union'
- shift(254); // 'union'
- break;
- case 256: // 'unordered'
- shift(256); // 'unordered'
- break;
- case 260: // 'validate'
- shift(260); // 'validate'
- break;
- case 266: // 'where'
- shift(266); // 'where'
- break;
- case 270: // 'with'
- shift(270); // 'with'
- break;
- case 274: // 'xquery'
- shift(274); // 'xquery'
- break;
- case 72: // 'allowing'
- shift(72); // 'allowing'
- break;
- case 81: // 'at'
- shift(81); // 'at'
- break;
- case 83: // 'base-uri'
- shift(83); // 'base-uri'
- break;
- case 85: // 'boundary-space'
- shift(85); // 'boundary-space'
- break;
- case 86: // 'break'
- shift(86); // 'break'
- break;
- case 91: // 'catch'
- shift(91); // 'catch'
- break;
- case 98: // 'construction'
- shift(98); // 'construction'
- break;
- case 101: // 'context'
- shift(101); // 'context'
- break;
- case 102: // 'continue'
- shift(102); // 'continue'
- break;
- case 104: // 'copy-namespaces'
- shift(104); // 'copy-namespaces'
- break;
- case 106: // 'decimal-format'
- shift(106); // 'decimal-format'
- break;
- case 125: // 'encoding'
- shift(125); // 'encoding'
- break;
- case 132: // 'exit'
- shift(132); // 'exit'
- break;
- case 133: // 'external'
- shift(133); // 'external'
- break;
- case 141: // 'ft-option'
- shift(141); // 'ft-option'
- break;
- case 154: // 'in'
- shift(154); // 'in'
- break;
- case 155: // 'index'
- shift(155); // 'index'
- break;
- case 161: // 'integrity'
- shift(161); // 'integrity'
- break;
- case 171: // 'lax'
- shift(171); // 'lax'
- break;
- case 192: // 'nodes'
- shift(192); // 'nodes'
- break;
- case 199: // 'option'
- shift(199); // 'option'
- break;
- case 203: // 'ordering'
- shift(203); // 'ordering'
- break;
- case 222: // 'revalidation'
- shift(222); // 'revalidation'
- break;
- case 225: // 'schema'
- shift(225); // 'schema'
- break;
- case 228: // 'score'
- shift(228); // 'score'
- break;
- case 234: // 'sliding'
- shift(234); // 'sliding'
- break;
- case 240: // 'strict'
- shift(240); // 'strict'
- break;
- case 251: // 'tumbling'
- shift(251); // 'tumbling'
- break;
- case 252: // 'type'
- shift(252); // 'type'
- break;
- case 257: // 'updating'
- shift(257); // 'updating'
- break;
- case 261: // 'value'
- shift(261); // 'value'
- break;
- case 262: // 'variable'
- shift(262); // 'variable'
- break;
- case 263: // 'version'
- shift(263); // 'version'
- break;
- case 267: // 'while'
- shift(267); // 'while'
- break;
- case 97: // 'constraint'
- shift(97); // 'constraint'
- break;
- case 176: // 'loop'
- shift(176); // 'loop'
- break;
- case 221: // 'returning'
- shift(221); // 'returning'
- break;
- case 194: // 'object'
- shift(194); // 'object'
- break;
- case 167: // 'json-item'
- shift(167); // 'json-item'
- break;
- default:
- shift(78); // 'array'
- }
- eventHandler.endNonterminal("FunctionName", e0);
- }
-
- function try_FunctionName()
- {
- switch (l1)
- {
- case 6: // EQName^Token
- shiftT(6); // EQName^Token
- break;
- case 70: // 'after'
- shiftT(70); // 'after'
- break;
- case 73: // 'ancestor'
- shiftT(73); // 'ancestor'
- break;
- case 74: // 'ancestor-or-self'
- shiftT(74); // 'ancestor-or-self'
- break;
- case 75: // 'and'
- shiftT(75); // 'and'
- break;
- case 79: // 'as'
- shiftT(79); // 'as'
- break;
- case 80: // 'ascending'
- shiftT(80); // 'ascending'
- break;
- case 84: // 'before'
- shiftT(84); // 'before'
- break;
- case 88: // 'case'
- shiftT(88); // 'case'
- break;
- case 89: // 'cast'
- shiftT(89); // 'cast'
- break;
- case 90: // 'castable'
- shiftT(90); // 'castable'
- break;
- case 93: // 'child'
- shiftT(93); // 'child'
- break;
- case 94: // 'collation'
- shiftT(94); // 'collation'
- break;
- case 103: // 'copy'
- shiftT(103); // 'copy'
- break;
- case 105: // 'count'
- shiftT(105); // 'count'
- break;
- case 108: // 'declare'
- shiftT(108); // 'declare'
- break;
- case 109: // 'default'
- shiftT(109); // 'default'
- break;
- case 110: // 'delete'
- shiftT(110); // 'delete'
- break;
- case 111: // 'descendant'
- shiftT(111); // 'descendant'
- break;
- case 112: // 'descendant-or-self'
- shiftT(112); // 'descendant-or-self'
- break;
- case 113: // 'descending'
- shiftT(113); // 'descending'
- break;
- case 118: // 'div'
- shiftT(118); // 'div'
- break;
- case 119: // 'document'
- shiftT(119); // 'document'
- break;
- case 122: // 'else'
- shiftT(122); // 'else'
- break;
- case 123: // 'empty'
- shiftT(123); // 'empty'
- break;
- case 126: // 'end'
- shiftT(126); // 'end'
- break;
- case 128: // 'eq'
- shiftT(128); // 'eq'
- break;
- case 129: // 'every'
- shiftT(129); // 'every'
- break;
- case 131: // 'except'
- shiftT(131); // 'except'
- break;
- case 134: // 'first'
- shiftT(134); // 'first'
- break;
- case 135: // 'following'
- shiftT(135); // 'following'
- break;
- case 136: // 'following-sibling'
- shiftT(136); // 'following-sibling'
- break;
- case 137: // 'for'
- shiftT(137); // 'for'
- break;
- case 146: // 'ge'
- shiftT(146); // 'ge'
- break;
- case 148: // 'group'
- shiftT(148); // 'group'
- break;
- case 150: // 'gt'
- shiftT(150); // 'gt'
- break;
- case 151: // 'idiv'
- shiftT(151); // 'idiv'
- break;
- case 153: // 'import'
- shiftT(153); // 'import'
- break;
- case 159: // 'insert'
- shiftT(159); // 'insert'
- break;
- case 160: // 'instance'
- shiftT(160); // 'instance'
- break;
- case 162: // 'intersect'
- shiftT(162); // 'intersect'
- break;
- case 163: // 'into'
- shiftT(163); // 'into'
- break;
- case 164: // 'is'
- shiftT(164); // 'is'
- break;
- case 170: // 'last'
- shiftT(170); // 'last'
- break;
- case 172: // 'le'
- shiftT(172); // 'le'
- break;
- case 174: // 'let'
- shiftT(174); // 'let'
- break;
- case 178: // 'lt'
- shiftT(178); // 'lt'
- break;
- case 180: // 'mod'
- shiftT(180); // 'mod'
- break;
- case 181: // 'modify'
- shiftT(181); // 'modify'
- break;
- case 182: // 'module'
- shiftT(182); // 'module'
- break;
- case 184: // 'namespace'
- shiftT(184); // 'namespace'
- break;
- case 186: // 'ne'
- shiftT(186); // 'ne'
- break;
- case 198: // 'only'
- shiftT(198); // 'only'
- break;
- case 200: // 'or'
- shiftT(200); // 'or'
- break;
- case 201: // 'order'
- shiftT(201); // 'order'
- break;
- case 202: // 'ordered'
- shiftT(202); // 'ordered'
- break;
- case 206: // 'parent'
- shiftT(206); // 'parent'
- break;
- case 212: // 'preceding'
- shiftT(212); // 'preceding'
- break;
- case 213: // 'preceding-sibling'
- shiftT(213); // 'preceding-sibling'
- break;
- case 218: // 'rename'
- shiftT(218); // 'rename'
- break;
- case 219: // 'replace'
- shiftT(219); // 'replace'
- break;
- case 220: // 'return'
- shiftT(220); // 'return'
- break;
- case 224: // 'satisfies'
- shiftT(224); // 'satisfies'
- break;
- case 229: // 'self'
- shiftT(229); // 'self'
- break;
- case 235: // 'some'
- shiftT(235); // 'some'
- break;
- case 236: // 'stable'
- shiftT(236); // 'stable'
- break;
- case 237: // 'start'
- shiftT(237); // 'start'
- break;
- case 248: // 'to'
- shiftT(248); // 'to'
- break;
- case 249: // 'treat'
- shiftT(249); // 'treat'
- break;
- case 250: // 'try'
- shiftT(250); // 'try'
- break;
- case 254: // 'union'
- shiftT(254); // 'union'
- break;
- case 256: // 'unordered'
- shiftT(256); // 'unordered'
- break;
- case 260: // 'validate'
- shiftT(260); // 'validate'
- break;
- case 266: // 'where'
- shiftT(266); // 'where'
- break;
- case 270: // 'with'
- shiftT(270); // 'with'
- break;
- case 274: // 'xquery'
- shiftT(274); // 'xquery'
- break;
- case 72: // 'allowing'
- shiftT(72); // 'allowing'
- break;
- case 81: // 'at'
- shiftT(81); // 'at'
- break;
- case 83: // 'base-uri'
- shiftT(83); // 'base-uri'
- break;
- case 85: // 'boundary-space'
- shiftT(85); // 'boundary-space'
- break;
- case 86: // 'break'
- shiftT(86); // 'break'
- break;
- case 91: // 'catch'
- shiftT(91); // 'catch'
- break;
- case 98: // 'construction'
- shiftT(98); // 'construction'
- break;
- case 101: // 'context'
- shiftT(101); // 'context'
- break;
- case 102: // 'continue'
- shiftT(102); // 'continue'
- break;
- case 104: // 'copy-namespaces'
- shiftT(104); // 'copy-namespaces'
- break;
- case 106: // 'decimal-format'
- shiftT(106); // 'decimal-format'
- break;
- case 125: // 'encoding'
- shiftT(125); // 'encoding'
- break;
- case 132: // 'exit'
- shiftT(132); // 'exit'
- break;
- case 133: // 'external'
- shiftT(133); // 'external'
- break;
- case 141: // 'ft-option'
- shiftT(141); // 'ft-option'
- break;
- case 154: // 'in'
- shiftT(154); // 'in'
- break;
- case 155: // 'index'
- shiftT(155); // 'index'
- break;
- case 161: // 'integrity'
- shiftT(161); // 'integrity'
- break;
- case 171: // 'lax'
- shiftT(171); // 'lax'
- break;
- case 192: // 'nodes'
- shiftT(192); // 'nodes'
- break;
- case 199: // 'option'
- shiftT(199); // 'option'
- break;
- case 203: // 'ordering'
- shiftT(203); // 'ordering'
- break;
- case 222: // 'revalidation'
- shiftT(222); // 'revalidation'
- break;
- case 225: // 'schema'
- shiftT(225); // 'schema'
- break;
- case 228: // 'score'
- shiftT(228); // 'score'
- break;
- case 234: // 'sliding'
- shiftT(234); // 'sliding'
- break;
- case 240: // 'strict'
- shiftT(240); // 'strict'
- break;
- case 251: // 'tumbling'
- shiftT(251); // 'tumbling'
- break;
- case 252: // 'type'
- shiftT(252); // 'type'
- break;
- case 257: // 'updating'
- shiftT(257); // 'updating'
- break;
- case 261: // 'value'
- shiftT(261); // 'value'
- break;
- case 262: // 'variable'
- shiftT(262); // 'variable'
- break;
- case 263: // 'version'
- shiftT(263); // 'version'
- break;
- case 267: // 'while'
- shiftT(267); // 'while'
- break;
- case 97: // 'constraint'
- shiftT(97); // 'constraint'
- break;
- case 176: // 'loop'
- shiftT(176); // 'loop'
- break;
- case 221: // 'returning'
- shiftT(221); // 'returning'
- break;
- case 194: // 'object'
- shiftT(194); // 'object'
- break;
- case 167: // 'json-item'
- shiftT(167); // 'json-item'
- break;
- default:
- shiftT(78); // 'array'
- }
- }
-
- function parse_NCName()
- {
- eventHandler.startNonterminal("NCName", e0);
- switch (l1)
- {
- case 19: // NCName^Token
- shift(19); // NCName^Token
- break;
- case 70: // 'after'
- shift(70); // 'after'
- break;
- case 75: // 'and'
- shift(75); // 'and'
- break;
- case 79: // 'as'
- shift(79); // 'as'
- break;
- case 80: // 'ascending'
- shift(80); // 'ascending'
- break;
- case 84: // 'before'
- shift(84); // 'before'
- break;
- case 88: // 'case'
- shift(88); // 'case'
- break;
- case 89: // 'cast'
- shift(89); // 'cast'
- break;
- case 90: // 'castable'
- shift(90); // 'castable'
- break;
- case 94: // 'collation'
- shift(94); // 'collation'
- break;
- case 105: // 'count'
- shift(105); // 'count'
- break;
- case 109: // 'default'
- shift(109); // 'default'
- break;
- case 113: // 'descending'
- shift(113); // 'descending'
- break;
- case 118: // 'div'
- shift(118); // 'div'
- break;
- case 122: // 'else'
- shift(122); // 'else'
- break;
- case 123: // 'empty'
- shift(123); // 'empty'
- break;
- case 126: // 'end'
- shift(126); // 'end'
- break;
- case 128: // 'eq'
- shift(128); // 'eq'
- break;
- case 131: // 'except'
- shift(131); // 'except'
- break;
- case 137: // 'for'
- shift(137); // 'for'
- break;
- case 146: // 'ge'
- shift(146); // 'ge'
- break;
- case 148: // 'group'
- shift(148); // 'group'
- break;
- case 150: // 'gt'
- shift(150); // 'gt'
- break;
- case 151: // 'idiv'
- shift(151); // 'idiv'
- break;
- case 160: // 'instance'
- shift(160); // 'instance'
- break;
- case 162: // 'intersect'
- shift(162); // 'intersect'
- break;
- case 163: // 'into'
- shift(163); // 'into'
- break;
- case 164: // 'is'
- shift(164); // 'is'
- break;
- case 172: // 'le'
- shift(172); // 'le'
- break;
- case 174: // 'let'
- shift(174); // 'let'
- break;
- case 178: // 'lt'
- shift(178); // 'lt'
- break;
- case 180: // 'mod'
- shift(180); // 'mod'
- break;
- case 181: // 'modify'
- shift(181); // 'modify'
- break;
- case 186: // 'ne'
- shift(186); // 'ne'
- break;
- case 198: // 'only'
- shift(198); // 'only'
- break;
- case 200: // 'or'
- shift(200); // 'or'
- break;
- case 201: // 'order'
- shift(201); // 'order'
- break;
- case 220: // 'return'
- shift(220); // 'return'
- break;
- case 224: // 'satisfies'
- shift(224); // 'satisfies'
- break;
- case 236: // 'stable'
- shift(236); // 'stable'
- break;
- case 237: // 'start'
- shift(237); // 'start'
- break;
- case 248: // 'to'
- shift(248); // 'to'
- break;
- case 249: // 'treat'
- shift(249); // 'treat'
- break;
- case 254: // 'union'
- shift(254); // 'union'
- break;
- case 266: // 'where'
- shift(266); // 'where'
- break;
- case 270: // 'with'
- shift(270); // 'with'
- break;
- case 73: // 'ancestor'
- shift(73); // 'ancestor'
- break;
- case 74: // 'ancestor-or-self'
- shift(74); // 'ancestor-or-self'
- break;
- case 82: // 'attribute'
- shift(82); // 'attribute'
- break;
- case 93: // 'child'
- shift(93); // 'child'
- break;
- case 96: // 'comment'
- shift(96); // 'comment'
- break;
- case 103: // 'copy'
- shift(103); // 'copy'
- break;
- case 108: // 'declare'
- shift(108); // 'declare'
- break;
- case 110: // 'delete'
- shift(110); // 'delete'
- break;
- case 111: // 'descendant'
- shift(111); // 'descendant'
- break;
- case 112: // 'descendant-or-self'
- shift(112); // 'descendant-or-self'
- break;
- case 119: // 'document'
- shift(119); // 'document'
- break;
- case 120: // 'document-node'
- shift(120); // 'document-node'
- break;
- case 121: // 'element'
- shift(121); // 'element'
- break;
- case 124: // 'empty-sequence'
- shift(124); // 'empty-sequence'
- break;
- case 129: // 'every'
- shift(129); // 'every'
- break;
- case 134: // 'first'
- shift(134); // 'first'
- break;
- case 135: // 'following'
- shift(135); // 'following'
- break;
- case 136: // 'following-sibling'
- shift(136); // 'following-sibling'
- break;
- case 145: // 'function'
- shift(145); // 'function'
- break;
- case 152: // 'if'
- shift(152); // 'if'
- break;
- case 153: // 'import'
- shift(153); // 'import'
- break;
- case 159: // 'insert'
- shift(159); // 'insert'
- break;
- case 165: // 'item'
- shift(165); // 'item'
- break;
- case 170: // 'last'
- shift(170); // 'last'
- break;
- case 182: // 'module'
- shift(182); // 'module'
- break;
- case 184: // 'namespace'
- shift(184); // 'namespace'
- break;
- case 185: // 'namespace-node'
- shift(185); // 'namespace-node'
- break;
- case 191: // 'node'
- shift(191); // 'node'
- break;
- case 202: // 'ordered'
- shift(202); // 'ordered'
- break;
- case 206: // 'parent'
- shift(206); // 'parent'
- break;
- case 212: // 'preceding'
- shift(212); // 'preceding'
- break;
- case 213: // 'preceding-sibling'
- shift(213); // 'preceding-sibling'
- break;
- case 216: // 'processing-instruction'
- shift(216); // 'processing-instruction'
- break;
- case 218: // 'rename'
- shift(218); // 'rename'
- break;
- case 219: // 'replace'
- shift(219); // 'replace'
- break;
- case 226: // 'schema-attribute'
- shift(226); // 'schema-attribute'
- break;
- case 227: // 'schema-element'
- shift(227); // 'schema-element'
- break;
- case 229: // 'self'
- shift(229); // 'self'
- break;
- case 235: // 'some'
- shift(235); // 'some'
- break;
- case 243: // 'switch'
- shift(243); // 'switch'
- break;
- case 244: // 'text'
- shift(244); // 'text'
- break;
- case 250: // 'try'
- shift(250); // 'try'
- break;
- case 253: // 'typeswitch'
- shift(253); // 'typeswitch'
- break;
- case 256: // 'unordered'
- shift(256); // 'unordered'
- break;
- case 260: // 'validate'
- shift(260); // 'validate'
- break;
- case 262: // 'variable'
- shift(262); // 'variable'
- break;
- case 274: // 'xquery'
- shift(274); // 'xquery'
- break;
- case 72: // 'allowing'
- shift(72); // 'allowing'
- break;
- case 81: // 'at'
- shift(81); // 'at'
- break;
- case 83: // 'base-uri'
- shift(83); // 'base-uri'
- break;
- case 85: // 'boundary-space'
- shift(85); // 'boundary-space'
- break;
- case 86: // 'break'
- shift(86); // 'break'
- break;
- case 91: // 'catch'
- shift(91); // 'catch'
- break;
- case 98: // 'construction'
- shift(98); // 'construction'
- break;
- case 101: // 'context'
- shift(101); // 'context'
- break;
- case 102: // 'continue'
- shift(102); // 'continue'
- break;
- case 104: // 'copy-namespaces'
- shift(104); // 'copy-namespaces'
- break;
- case 106: // 'decimal-format'
- shift(106); // 'decimal-format'
- break;
- case 125: // 'encoding'
- shift(125); // 'encoding'
- break;
- case 132: // 'exit'
- shift(132); // 'exit'
- break;
- case 133: // 'external'
- shift(133); // 'external'
- break;
- case 141: // 'ft-option'
- shift(141); // 'ft-option'
- break;
- case 154: // 'in'
- shift(154); // 'in'
- break;
- case 155: // 'index'
- shift(155); // 'index'
- break;
- case 161: // 'integrity'
- shift(161); // 'integrity'
- break;
- case 171: // 'lax'
- shift(171); // 'lax'
- break;
- case 192: // 'nodes'
- shift(192); // 'nodes'
- break;
- case 199: // 'option'
- shift(199); // 'option'
- break;
- case 203: // 'ordering'
- shift(203); // 'ordering'
- break;
- case 222: // 'revalidation'
- shift(222); // 'revalidation'
- break;
- case 225: // 'schema'
- shift(225); // 'schema'
- break;
- case 228: // 'score'
- shift(228); // 'score'
- break;
- case 234: // 'sliding'
- shift(234); // 'sliding'
- break;
- case 240: // 'strict'
- shift(240); // 'strict'
- break;
- case 251: // 'tumbling'
- shift(251); // 'tumbling'
- break;
- case 252: // 'type'
- shift(252); // 'type'
- break;
- case 257: // 'updating'
- shift(257); // 'updating'
- break;
- case 261: // 'value'
- shift(261); // 'value'
- break;
- case 263: // 'version'
- shift(263); // 'version'
- break;
- case 267: // 'while'
- shift(267); // 'while'
- break;
- case 97: // 'constraint'
- shift(97); // 'constraint'
- break;
- case 176: // 'loop'
- shift(176); // 'loop'
- break;
- default:
- shift(221); // 'returning'
- }
- eventHandler.endNonterminal("NCName", e0);
- }
-
- function try_NCName()
- {
- switch (l1)
- {
- case 19: // NCName^Token
- shiftT(19); // NCName^Token
- break;
- case 70: // 'after'
- shiftT(70); // 'after'
- break;
- case 75: // 'and'
- shiftT(75); // 'and'
- break;
- case 79: // 'as'
- shiftT(79); // 'as'
- break;
- case 80: // 'ascending'
- shiftT(80); // 'ascending'
- break;
- case 84: // 'before'
- shiftT(84); // 'before'
- break;
- case 88: // 'case'
- shiftT(88); // 'case'
- break;
- case 89: // 'cast'
- shiftT(89); // 'cast'
- break;
- case 90: // 'castable'
- shiftT(90); // 'castable'
- break;
- case 94: // 'collation'
- shiftT(94); // 'collation'
- break;
- case 105: // 'count'
- shiftT(105); // 'count'
- break;
- case 109: // 'default'
- shiftT(109); // 'default'
- break;
- case 113: // 'descending'
- shiftT(113); // 'descending'
- break;
- case 118: // 'div'
- shiftT(118); // 'div'
- break;
- case 122: // 'else'
- shiftT(122); // 'else'
- break;
- case 123: // 'empty'
- shiftT(123); // 'empty'
- break;
- case 126: // 'end'
- shiftT(126); // 'end'
- break;
- case 128: // 'eq'
- shiftT(128); // 'eq'
- break;
- case 131: // 'except'
- shiftT(131); // 'except'
- break;
- case 137: // 'for'
- shiftT(137); // 'for'
- break;
- case 146: // 'ge'
- shiftT(146); // 'ge'
- break;
- case 148: // 'group'
- shiftT(148); // 'group'
- break;
- case 150: // 'gt'
- shiftT(150); // 'gt'
- break;
- case 151: // 'idiv'
- shiftT(151); // 'idiv'
- break;
- case 160: // 'instance'
- shiftT(160); // 'instance'
- break;
- case 162: // 'intersect'
- shiftT(162); // 'intersect'
- break;
- case 163: // 'into'
- shiftT(163); // 'into'
- break;
- case 164: // 'is'
- shiftT(164); // 'is'
- break;
- case 172: // 'le'
- shiftT(172); // 'le'
- break;
- case 174: // 'let'
- shiftT(174); // 'let'
- break;
- case 178: // 'lt'
- shiftT(178); // 'lt'
- break;
- case 180: // 'mod'
- shiftT(180); // 'mod'
- break;
- case 181: // 'modify'
- shiftT(181); // 'modify'
- break;
- case 186: // 'ne'
- shiftT(186); // 'ne'
- break;
- case 198: // 'only'
- shiftT(198); // 'only'
- break;
- case 200: // 'or'
- shiftT(200); // 'or'
- break;
- case 201: // 'order'
- shiftT(201); // 'order'
- break;
- case 220: // 'return'
- shiftT(220); // 'return'
- break;
- case 224: // 'satisfies'
- shiftT(224); // 'satisfies'
- break;
- case 236: // 'stable'
- shiftT(236); // 'stable'
- break;
- case 237: // 'start'
- shiftT(237); // 'start'
- break;
- case 248: // 'to'
- shiftT(248); // 'to'
- break;
- case 249: // 'treat'
- shiftT(249); // 'treat'
- break;
- case 254: // 'union'
- shiftT(254); // 'union'
- break;
- case 266: // 'where'
- shiftT(266); // 'where'
- break;
- case 270: // 'with'
- shiftT(270); // 'with'
- break;
- case 73: // 'ancestor'
- shiftT(73); // 'ancestor'
- break;
- case 74: // 'ancestor-or-self'
- shiftT(74); // 'ancestor-or-self'
- break;
- case 82: // 'attribute'
- shiftT(82); // 'attribute'
- break;
- case 93: // 'child'
- shiftT(93); // 'child'
- break;
- case 96: // 'comment'
- shiftT(96); // 'comment'
- break;
- case 103: // 'copy'
- shiftT(103); // 'copy'
- break;
- case 108: // 'declare'
- shiftT(108); // 'declare'
- break;
- case 110: // 'delete'
- shiftT(110); // 'delete'
- break;
- case 111: // 'descendant'
- shiftT(111); // 'descendant'
- break;
- case 112: // 'descendant-or-self'
- shiftT(112); // 'descendant-or-self'
- break;
- case 119: // 'document'
- shiftT(119); // 'document'
- break;
- case 120: // 'document-node'
- shiftT(120); // 'document-node'
- break;
- case 121: // 'element'
- shiftT(121); // 'element'
- break;
- case 124: // 'empty-sequence'
- shiftT(124); // 'empty-sequence'
- break;
- case 129: // 'every'
- shiftT(129); // 'every'
- break;
- case 134: // 'first'
- shiftT(134); // 'first'
- break;
- case 135: // 'following'
- shiftT(135); // 'following'
- break;
- case 136: // 'following-sibling'
- shiftT(136); // 'following-sibling'
- break;
- case 145: // 'function'
- shiftT(145); // 'function'
- break;
- case 152: // 'if'
- shiftT(152); // 'if'
- break;
- case 153: // 'import'
- shiftT(153); // 'import'
- break;
- case 159: // 'insert'
- shiftT(159); // 'insert'
- break;
- case 165: // 'item'
- shiftT(165); // 'item'
- break;
- case 170: // 'last'
- shiftT(170); // 'last'
- break;
- case 182: // 'module'
- shiftT(182); // 'module'
- break;
- case 184: // 'namespace'
- shiftT(184); // 'namespace'
- break;
- case 185: // 'namespace-node'
- shiftT(185); // 'namespace-node'
- break;
- case 191: // 'node'
- shiftT(191); // 'node'
- break;
- case 202: // 'ordered'
- shiftT(202); // 'ordered'
- break;
- case 206: // 'parent'
- shiftT(206); // 'parent'
- break;
- case 212: // 'preceding'
- shiftT(212); // 'preceding'
- break;
- case 213: // 'preceding-sibling'
- shiftT(213); // 'preceding-sibling'
- break;
- case 216: // 'processing-instruction'
- shiftT(216); // 'processing-instruction'
- break;
- case 218: // 'rename'
- shiftT(218); // 'rename'
- break;
- case 219: // 'replace'
- shiftT(219); // 'replace'
- break;
- case 226: // 'schema-attribute'
- shiftT(226); // 'schema-attribute'
- break;
- case 227: // 'schema-element'
- shiftT(227); // 'schema-element'
- break;
- case 229: // 'self'
- shiftT(229); // 'self'
- break;
- case 235: // 'some'
- shiftT(235); // 'some'
- break;
- case 243: // 'switch'
- shiftT(243); // 'switch'
- break;
- case 244: // 'text'
- shiftT(244); // 'text'
- break;
- case 250: // 'try'
- shiftT(250); // 'try'
- break;
- case 253: // 'typeswitch'
- shiftT(253); // 'typeswitch'
- break;
- case 256: // 'unordered'
- shiftT(256); // 'unordered'
- break;
- case 260: // 'validate'
- shiftT(260); // 'validate'
- break;
- case 262: // 'variable'
- shiftT(262); // 'variable'
- break;
- case 274: // 'xquery'
- shiftT(274); // 'xquery'
- break;
- case 72: // 'allowing'
- shiftT(72); // 'allowing'
- break;
- case 81: // 'at'
- shiftT(81); // 'at'
- break;
- case 83: // 'base-uri'
- shiftT(83); // 'base-uri'
- break;
- case 85: // 'boundary-space'
- shiftT(85); // 'boundary-space'
- break;
- case 86: // 'break'
- shiftT(86); // 'break'
- break;
- case 91: // 'catch'
- shiftT(91); // 'catch'
- break;
- case 98: // 'construction'
- shiftT(98); // 'construction'
- break;
- case 101: // 'context'
- shiftT(101); // 'context'
- break;
- case 102: // 'continue'
- shiftT(102); // 'continue'
- break;
- case 104: // 'copy-namespaces'
- shiftT(104); // 'copy-namespaces'
- break;
- case 106: // 'decimal-format'
- shiftT(106); // 'decimal-format'
- break;
- case 125: // 'encoding'
- shiftT(125); // 'encoding'
- break;
- case 132: // 'exit'
- shiftT(132); // 'exit'
- break;
- case 133: // 'external'
- shiftT(133); // 'external'
- break;
- case 141: // 'ft-option'
- shiftT(141); // 'ft-option'
- break;
- case 154: // 'in'
- shiftT(154); // 'in'
- break;
- case 155: // 'index'
- shiftT(155); // 'index'
- break;
- case 161: // 'integrity'
- shiftT(161); // 'integrity'
- break;
- case 171: // 'lax'
- shiftT(171); // 'lax'
- break;
- case 192: // 'nodes'
- shiftT(192); // 'nodes'
- break;
- case 199: // 'option'
- shiftT(199); // 'option'
- break;
- case 203: // 'ordering'
- shiftT(203); // 'ordering'
- break;
- case 222: // 'revalidation'
- shiftT(222); // 'revalidation'
- break;
- case 225: // 'schema'
- shiftT(225); // 'schema'
- break;
- case 228: // 'score'
- shiftT(228); // 'score'
- break;
- case 234: // 'sliding'
- shiftT(234); // 'sliding'
- break;
- case 240: // 'strict'
- shiftT(240); // 'strict'
- break;
- case 251: // 'tumbling'
- shiftT(251); // 'tumbling'
- break;
- case 252: // 'type'
- shiftT(252); // 'type'
- break;
- case 257: // 'updating'
- shiftT(257); // 'updating'
- break;
- case 261: // 'value'
- shiftT(261); // 'value'
- break;
- case 263: // 'version'
- shiftT(263); // 'version'
- break;
- case 267: // 'while'
- shiftT(267); // 'while'
- break;
- case 97: // 'constraint'
- shiftT(97); // 'constraint'
- break;
- case 176: // 'loop'
- shiftT(176); // 'loop'
- break;
- default:
- shiftT(221); // 'returning'
- }
- }
-
- function parse_MainModule()
- {
- eventHandler.startNonterminal("MainModule", e0);
- parse_Prolog();
- whitespace();
- parse_Program();
- eventHandler.endNonterminal("MainModule", e0);
- }
-
- function parse_Program()
- {
- eventHandler.startNonterminal("Program", e0);
- parse_StatementsAndOptionalExpr();
- eventHandler.endNonterminal("Program", e0);
- }
-
- function parse_Statements()
- {
- eventHandler.startNonterminal("Statements", e0);
- for (;;)
- {
- lookahead1W(274); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 34: // '('
- lookahead2W(269); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 35: // '(#'
- lookahead2(250); // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
- break;
- case 46: // '/'
- lookahead2W(281); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 47: // '//'
- lookahead2W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 54: // '<'
- lookahead2(4); // QName
- break;
- case 55: // '<!--'
- lookahead2(1); // DirCommentContents
- break;
- case 59: // '<?'
- lookahead2(3); // PITarget
- break;
- case 66: // '@'
- lookahead2W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 68: // '['
- lookahead2W(271); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 77: // 'append'
- lookahead2W(56); // S^WS | '(:' | 'json'
- break;
- case 82: // 'attribute'
- lookahead2W(278); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
- break;
- case 121: // 'element'
- lookahead2W(277); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
- break;
- case 132: // 'exit'
- lookahead2W(202); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 137: // 'for'
- lookahead2W(206); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 174: // 'let'
- lookahead2W(204); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 218: // 'rename'
- lookahead2W(205); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 219: // 'replace'
- lookahead2W(208); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 260: // 'validate'
- lookahead2W(209); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 278: // '{|'
- lookahead2W(272); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 5: // Wildcard
- case 45: // '..'
- lookahead2W(186); // S^WS | EOF | '!' | '!=' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | '<' |
- break;
- case 31: // '$'
- case 32: // '%'
- lookahead2W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 40: // '+'
- case 42: // '-'
- lookahead2W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 86: // 'break'
- case 102: // 'continue'
- lookahead2W(200); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 110: // 'delete'
- case 159: // 'insert'
- lookahead2W(207); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 124: // 'empty-sequence'
- case 165: // 'item'
- lookahead2W(191); // S^WS | EOF | '!' | '!=' | '#' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |
- break;
- case 184: // 'namespace'
- case 216: // 'processing-instruction'
- lookahead2W(266); // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
- break;
- case 103: // 'copy'
- case 129: // 'every'
- case 235: // 'some'
- case 262: // 'variable'
- lookahead2W(197); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 8: // IntegerLiteral
- case 9: // DecimalLiteral
- case 10: // DoubleLiteral
- case 11: // StringLiteral
- case 44: // '.'
- lookahead2W(192); // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |
- break;
- case 96: // 'comment'
- case 119: // 'document'
- case 202: // 'ordered'
- case 244: // 'text'
- case 250: // 'try'
- case 256: // 'unordered'
- lookahead2W(203); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 73: // 'ancestor'
- case 74: // 'ancestor-or-self'
- case 93: // 'child'
- case 111: // 'descendant'
- case 112: // 'descendant-or-self'
- case 135: // 'following'
- case 136: // 'following-sibling'
- case 206: // 'parent'
- case 212: // 'preceding'
- case 213: // 'preceding-sibling'
- case 229: // 'self'
- lookahead2W(198); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 6: // EQName^Token
- case 70: // 'after'
- case 72: // 'allowing'
- case 75: // 'and'
- case 78: // 'array'
- case 79: // 'as'
- case 80: // 'ascending'
- case 81: // 'at'
- case 83: // 'base-uri'
- case 84: // 'before'
- case 85: // 'boundary-space'
- case 88: // 'case'
- case 89: // 'cast'
- case 90: // 'castable'
- case 91: // 'catch'
- case 94: // 'collation'
- case 97: // 'constraint'
- case 98: // 'construction'
- case 101: // 'context'
- case 104: // 'copy-namespaces'
- case 105: // 'count'
- case 106: // 'decimal-format'
- case 108: // 'declare'
- case 109: // 'default'
- case 113: // 'descending'
- case 118: // 'div'
- case 120: // 'document-node'
- case 122: // 'else'
- case 123: // 'empty'
- case 125: // 'encoding'
- case 126: // 'end'
- case 128: // 'eq'
- case 131: // 'except'
- case 133: // 'external'
- case 134: // 'first'
- case 141: // 'ft-option'
- case 145: // 'function'
- case 146: // 'ge'
- case 148: // 'group'
- case 150: // 'gt'
- case 151: // 'idiv'
- case 152: // 'if'
- case 153: // 'import'
- case 154: // 'in'
- case 155: // 'index'
- case 160: // 'instance'
- case 161: // 'integrity'
- case 162: // 'intersect'
- case 163: // 'into'
- case 164: // 'is'
- case 167: // 'json-item'
- case 170: // 'last'
- case 171: // 'lax'
- case 172: // 'le'
- case 176: // 'loop'
- case 178: // 'lt'
- case 180: // 'mod'
- case 181: // 'modify'
- case 182: // 'module'
- case 185: // 'namespace-node'
- case 186: // 'ne'
- case 191: // 'node'
- case 192: // 'nodes'
- case 194: // 'object'
- case 198: // 'only'
- case 199: // 'option'
- case 200: // 'or'
- case 201: // 'order'
- case 203: // 'ordering'
- case 220: // 'return'
- case 221: // 'returning'
- case 222: // 'revalidation'
- case 224: // 'satisfies'
- case 225: // 'schema'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 228: // 'score'
- case 234: // 'sliding'
- case 236: // 'stable'
- case 237: // 'start'
- case 240: // 'strict'
- case 243: // 'switch'
- case 248: // 'to'
- case 249: // 'treat'
- case 251: // 'tumbling'
- case 252: // 'type'
- case 253: // 'typeswitch'
- case 254: // 'union'
- case 257: // 'updating'
- case 261: // 'value'
- case 263: // 'version'
- case 266: // 'where'
- case 267: // 'while'
- case 270: // 'with'
- case 274: // 'xquery'
- lookahead2W(195); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- default:
- lk = l1;
- }
- if (lk != 25 // EOF
- && lk != 282 // '}'
- && lk != 12805 // Wildcard EOF
- && lk != 12806 // EQName^Token EOF
- && lk != 12808 // IntegerLiteral EOF
- && lk != 12809 // DecimalLiteral EOF
- && lk != 12810 // DoubleLiteral EOF
- && lk != 12811 // StringLiteral EOF
- && lk != 12844 // '.' EOF
- && lk != 12845 // '..' EOF
- && lk != 12846 // '/' EOF
- && lk != 12870 // 'after' EOF
- && lk != 12872 // 'allowing' EOF
- && lk != 12873 // 'ancestor' EOF
- && lk != 12874 // 'ancestor-or-self' EOF
- && lk != 12875 // 'and' EOF
- && lk != 12878 // 'array' EOF
- && lk != 12879 // 'as' EOF
- && lk != 12880 // 'ascending' EOF
- && lk != 12881 // 'at' EOF
- && lk != 12882 // 'attribute' EOF
- && lk != 12883 // 'base-uri' EOF
- && lk != 12884 // 'before' EOF
- && lk != 12885 // 'boundary-space' EOF
- && lk != 12886 // 'break' EOF
- && lk != 12888 // 'case' EOF
- && lk != 12889 // 'cast' EOF
- && lk != 12890 // 'castable' EOF
- && lk != 12891 // 'catch' EOF
- && lk != 12893 // 'child' EOF
- && lk != 12894 // 'collation' EOF
- && lk != 12896 // 'comment' EOF
- && lk != 12897 // 'constraint' EOF
- && lk != 12898 // 'construction' EOF
- && lk != 12901 // 'context' EOF
- && lk != 12902 // 'continue' EOF
- && lk != 12903 // 'copy' EOF
- && lk != 12904 // 'copy-namespaces' EOF
- && lk != 12905 // 'count' EOF
- && lk != 12906 // 'decimal-format' EOF
- && lk != 12908 // 'declare' EOF
- && lk != 12909 // 'default' EOF
- && lk != 12910 // 'delete' EOF
- && lk != 12911 // 'descendant' EOF
- && lk != 12912 // 'descendant-or-self' EOF
- && lk != 12913 // 'descending' EOF
- && lk != 12918 // 'div' EOF
- && lk != 12919 // 'document' EOF
- && lk != 12920 // 'document-node' EOF
- && lk != 12921 // 'element' EOF
- && lk != 12922 // 'else' EOF
- && lk != 12923 // 'empty' EOF
- && lk != 12924 // 'empty-sequence' EOF
- && lk != 12925 // 'encoding' EOF
- && lk != 12926 // 'end' EOF
- && lk != 12928 // 'eq' EOF
- && lk != 12929 // 'every' EOF
- && lk != 12931 // 'except' EOF
- && lk != 12932 // 'exit' EOF
- && lk != 12933 // 'external' EOF
- && lk != 12934 // 'first' EOF
- && lk != 12935 // 'following' EOF
- && lk != 12936 // 'following-sibling' EOF
- && lk != 12937 // 'for' EOF
- && lk != 12941 // 'ft-option' EOF
- && lk != 12945 // 'function' EOF
- && lk != 12946 // 'ge' EOF
- && lk != 12948 // 'group' EOF
- && lk != 12950 // 'gt' EOF
- && lk != 12951 // 'idiv' EOF
- && lk != 12952 // 'if' EOF
- && lk != 12953 // 'import' EOF
- && lk != 12954 // 'in' EOF
- && lk != 12955 // 'index' EOF
- && lk != 12959 // 'insert' EOF
- && lk != 12960 // 'instance' EOF
- && lk != 12961 // 'integrity' EOF
- && lk != 12962 // 'intersect' EOF
- && lk != 12963 // 'into' EOF
- && lk != 12964 // 'is' EOF
- && lk != 12965 // 'item' EOF
- && lk != 12967 // 'json-item' EOF
- && lk != 12970 // 'last' EOF
- && lk != 12971 // 'lax' EOF
- && lk != 12972 // 'le' EOF
- && lk != 12974 // 'let' EOF
- && lk != 12976 // 'loop' EOF
- && lk != 12978 // 'lt' EOF
- && lk != 12980 // 'mod' EOF
- && lk != 12981 // 'modify' EOF
- && lk != 12982 // 'module' EOF
- && lk != 12984 // 'namespace' EOF
- && lk != 12985 // 'namespace-node' EOF
- && lk != 12986 // 'ne' EOF
- && lk != 12991 // 'node' EOF
- && lk != 12992 // 'nodes' EOF
- && lk != 12994 // 'object' EOF
- && lk != 12998 // 'only' EOF
- && lk != 12999 // 'option' EOF
- && lk != 13000 // 'or' EOF
- && lk != 13001 // 'order' EOF
- && lk != 13002 // 'ordered' EOF
- && lk != 13003 // 'ordering' EOF
- && lk != 13006 // 'parent' EOF
- && lk != 13012 // 'preceding' EOF
- && lk != 13013 // 'preceding-sibling' EOF
- && lk != 13016 // 'processing-instruction' EOF
- && lk != 13018 // 'rename' EOF
- && lk != 13019 // 'replace' EOF
- && lk != 13020 // 'return' EOF
- && lk != 13021 // 'returning' EOF
- && lk != 13022 // 'revalidation' EOF
- && lk != 13024 // 'satisfies' EOF
- && lk != 13025 // 'schema' EOF
- && lk != 13026 // 'schema-attribute' EOF
- && lk != 13027 // 'schema-element' EOF
- && lk != 13028 // 'score' EOF
- && lk != 13029 // 'self' EOF
- && lk != 13034 // 'sliding' EOF
- && lk != 13035 // 'some' EOF
- && lk != 13036 // 'stable' EOF
- && lk != 13037 // 'start' EOF
- && lk != 13040 // 'strict' EOF
- && lk != 13043 // 'switch' EOF
- && lk != 13044 // 'text' EOF
- && lk != 13048 // 'to' EOF
- && lk != 13049 // 'treat' EOF
- && lk != 13050 // 'try' EOF
- && lk != 13051 // 'tumbling' EOF
- && lk != 13052 // 'type' EOF
- && lk != 13053 // 'typeswitch' EOF
- && lk != 13054 // 'union' EOF
- && lk != 13056 // 'unordered' EOF
- && lk != 13057 // 'updating' EOF
- && lk != 13060 // 'validate' EOF
- && lk != 13061 // 'value' EOF
- && lk != 13062 // 'variable' EOF
- && lk != 13063 // 'version' EOF
- && lk != 13066 // 'where' EOF
- && lk != 13067 // 'while' EOF
- && lk != 13070 // 'with' EOF
- && lk != 13074 // 'xquery' EOF
- && lk != 16134 // 'variable' '$'
- && lk != 20997 // Wildcard ','
- && lk != 20998 // EQName^Token ','
- && lk != 21000 // IntegerLiteral ','
- && lk != 21001 // DecimalLiteral ','
- && lk != 21002 // DoubleLiteral ','
- && lk != 21003 // StringLiteral ','
- && lk != 21036 // '.' ','
- && lk != 21037 // '..' ','
- && lk != 21038 // '/' ','
- && lk != 21062 // 'after' ','
- && lk != 21064 // 'allowing' ','
- && lk != 21065 // 'ancestor' ','
- && lk != 21066 // 'ancestor-or-self' ','
- && lk != 21067 // 'and' ','
- && lk != 21070 // 'array' ','
- && lk != 21071 // 'as' ','
- && lk != 21072 // 'ascending' ','
- && lk != 21073 // 'at' ','
- && lk != 21074 // 'attribute' ','
- && lk != 21075 // 'base-uri' ','
- && lk != 21076 // 'before' ','
- && lk != 21077 // 'boundary-space' ','
- && lk != 21078 // 'break' ','
- && lk != 21080 // 'case' ','
- && lk != 21081 // 'cast' ','
- && lk != 21082 // 'castable' ','
- && lk != 21083 // 'catch' ','
- && lk != 21085 // 'child' ','
- && lk != 21086 // 'collation' ','
- && lk != 21088 // 'comment' ','
- && lk != 21089 // 'constraint' ','
- && lk != 21090 // 'construction' ','
- && lk != 21093 // 'context' ','
- && lk != 21094 // 'continue' ','
- && lk != 21095 // 'copy' ','
- && lk != 21096 // 'copy-namespaces' ','
- && lk != 21097 // 'count' ','
- && lk != 21098 // 'decimal-format' ','
- && lk != 21100 // 'declare' ','
- && lk != 21101 // 'default' ','
- && lk != 21102 // 'delete' ','
- && lk != 21103 // 'descendant' ','
- && lk != 21104 // 'descendant-or-self' ','
- && lk != 21105 // 'descending' ','
- && lk != 21110 // 'div' ','
- && lk != 21111 // 'document' ','
- && lk != 21112 // 'document-node' ','
- && lk != 21113 // 'element' ','
- && lk != 21114 // 'else' ','
- && lk != 21115 // 'empty' ','
- && lk != 21116 // 'empty-sequence' ','
- && lk != 21117 // 'encoding' ','
- && lk != 21118 // 'end' ','
- && lk != 21120 // 'eq' ','
- && lk != 21121 // 'every' ','
- && lk != 21123 // 'except' ','
- && lk != 21124 // 'exit' ','
- && lk != 21125 // 'external' ','
- && lk != 21126 // 'first' ','
- && lk != 21127 // 'following' ','
- && lk != 21128 // 'following-sibling' ','
- && lk != 21129 // 'for' ','
- && lk != 21133 // 'ft-option' ','
- && lk != 21137 // 'function' ','
- && lk != 21138 // 'ge' ','
- && lk != 21140 // 'group' ','
- && lk != 21142 // 'gt' ','
- && lk != 21143 // 'idiv' ','
- && lk != 21144 // 'if' ','
- && lk != 21145 // 'import' ','
- && lk != 21146 // 'in' ','
- && lk != 21147 // 'index' ','
- && lk != 21151 // 'insert' ','
- && lk != 21152 // 'instance' ','
- && lk != 21153 // 'integrity' ','
- && lk != 21154 // 'intersect' ','
- && lk != 21155 // 'into' ','
- && lk != 21156 // 'is' ','
- && lk != 21157 // 'item' ','
- && lk != 21159 // 'json-item' ','
- && lk != 21162 // 'last' ','
- && lk != 21163 // 'lax' ','
- && lk != 21164 // 'le' ','
- && lk != 21166 // 'let' ','
- && lk != 21168 // 'loop' ','
- && lk != 21170 // 'lt' ','
- && lk != 21172 // 'mod' ','
- && lk != 21173 // 'modify' ','
- && lk != 21174 // 'module' ','
- && lk != 21176 // 'namespace' ','
- && lk != 21177 // 'namespace-node' ','
- && lk != 21178 // 'ne' ','
- && lk != 21183 // 'node' ','
- && lk != 21184 // 'nodes' ','
- && lk != 21186 // 'object' ','
- && lk != 21190 // 'only' ','
- && lk != 21191 // 'option' ','
- && lk != 21192 // 'or' ','
- && lk != 21193 // 'order' ','
- && lk != 21194 // 'ordered' ','
- && lk != 21195 // 'ordering' ','
- && lk != 21198 // 'parent' ','
- && lk != 21204 // 'preceding' ','
- && lk != 21205 // 'preceding-sibling' ','
- && lk != 21208 // 'processing-instruction' ','
- && lk != 21210 // 'rename' ','
- && lk != 21211 // 'replace' ','
- && lk != 21212 // 'return' ','
- && lk != 21213 // 'returning' ','
- && lk != 21214 // 'revalidation' ','
- && lk != 21216 // 'satisfies' ','
- && lk != 21217 // 'schema' ','
- && lk != 21218 // 'schema-attribute' ','
- && lk != 21219 // 'schema-element' ','
- && lk != 21220 // 'score' ','
- && lk != 21221 // 'self' ','
- && lk != 21226 // 'sliding' ','
- && lk != 21227 // 'some' ','
- && lk != 21228 // 'stable' ','
- && lk != 21229 // 'start' ','
- && lk != 21232 // 'strict' ','
- && lk != 21235 // 'switch' ','
- && lk != 21236 // 'text' ','
- && lk != 21240 // 'to' ','
- && lk != 21241 // 'treat' ','
- && lk != 21242 // 'try' ','
- && lk != 21243 // 'tumbling' ','
- && lk != 21244 // 'type' ','
- && lk != 21245 // 'typeswitch' ','
- && lk != 21246 // 'union' ','
- && lk != 21248 // 'unordered' ','
- && lk != 21249 // 'updating' ','
- && lk != 21252 // 'validate' ','
- && lk != 21253 // 'value' ','
- && lk != 21254 // 'variable' ','
- && lk != 21255 // 'version' ','
- && lk != 21258 // 'where' ','
- && lk != 21259 // 'while' ','
- && lk != 21262 // 'with' ','
- && lk != 21266 // 'xquery' ','
- && lk != 27141 // Wildcard ';'
- && lk != 27142 // EQName^Token ';'
- && lk != 27144 // IntegerLiteral ';'
- && lk != 27145 // DecimalLiteral ';'
- && lk != 27146 // DoubleLiteral ';'
- && lk != 27147 // StringLiteral ';'
- && lk != 27180 // '.' ';'
- && lk != 27181 // '..' ';'
- && lk != 27182 // '/' ';'
- && lk != 27206 // 'after' ';'
- && lk != 27208 // 'allowing' ';'
- && lk != 27209 // 'ancestor' ';'
- && lk != 27210 // 'ancestor-or-self' ';'
- && lk != 27211 // 'and' ';'
- && lk != 27214 // 'array' ';'
- && lk != 27215 // 'as' ';'
- && lk != 27216 // 'ascending' ';'
- && lk != 27217 // 'at' ';'
- && lk != 27218 // 'attribute' ';'
- && lk != 27219 // 'base-uri' ';'
- && lk != 27220 // 'before' ';'
- && lk != 27221 // 'boundary-space' ';'
- && lk != 27222 // 'break' ';'
- && lk != 27224 // 'case' ';'
- && lk != 27225 // 'cast' ';'
- && lk != 27226 // 'castable' ';'
- && lk != 27227 // 'catch' ';'
- && lk != 27229 // 'child' ';'
- && lk != 27230 // 'collation' ';'
- && lk != 27232 // 'comment' ';'
- && lk != 27233 // 'constraint' ';'
- && lk != 27234 // 'construction' ';'
- && lk != 27237 // 'context' ';'
- && lk != 27238 // 'continue' ';'
- && lk != 27239 // 'copy' ';'
- && lk != 27240 // 'copy-namespaces' ';'
- && lk != 27241 // 'count' ';'
- && lk != 27242 // 'decimal-format' ';'
- && lk != 27244 // 'declare' ';'
- && lk != 27245 // 'default' ';'
- && lk != 27246 // 'delete' ';'
- && lk != 27247 // 'descendant' ';'
- && lk != 27248 // 'descendant-or-self' ';'
- && lk != 27249 // 'descending' ';'
- && lk != 27254 // 'div' ';'
- && lk != 27255 // 'document' ';'
- && lk != 27256 // 'document-node' ';'
- && lk != 27257 // 'element' ';'
- && lk != 27258 // 'else' ';'
- && lk != 27259 // 'empty' ';'
- && lk != 27260 // 'empty-sequence' ';'
- && lk != 27261 // 'encoding' ';'
- && lk != 27262 // 'end' ';'
- && lk != 27264 // 'eq' ';'
- && lk != 27265 // 'every' ';'
- && lk != 27267 // 'except' ';'
- && lk != 27268 // 'exit' ';'
- && lk != 27269 // 'external' ';'
- && lk != 27270 // 'first' ';'
- && lk != 27271 // 'following' ';'
- && lk != 27272 // 'following-sibling' ';'
- && lk != 27273 // 'for' ';'
- && lk != 27277 // 'ft-option' ';'
- && lk != 27281 // 'function' ';'
- && lk != 27282 // 'ge' ';'
- && lk != 27284 // 'group' ';'
- && lk != 27286 // 'gt' ';'
- && lk != 27287 // 'idiv' ';'
- && lk != 27288 // 'if' ';'
- && lk != 27289 // 'import' ';'
- && lk != 27290 // 'in' ';'
- && lk != 27291 // 'index' ';'
- && lk != 27295 // 'insert' ';'
- && lk != 27296 // 'instance' ';'
- && lk != 27297 // 'integrity' ';'
- && lk != 27298 // 'intersect' ';'
- && lk != 27299 // 'into' ';'
- && lk != 27300 // 'is' ';'
- && lk != 27301 // 'item' ';'
- && lk != 27303 // 'json-item' ';'
- && lk != 27306 // 'last' ';'
- && lk != 27307 // 'lax' ';'
- && lk != 27308 // 'le' ';'
- && lk != 27310 // 'let' ';'
- && lk != 27312 // 'loop' ';'
- && lk != 27314 // 'lt' ';'
- && lk != 27316 // 'mod' ';'
- && lk != 27317 // 'modify' ';'
- && lk != 27318 // 'module' ';'
- && lk != 27320 // 'namespace' ';'
- && lk != 27321 // 'namespace-node' ';'
- && lk != 27322 // 'ne' ';'
- && lk != 27327 // 'node' ';'
- && lk != 27328 // 'nodes' ';'
- && lk != 27330 // 'object' ';'
- && lk != 27334 // 'only' ';'
- && lk != 27335 // 'option' ';'
- && lk != 27336 // 'or' ';'
- && lk != 27337 // 'order' ';'
- && lk != 27338 // 'ordered' ';'
- && lk != 27339 // 'ordering' ';'
- && lk != 27342 // 'parent' ';'
- && lk != 27348 // 'preceding' ';'
- && lk != 27349 // 'preceding-sibling' ';'
- && lk != 27352 // 'processing-instruction' ';'
- && lk != 27354 // 'rename' ';'
- && lk != 27355 // 'replace' ';'
- && lk != 27356 // 'return' ';'
- && lk != 27357 // 'returning' ';'
- && lk != 27358 // 'revalidation' ';'
- && lk != 27360 // 'satisfies' ';'
- && lk != 27361 // 'schema' ';'
- && lk != 27362 // 'schema-attribute' ';'
- && lk != 27363 // 'schema-element' ';'
- && lk != 27364 // 'score' ';'
- && lk != 27365 // 'self' ';'
- && lk != 27370 // 'sliding' ';'
- && lk != 27371 // 'some' ';'
- && lk != 27372 // 'stable' ';'
- && lk != 27373 // 'start' ';'
- && lk != 27376 // 'strict' ';'
- && lk != 27379 // 'switch' ';'
- && lk != 27380 // 'text' ';'
- && lk != 27384 // 'to' ';'
- && lk != 27385 // 'treat' ';'
- && lk != 27386 // 'try' ';'
- && lk != 27387 // 'tumbling' ';'
- && lk != 27388 // 'type' ';'
- && lk != 27389 // 'typeswitch' ';'
- && lk != 27390 // 'union' ';'
- && lk != 27392 // 'unordered' ';'
- && lk != 27393 // 'updating' ';'
- && lk != 27396 // 'validate' ';'
- && lk != 27397 // 'value' ';'
- && lk != 27398 // 'variable' ';'
- && lk != 27399 // 'version' ';'
- && lk != 27402 // 'where' ';'
- && lk != 27403 // 'while' ';'
- && lk != 27406 // 'with' ';'
- && lk != 27410 // 'xquery' ';'
- && lk != 90198 // 'break' 'loop'
- && lk != 90214 // 'continue' 'loop'
- && lk != 113284 // 'exit' 'returning'
- && lk != 144389 // Wildcard '}'
- && lk != 144390 // EQName^Token '}'
- && lk != 144392 // IntegerLiteral '}'
- && lk != 144393 // DecimalLiteral '}'
- && lk != 144394 // DoubleLiteral '}'
- && lk != 144395 // StringLiteral '}'
- && lk != 144428 // '.' '}'
- && lk != 144429 // '..' '}'
- && lk != 144430 // '/' '}'
- && lk != 144454 // 'after' '}'
- && lk != 144456 // 'allowing' '}'
- && lk != 144457 // 'ancestor' '}'
- && lk != 144458 // 'ancestor-or-self' '}'
- && lk != 144459 // 'and' '}'
- && lk != 144462 // 'array' '}'
- && lk != 144463 // 'as' '}'
- && lk != 144464 // 'ascending' '}'
- && lk != 144465 // 'at' '}'
- && lk != 144466 // 'attribute' '}'
- && lk != 144467 // 'base-uri' '}'
- && lk != 144468 // 'before' '}'
- && lk != 144469 // 'boundary-space' '}'
- && lk != 144470 // 'break' '}'
- && lk != 144472 // 'case' '}'
- && lk != 144473 // 'cast' '}'
- && lk != 144474 // 'castable' '}'
- && lk != 144475 // 'catch' '}'
- && lk != 144477 // 'child' '}'
- && lk != 144478 // 'collation' '}'
- && lk != 144480 // 'comment' '}'
- && lk != 144481 // 'constraint' '}'
- && lk != 144482 // 'construction' '}'
- && lk != 144485 // 'context' '}'
- && lk != 144486 // 'continue' '}'
- && lk != 144487 // 'copy' '}'
- && lk != 144488 // 'copy-namespaces' '}'
- && lk != 144489 // 'count' '}'
- && lk != 144490 // 'decimal-format' '}'
- && lk != 144492 // 'declare' '}'
- && lk != 144493 // 'default' '}'
- && lk != 144494 // 'delete' '}'
- && lk != 144495 // 'descendant' '}'
- && lk != 144496 // 'descendant-or-self' '}'
- && lk != 144497 // 'descending' '}'
- && lk != 144502 // 'div' '}'
- && lk != 144503 // 'document' '}'
- && lk != 144504 // 'document-node' '}'
- && lk != 144505 // 'element' '}'
- && lk != 144506 // 'else' '}'
- && lk != 144507 // 'empty' '}'
- && lk != 144508 // 'empty-sequence' '}'
- && lk != 144509 // 'encoding' '}'
- && lk != 144510 // 'end' '}'
- && lk != 144512 // 'eq' '}'
- && lk != 144513 // 'every' '}'
- && lk != 144515 // 'except' '}'
- && lk != 144516 // 'exit' '}'
- && lk != 144517 // 'external' '}'
- && lk != 144518 // 'first' '}'
- && lk != 144519 // 'following' '}'
- && lk != 144520 // 'following-sibling' '}'
- && lk != 144521 // 'for' '}'
- && lk != 144525 // 'ft-option' '}'
- && lk != 144529 // 'function' '}'
- && lk != 144530 // 'ge' '}'
- && lk != 144532 // 'group' '}'
- && lk != 144534 // 'gt' '}'
- && lk != 144535 // 'idiv' '}'
- && lk != 144536 // 'if' '}'
- && lk != 144537 // 'import' '}'
- && lk != 144538 // 'in' '}'
- && lk != 144539 // 'index' '}'
- && lk != 144543 // 'insert' '}'
- && lk != 144544 // 'instance' '}'
- && lk != 144545 // 'integrity' '}'
- && lk != 144546 // 'intersect' '}'
- && lk != 144547 // 'into' '}'
- && lk != 144548 // 'is' '}'
- && lk != 144549 // 'item' '}'
- && lk != 144551 // 'json-item' '}'
- && lk != 144554 // 'last' '}'
- && lk != 144555 // 'lax' '}'
- && lk != 144556 // 'le' '}'
- && lk != 144558 // 'let' '}'
- && lk != 144560 // 'loop' '}'
- && lk != 144562 // 'lt' '}'
- && lk != 144564 // 'mod' '}'
- && lk != 144565 // 'modify' '}'
- && lk != 144566 // 'module' '}'
- && lk != 144568 // 'namespace' '}'
- && lk != 144569 // 'namespace-node' '}'
- && lk != 144570 // 'ne' '}'
- && lk != 144575 // 'node' '}'
- && lk != 144576 // 'nodes' '}'
- && lk != 144578 // 'object' '}'
- && lk != 144582 // 'only' '}'
- && lk != 144583 // 'option' '}'
- && lk != 144584 // 'or' '}'
- && lk != 144585 // 'order' '}'
- && lk != 144586 // 'ordered' '}'
- && lk != 144587 // 'ordering' '}'
- && lk != 144590 // 'parent' '}'
- && lk != 144596 // 'preceding' '}'
- && lk != 144597 // 'preceding-sibling' '}'
- && lk != 144600 // 'processing-instruction' '}'
- && lk != 144602 // 'rename' '}'
- && lk != 144603 // 'replace' '}'
- && lk != 144604 // 'return' '}'
- && lk != 144605 // 'returning' '}'
- && lk != 144606 // 'revalidation' '}'
- && lk != 144608 // 'satisfies' '}'
- && lk != 144609 // 'schema' '}'
- && lk != 144610 // 'schema-attribute' '}'
- && lk != 144611 // 'schema-element' '}'
- && lk != 144612 // 'score' '}'
- && lk != 144613 // 'self' '}'
- && lk != 144618 // 'sliding' '}'
- && lk != 144619 // 'some' '}'
- && lk != 144620 // 'stable' '}'
- && lk != 144621 // 'start' '}'
- && lk != 144624 // 'strict' '}'
- && lk != 144627 // 'switch' '}'
- && lk != 144628 // 'text' '}'
- && lk != 144632 // 'to' '}'
- && lk != 144633 // 'treat' '}'
- && lk != 144634 // 'try' '}'
- && lk != 144635 // 'tumbling' '}'
- && lk != 144636 // 'type' '}'
- && lk != 144637 // 'typeswitch' '}'
- && lk != 144638 // 'union' '}'
- && lk != 144640 // 'unordered' '}'
- && lk != 144641 // 'updating' '}'
- && lk != 144644 // 'validate' '}'
- && lk != 144645 // 'value' '}'
- && lk != 144646 // 'variable' '}'
- && lk != 144647 // 'version' '}'
- && lk != 144650 // 'where' '}'
- && lk != 144651 // 'while' '}'
- && lk != 144654 // 'with' '}'
- && lk != 144658) // 'xquery' '}'
- {
- lk = memoized(6, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_Statement();
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(6, e0, lk);
- }
- }
- if (lk != -1
- && lk != 16134 // 'variable' '$'
- && lk != 27141 // Wildcard ';'
- && lk != 27142 // EQName^Token ';'
- && lk != 27144 // IntegerLiteral ';'
- && lk != 27145 // DecimalLiteral ';'
- && lk != 27146 // DoubleLiteral ';'
- && lk != 27147 // StringLiteral ';'
- && lk != 27180 // '.' ';'
- && lk != 27181 // '..' ';'
- && lk != 27182 // '/' ';'
- && lk != 27206 // 'after' ';'
- && lk != 27208 // 'allowing' ';'
- && lk != 27209 // 'ancestor' ';'
- && lk != 27210 // 'ancestor-or-self' ';'
- && lk != 27211 // 'and' ';'
- && lk != 27214 // 'array' ';'
- && lk != 27215 // 'as' ';'
- && lk != 27216 // 'ascending' ';'
- && lk != 27217 // 'at' ';'
- && lk != 27218 // 'attribute' ';'
- && lk != 27219 // 'base-uri' ';'
- && lk != 27220 // 'before' ';'
- && lk != 27221 // 'boundary-space' ';'
- && lk != 27222 // 'break' ';'
- && lk != 27224 // 'case' ';'
- && lk != 27225 // 'cast' ';'
- && lk != 27226 // 'castable' ';'
- && lk != 27227 // 'catch' ';'
- && lk != 27229 // 'child' ';'
- && lk != 27230 // 'collation' ';'
- && lk != 27232 // 'comment' ';'
- && lk != 27233 // 'constraint' ';'
- && lk != 27234 // 'construction' ';'
- && lk != 27237 // 'context' ';'
- && lk != 27238 // 'continue' ';'
- && lk != 27239 // 'copy' ';'
- && lk != 27240 // 'copy-namespaces' ';'
- && lk != 27241 // 'count' ';'
- && lk != 27242 // 'decimal-format' ';'
- && lk != 27244 // 'declare' ';'
- && lk != 27245 // 'default' ';'
- && lk != 27246 // 'delete' ';'
- && lk != 27247 // 'descendant' ';'
- && lk != 27248 // 'descendant-or-self' ';'
- && lk != 27249 // 'descending' ';'
- && lk != 27254 // 'div' ';'
- && lk != 27255 // 'document' ';'
- && lk != 27256 // 'document-node' ';'
- && lk != 27257 // 'element' ';'
- && lk != 27258 // 'else' ';'
- && lk != 27259 // 'empty' ';'
- && lk != 27260 // 'empty-sequence' ';'
- && lk != 27261 // 'encoding' ';'
- && lk != 27262 // 'end' ';'
- && lk != 27264 // 'eq' ';'
- && lk != 27265 // 'every' ';'
- && lk != 27267 // 'except' ';'
- && lk != 27268 // 'exit' ';'
- && lk != 27269 // 'external' ';'
- && lk != 27270 // 'first' ';'
- && lk != 27271 // 'following' ';'
- && lk != 27272 // 'following-sibling' ';'
- && lk != 27273 // 'for' ';'
- && lk != 27277 // 'ft-option' ';'
- && lk != 27281 // 'function' ';'
- && lk != 27282 // 'ge' ';'
- && lk != 27284 // 'group' ';'
- && lk != 27286 // 'gt' ';'
- && lk != 27287 // 'idiv' ';'
- && lk != 27288 // 'if' ';'
- && lk != 27289 // 'import' ';'
- && lk != 27290 // 'in' ';'
- && lk != 27291 // 'index' ';'
- && lk != 27295 // 'insert' ';'
- && lk != 27296 // 'instance' ';'
- && lk != 27297 // 'integrity' ';'
- && lk != 27298 // 'intersect' ';'
- && lk != 27299 // 'into' ';'
- && lk != 27300 // 'is' ';'
- && lk != 27301 // 'item' ';'
- && lk != 27303 // 'json-item' ';'
- && lk != 27306 // 'last' ';'
- && lk != 27307 // 'lax' ';'
- && lk != 27308 // 'le' ';'
- && lk != 27310 // 'let' ';'
- && lk != 27312 // 'loop' ';'
- && lk != 27314 // 'lt' ';'
- && lk != 27316 // 'mod' ';'
- && lk != 27317 // 'modify' ';'
- && lk != 27318 // 'module' ';'
- && lk != 27320 // 'namespace' ';'
- && lk != 27321 // 'namespace-node' ';'
- && lk != 27322 // 'ne' ';'
- && lk != 27327 // 'node' ';'
- && lk != 27328 // 'nodes' ';'
- && lk != 27330 // 'object' ';'
- && lk != 27334 // 'only' ';'
- && lk != 27335 // 'option' ';'
- && lk != 27336 // 'or' ';'
- && lk != 27337 // 'order' ';'
- && lk != 27338 // 'ordered' ';'
- && lk != 27339 // 'ordering' ';'
- && lk != 27342 // 'parent' ';'
- && lk != 27348 // 'preceding' ';'
- && lk != 27349 // 'preceding-sibling' ';'
- && lk != 27352 // 'processing-instruction' ';'
- && lk != 27354 // 'rename' ';'
- && lk != 27355 // 'replace' ';'
- && lk != 27356 // 'return' ';'
- && lk != 27357 // 'returning' ';'
- && lk != 27358 // 'revalidation' ';'
- && lk != 27360 // 'satisfies' ';'
- && lk != 27361 // 'schema' ';'
- && lk != 27362 // 'schema-attribute' ';'
- && lk != 27363 // 'schema-element' ';'
- && lk != 27364 // 'score' ';'
- && lk != 27365 // 'self' ';'
- && lk != 27370 // 'sliding' ';'
- && lk != 27371 // 'some' ';'
- && lk != 27372 // 'stable' ';'
- && lk != 27373 // 'start' ';'
- && lk != 27376 // 'strict' ';'
- && lk != 27379 // 'switch' ';'
- && lk != 27380 // 'text' ';'
- && lk != 27384 // 'to' ';'
- && lk != 27385 // 'treat' ';'
- && lk != 27386 // 'try' ';'
- && lk != 27387 // 'tumbling' ';'
- && lk != 27388 // 'type' ';'
- && lk != 27389 // 'typeswitch' ';'
- && lk != 27390 // 'union' ';'
- && lk != 27392 // 'unordered' ';'
- && lk != 27393 // 'updating' ';'
- && lk != 27396 // 'validate' ';'
- && lk != 27397 // 'value' ';'
- && lk != 27398 // 'variable' ';'
- && lk != 27399 // 'version' ';'
- && lk != 27402 // 'where' ';'
- && lk != 27403 // 'while' ';'
- && lk != 27406 // 'with' ';'
- && lk != 27410 // 'xquery' ';'
- && lk != 90198 // 'break' 'loop'
- && lk != 90214 // 'continue' 'loop'
- && lk != 113284) // 'exit' 'returning'
- {
- break;
- }
- whitespace();
- parse_Statement();
- }
- eventHandler.endNonterminal("Statements", e0);
- }
-
- function try_Statements()
- {
- for (;;)
- {
- lookahead1W(274); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 34: // '('
- lookahead2W(269); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 35: // '(#'
- lookahead2(250); // EQName^Token | S | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' |
- break;
- case 46: // '/'
- lookahead2W(281); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 47: // '//'
- lookahead2W(263); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 54: // '<'
- lookahead2(4); // QName
- break;
- case 55: // '<!--'
- lookahead2(1); // DirCommentContents
- break;
- case 59: // '<?'
- lookahead2(3); // PITarget
- break;
- case 66: // '@'
- lookahead2W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 68: // '['
- lookahead2W(271); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 77: // 'append'
- lookahead2W(56); // S^WS | '(:' | 'json'
- break;
- case 82: // 'attribute'
- lookahead2W(278); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
- break;
- case 121: // 'element'
- lookahead2W(277); // EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
- break;
- case 132: // 'exit'
- lookahead2W(202); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 137: // 'for'
- lookahead2W(206); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 174: // 'let'
- lookahead2W(204); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 218: // 'rename'
- lookahead2W(205); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 219: // 'replace'
- lookahead2W(208); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 260: // 'validate'
- lookahead2W(209); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 278: // '{|'
- lookahead2W(272); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 5: // Wildcard
- case 45: // '..'
- lookahead2W(186); // S^WS | EOF | '!' | '!=' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' | '<' |
- break;
- case 31: // '$'
- case 32: // '%'
- lookahead2W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 40: // '+'
- case 42: // '-'
- lookahead2W(265); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 86: // 'break'
- case 102: // 'continue'
- lookahead2W(200); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 110: // 'delete'
- case 159: // 'insert'
- lookahead2W(207); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 124: // 'empty-sequence'
- case 165: // 'item'
- lookahead2W(191); // S^WS | EOF | '!' | '!=' | '#' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |
- break;
- case 184: // 'namespace'
- case 216: // 'processing-instruction'
- lookahead2W(266); // NCName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' |
- break;
- case 103: // 'copy'
- case 129: // 'every'
- case 235: // 'some'
- case 262: // 'variable'
- lookahead2W(197); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 8: // IntegerLiteral
- case 9: // DecimalLiteral
- case 10: // DoubleLiteral
- case 11: // StringLiteral
- case 44: // '.'
- lookahead2W(192); // S^WS | EOF | '!' | '!=' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' | ';' |
- break;
- case 96: // 'comment'
- case 119: // 'document'
- case 202: // 'ordered'
- case 244: // 'text'
- case 250: // 'try'
- case 256: // 'unordered'
- lookahead2W(203); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 73: // 'ancestor'
- case 74: // 'ancestor-or-self'
- case 93: // 'child'
- case 111: // 'descendant'
- case 112: // 'descendant-or-self'
- case 135: // 'following'
- case 136: // 'following-sibling'
- case 206: // 'parent'
- case 212: // 'preceding'
- case 213: // 'preceding-sibling'
- case 229: // 'self'
- lookahead2W(198); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- case 6: // EQName^Token
- case 70: // 'after'
- case 72: // 'allowing'
- case 75: // 'and'
- case 78: // 'array'
- case 79: // 'as'
- case 80: // 'ascending'
- case 81: // 'at'
- case 83: // 'base-uri'
- case 84: // 'before'
- case 85: // 'boundary-space'
- case 88: // 'case'
- case 89: // 'cast'
- case 90: // 'castable'
- case 91: // 'catch'
- case 94: // 'collation'
- case 97: // 'constraint'
- case 98: // 'construction'
- case 101: // 'context'
- case 104: // 'copy-namespaces'
- case 105: // 'count'
- case 106: // 'decimal-format'
- case 108: // 'declare'
- case 109: // 'default'
- case 113: // 'descending'
- case 118: // 'div'
- case 120: // 'document-node'
- case 122: // 'else'
- case 123: // 'empty'
- case 125: // 'encoding'
- case 126: // 'end'
- case 128: // 'eq'
- case 131: // 'except'
- case 133: // 'external'
- case 134: // 'first'
- case 141: // 'ft-option'
- case 145: // 'function'
- case 146: // 'ge'
- case 148: // 'group'
- case 150: // 'gt'
- case 151: // 'idiv'
- case 152: // 'if'
- case 153: // 'import'
- case 154: // 'in'
- case 155: // 'index'
- case 160: // 'instance'
- case 161: // 'integrity'
- case 162: // 'intersect'
- case 163: // 'into'
- case 164: // 'is'
- case 167: // 'json-item'
- case 170: // 'last'
- case 171: // 'lax'
- case 172: // 'le'
- case 176: // 'loop'
- case 178: // 'lt'
- case 180: // 'mod'
- case 181: // 'modify'
- case 182: // 'module'
- case 185: // 'namespace-node'
- case 186: // 'ne'
- case 191: // 'node'
- case 192: // 'nodes'
- case 194: // 'object'
- case 198: // 'only'
- case 199: // 'option'
- case 200: // 'or'
- case 201: // 'order'
- case 203: // 'ordering'
- case 220: // 'return'
- case 221: // 'returning'
- case 222: // 'revalidation'
- case 224: // 'satisfies'
- case 225: // 'schema'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 228: // 'score'
- case 234: // 'sliding'
- case 236: // 'stable'
- case 237: // 'start'
- case 240: // 'strict'
- case 243: // 'switch'
- case 248: // 'to'
- case 249: // 'treat'
- case 251: // 'tumbling'
- case 252: // 'type'
- case 253: // 'typeswitch'
- case 254: // 'union'
- case 257: // 'updating'
- case 261: // 'value'
- case 263: // 'version'
- case 266: // 'where'
- case 267: // 'while'
- case 270: // 'with'
- case 274: // 'xquery'
- lookahead2W(195); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | ',' | '-' | '/' | '//' |
- break;
- default:
- lk = l1;
- }
- if (lk != 25 // EOF
- && lk != 282 // '}'
- && lk != 12805 // Wildcard EOF
- && lk != 12806 // EQName^Token EOF
- && lk != 12808 // IntegerLiteral EOF
- && lk != 12809 // DecimalLiteral EOF
- && lk != 12810 // DoubleLiteral EOF
- && lk != 12811 // StringLiteral EOF
- && lk != 12844 // '.' EOF
- && lk != 12845 // '..' EOF
- && lk != 12846 // '/' EOF
- && lk != 12870 // 'after' EOF
- && lk != 12872 // 'allowing' EOF
- && lk != 12873 // 'ancestor' EOF
- && lk != 12874 // 'ancestor-or-self' EOF
- && lk != 12875 // 'and' EOF
- && lk != 12878 // 'array' EOF
- && lk != 12879 // 'as' EOF
- && lk != 12880 // 'ascending' EOF
- && lk != 12881 // 'at' EOF
- && lk != 12882 // 'attribute' EOF
- && lk != 12883 // 'base-uri' EOF
- && lk != 12884 // 'before' EOF
- && lk != 12885 // 'boundary-space' EOF
- && lk != 12886 // 'break' EOF
- && lk != 12888 // 'case' EOF
- && lk != 12889 // 'cast' EOF
- && lk != 12890 // 'castable' EOF
- && lk != 12891 // 'catch' EOF
- && lk != 12893 // 'child' EOF
- && lk != 12894 // 'collation' EOF
- && lk != 12896 // 'comment' EOF
- && lk != 12897 // 'constraint' EOF
- && lk != 12898 // 'construction' EOF
- && lk != 12901 // 'context' EOF
- && lk != 12902 // 'continue' EOF
- && lk != 12903 // 'copy' EOF
- && lk != 12904 // 'copy-namespaces' EOF
- && lk != 12905 // 'count' EOF
- && lk != 12906 // 'decimal-format' EOF
- && lk != 12908 // 'declare' EOF
- && lk != 12909 // 'default' EOF
- && lk != 12910 // 'delete' EOF
- && lk != 12911 // 'descendant' EOF
- && lk != 12912 // 'descendant-or-self' EOF
- && lk != 12913 // 'descending' EOF
- && lk != 12918 // 'div' EOF
- && lk != 12919 // 'document' EOF
- && lk != 12920 // 'document-node' EOF
- && lk != 12921 // 'element' EOF
- && lk != 12922 // 'else' EOF
- && lk != 12923 // 'empty' EOF
- && lk != 12924 // 'empty-sequence' EOF
- && lk != 12925 // 'encoding' EOF
- && lk != 12926 // 'end' EOF
- && lk != 12928 // 'eq' EOF
- && lk != 12929 // 'every' EOF
- && lk != 12931 // 'except' EOF
- && lk != 12932 // 'exit' EOF
- && lk != 12933 // 'external' EOF
- && lk != 12934 // 'first' EOF
- && lk != 12935 // 'following' EOF
- && lk != 12936 // 'following-sibling' EOF
- && lk != 12937 // 'for' EOF
- && lk != 12941 // 'ft-option' EOF
- && lk != 12945 // 'function' EOF
- && lk != 12946 // 'ge' EOF
- && lk != 12948 // 'group' EOF
- && lk != 12950 // 'gt' EOF
- && lk != 12951 // 'idiv' EOF
- && lk != 12952 // 'if' EOF
- && lk != 12953 // 'import' EOF
- && lk != 12954 // 'in' EOF
- && lk != 12955 // 'index' EOF
- && lk != 12959 // 'insert' EOF
- && lk != 12960 // 'instance' EOF
- && lk != 12961 // 'integrity' EOF
- && lk != 12962 // 'intersect' EOF
- && lk != 12963 // 'into' EOF
- && lk != 12964 // 'is' EOF
- && lk != 12965 // 'item' EOF
- && lk != 12967 // 'json-item' EOF
- && lk != 12970 // 'last' EOF
- && lk != 12971 // 'lax' EOF
- && lk != 12972 // 'le' EOF
- && lk != 12974 // 'let' EOF
- && lk != 12976 // 'loop' EOF
- && lk != 12978 // 'lt' EOF
- && lk != 12980 // 'mod' EOF
- && lk != 12981 // 'modify' EOF
- && lk != 12982 // 'module' EOF
- && lk != 12984 // 'namespace' EOF
- && lk != 12985 // 'namespace-node' EOF
- && lk != 12986 // 'ne' EOF
- && lk != 12991 // 'node' EOF
- && lk != 12992 // 'nodes' EOF
- && lk != 12994 // 'object' EOF
- && lk != 12998 // 'only' EOF
- && lk != 12999 // 'option' EOF
- && lk != 13000 // 'or' EOF
- && lk != 13001 // 'order' EOF
- && lk != 13002 // 'ordered' EOF
- && lk != 13003 // 'ordering' EOF
- && lk != 13006 // 'parent' EOF
- && lk != 13012 // 'preceding' EOF
- && lk != 13013 // 'preceding-sibling' EOF
- && lk != 13016 // 'processing-instruction' EOF
- && lk != 13018 // 'rename' EOF
- && lk != 13019 // 'replace' EOF
- && lk != 13020 // 'return' EOF
- && lk != 13021 // 'returning' EOF
- && lk != 13022 // 'revalidation' EOF
- && lk != 13024 // 'satisfies' EOF
- && lk != 13025 // 'schema' EOF
- && lk != 13026 // 'schema-attribute' EOF
- && lk != 13027 // 'schema-element' EOF
- && lk != 13028 // 'score' EOF
- && lk != 13029 // 'self' EOF
- && lk != 13034 // 'sliding' EOF
- && lk != 13035 // 'some' EOF
- && lk != 13036 // 'stable' EOF
- && lk != 13037 // 'start' EOF
- && lk != 13040 // 'strict' EOF
- && lk != 13043 // 'switch' EOF
- && lk != 13044 // 'text' EOF
- && lk != 13048 // 'to' EOF
- && lk != 13049 // 'treat' EOF
- && lk != 13050 // 'try' EOF
- && lk != 13051 // 'tumbling' EOF
- && lk != 13052 // 'type' EOF
- && lk != 13053 // 'typeswitch' EOF
- && lk != 13054 // 'union' EOF
- && lk != 13056 // 'unordered' EOF
- && lk != 13057 // 'updating' EOF
- && lk != 13060 // 'validate' EOF
- && lk != 13061 // 'value' EOF
- && lk != 13062 // 'variable' EOF
- && lk != 13063 // 'version' EOF
- && lk != 13066 // 'where' EOF
- && lk != 13067 // 'while' EOF
- && lk != 13070 // 'with' EOF
- && lk != 13074 // 'xquery' EOF
- && lk != 16134 // 'variable' '$'
- && lk != 20997 // Wildcard ','
- && lk != 20998 // EQName^Token ','
- && lk != 21000 // IntegerLiteral ','
- && lk != 21001 // DecimalLiteral ','
- && lk != 21002 // DoubleLiteral ','
- && lk != 21003 // StringLiteral ','
- && lk != 21036 // '.' ','
- && lk != 21037 // '..' ','
- && lk != 21038 // '/' ','
- && lk != 21062 // 'after' ','
- && lk != 21064 // 'allowing' ','
- && lk != 21065 // 'ancestor' ','
- && lk != 21066 // 'ancestor-or-self' ','
- && lk != 21067 // 'and' ','
- && lk != 21070 // 'array' ','
- && lk != 21071 // 'as' ','
- && lk != 21072 // 'ascending' ','
- && lk != 21073 // 'at' ','
- && lk != 21074 // 'attribute' ','
- && lk != 21075 // 'base-uri' ','
- && lk != 21076 // 'before' ','
- && lk != 21077 // 'boundary-space' ','
- && lk != 21078 // 'break' ','
- && lk != 21080 // 'case' ','
- && lk != 21081 // 'cast' ','
- && lk != 21082 // 'castable' ','
- && lk != 21083 // 'catch' ','
- && lk != 21085 // 'child' ','
- && lk != 21086 // 'collation' ','
- && lk != 21088 // 'comment' ','
- && lk != 21089 // 'constraint' ','
- && lk != 21090 // 'construction' ','
- && lk != 21093 // 'context' ','
- && lk != 21094 // 'continue' ','
- && lk != 21095 // 'copy' ','
- && lk != 21096 // 'copy-namespaces' ','
- && lk != 21097 // 'count' ','
- && lk != 21098 // 'decimal-format' ','
- && lk != 21100 // 'declare' ','
- && lk != 21101 // 'default' ','
- && lk != 21102 // 'delete' ','
- && lk != 21103 // 'descendant' ','
- && lk != 21104 // 'descendant-or-self' ','
- && lk != 21105 // 'descending' ','
- && lk != 21110 // 'div' ','
- && lk != 21111 // 'document' ','
- && lk != 21112 // 'document-node' ','
- && lk != 21113 // 'element' ','
- && lk != 21114 // 'else' ','
- && lk != 21115 // 'empty' ','
- && lk != 21116 // 'empty-sequence' ','
- && lk != 21117 // 'encoding' ','
- && lk != 21118 // 'end' ','
- && lk != 21120 // 'eq' ','
- && lk != 21121 // 'every' ','
- && lk != 21123 // 'except' ','
- && lk != 21124 // 'exit' ','
- && lk != 21125 // 'external' ','
- && lk != 21126 // 'first' ','
- && lk != 21127 // 'following' ','
- && lk != 21128 // 'following-sibling' ','
- && lk != 21129 // 'for' ','
- && lk != 21133 // 'ft-option' ','
- && lk != 21137 // 'function' ','
- && lk != 21138 // 'ge' ','
- && lk != 21140 // 'group' ','
- && lk != 21142 // 'gt' ','
- && lk != 21143 // 'idiv' ','
- && lk != 21144 // 'if' ','
- && lk != 21145 // 'import' ','
- && lk != 21146 // 'in' ','
- && lk != 21147 // 'index' ','
- && lk != 21151 // 'insert' ','
- && lk != 21152 // 'instance' ','
- && lk != 21153 // 'integrity' ','
- && lk != 21154 // 'intersect' ','
- && lk != 21155 // 'into' ','
- && lk != 21156 // 'is' ','
- && lk != 21157 // 'item' ','
- && lk != 21159 // 'json-item' ','
- && lk != 21162 // 'last' ','
- && lk != 21163 // 'lax' ','
- && lk != 21164 // 'le' ','
- && lk != 21166 // 'let' ','
- && lk != 21168 // 'loop' ','
- && lk != 21170 // 'lt' ','
- && lk != 21172 // 'mod' ','
- && lk != 21173 // 'modify' ','
- && lk != 21174 // 'module' ','
- && lk != 21176 // 'namespace' ','
- && lk != 21177 // 'namespace-node' ','
- && lk != 21178 // 'ne' ','
- && lk != 21183 // 'node' ','
- && lk != 21184 // 'nodes' ','
- && lk != 21186 // 'object' ','
- && lk != 21190 // 'only' ','
- && lk != 21191 // 'option' ','
- && lk != 21192 // 'or' ','
- && lk != 21193 // 'order' ','
- && lk != 21194 // 'ordered' ','
- && lk != 21195 // 'ordering' ','
- && lk != 21198 // 'parent' ','
- && lk != 21204 // 'preceding' ','
- && lk != 21205 // 'preceding-sibling' ','
- && lk != 21208 // 'processing-instruction' ','
- && lk != 21210 // 'rename' ','
- && lk != 21211 // 'replace' ','
- && lk != 21212 // 'return' ','
- && lk != 21213 // 'returning' ','
- && lk != 21214 // 'revalidation' ','
- && lk != 21216 // 'satisfies' ','
- && lk != 21217 // 'schema' ','
- && lk != 21218 // 'schema-attribute' ','
- && lk != 21219 // 'schema-element' ','
- && lk != 21220 // 'score' ','
- && lk != 21221 // 'self' ','
- && lk != 21226 // 'sliding' ','
- && lk != 21227 // 'some' ','
- && lk != 21228 // 'stable' ','
- && lk != 21229 // 'start' ','
- && lk != 21232 // 'strict' ','
- && lk != 21235 // 'switch' ','
- && lk != 21236 // 'text' ','
- && lk != 21240 // 'to' ','
- && lk != 21241 // 'treat' ','
- && lk != 21242 // 'try' ','
- && lk != 21243 // 'tumbling' ','
- && lk != 21244 // 'type' ','
- && lk != 21245 // 'typeswitch' ','
- && lk != 21246 // 'union' ','
- && lk != 21248 // 'unordered' ','
- && lk != 21249 // 'updating' ','
- && lk != 21252 // 'validate' ','
- && lk != 21253 // 'value' ','
- && lk != 21254 // 'variable' ','
- && lk != 21255 // 'version' ','
- && lk != 21258 // 'where' ','
- && lk != 21259 // 'while' ','
- && lk != 21262 // 'with' ','
- && lk != 21266 // 'xquery' ','
- && lk != 27141 // Wildcard ';'
- && lk != 27142 // EQName^Token ';'
- && lk != 27144 // IntegerLiteral ';'
- && lk != 27145 // DecimalLiteral ';'
- && lk != 27146 // DoubleLiteral ';'
- && lk != 27147 // StringLiteral ';'
- && lk != 27180 // '.' ';'
- && lk != 27181 // '..' ';'
- && lk != 27182 // '/' ';'
- && lk != 27206 // 'after' ';'
- && lk != 27208 // 'allowing' ';'
- && lk != 27209 // 'ancestor' ';'
- && lk != 27210 // 'ancestor-or-self' ';'
- && lk != 27211 // 'and' ';'
- && lk != 27214 // 'array' ';'
- && lk != 27215 // 'as' ';'
- && lk != 27216 // 'ascending' ';'
- && lk != 27217 // 'at' ';'
- && lk != 27218 // 'attribute' ';'
- && lk != 27219 // 'base-uri' ';'
- && lk != 27220 // 'before' ';'
- && lk != 27221 // 'boundary-space' ';'
- && lk != 27222 // 'break' ';'
- && lk != 27224 // 'case' ';'
- && lk != 27225 // 'cast' ';'
- && lk != 27226 // 'castable' ';'
- && lk != 27227 // 'catch' ';'
- && lk != 27229 // 'child' ';'
- && lk != 27230 // 'collation' ';'
- && lk != 27232 // 'comment' ';'
- && lk != 27233 // 'constraint' ';'
- && lk != 27234 // 'construction' ';'
- && lk != 27237 // 'context' ';'
- && lk != 27238 // 'continue' ';'
- && lk != 27239 // 'copy' ';'
- && lk != 27240 // 'copy-namespaces' ';'
- && lk != 27241 // 'count' ';'
- && lk != 27242 // 'decimal-format' ';'
- && lk != 27244 // 'declare' ';'
- && lk != 27245 // 'default' ';'
- && lk != 27246 // 'delete' ';'
- && lk != 27247 // 'descendant' ';'
- && lk != 27248 // 'descendant-or-self' ';'
- && lk != 27249 // 'descending' ';'
- && lk != 27254 // 'div' ';'
- && lk != 27255 // 'document' ';'
- && lk != 27256 // 'document-node' ';'
- && lk != 27257 // 'element' ';'
- && lk != 27258 // 'else' ';'
- && lk != 27259 // 'empty' ';'
- && lk != 27260 // 'empty-sequence' ';'
- && lk != 27261 // 'encoding' ';'
- && lk != 27262 // 'end' ';'
- && lk != 27264 // 'eq' ';'
- && lk != 27265 // 'every' ';'
- && lk != 27267 // 'except' ';'
- && lk != 27268 // 'exit' ';'
- && lk != 27269 // 'external' ';'
- && lk != 27270 // 'first' ';'
- && lk != 27271 // 'following' ';'
- && lk != 27272 // 'following-sibling' ';'
- && lk != 27273 // 'for' ';'
- && lk != 27277 // 'ft-option' ';'
- && lk != 27281 // 'function' ';'
- && lk != 27282 // 'ge' ';'
- && lk != 27284 // 'group' ';'
- && lk != 27286 // 'gt' ';'
- && lk != 27287 // 'idiv' ';'
- && lk != 27288 // 'if' ';'
- && lk != 27289 // 'import' ';'
- && lk != 27290 // 'in' ';'
- && lk != 27291 // 'index' ';'
- && lk != 27295 // 'insert' ';'
- && lk != 27296 // 'instance' ';'
- && lk != 27297 // 'integrity' ';'
- && lk != 27298 // 'intersect' ';'
- && lk != 27299 // 'into' ';'
- && lk != 27300 // 'is' ';'
- && lk != 27301 // 'item' ';'
- && lk != 27303 // 'json-item' ';'
- && lk != 27306 // 'last' ';'
- && lk != 27307 // 'lax' ';'
- && lk != 27308 // 'le' ';'
- && lk != 27310 // 'let' ';'
- && lk != 27312 // 'loop' ';'
- && lk != 27314 // 'lt' ';'
- && lk != 27316 // 'mod' ';'
- && lk != 27317 // 'modify' ';'
- && lk != 27318 // 'module' ';'
- && lk != 27320 // 'namespace' ';'
- && lk != 27321 // 'namespace-node' ';'
- && lk != 27322 // 'ne' ';'
- && lk != 27327 // 'node' ';'
- && lk != 27328 // 'nodes' ';'
- && lk != 27330 // 'object' ';'
- && lk != 27334 // 'only' ';'
- && lk != 27335 // 'option' ';'
- && lk != 27336 // 'or' ';'
- && lk != 27337 // 'order' ';'
- && lk != 27338 // 'ordered' ';'
- && lk != 27339 // 'ordering' ';'
- && lk != 27342 // 'parent' ';'
- && lk != 27348 // 'preceding' ';'
- && lk != 27349 // 'preceding-sibling' ';'
- && lk != 27352 // 'processing-instruction' ';'
- && lk != 27354 // 'rename' ';'
- && lk != 27355 // 'replace' ';'
- && lk != 27356 // 'return' ';'
- && lk != 27357 // 'returning' ';'
- && lk != 27358 // 'revalidation' ';'
- && lk != 27360 // 'satisfies' ';'
- && lk != 27361 // 'schema' ';'
- && lk != 27362 // 'schema-attribute' ';'
- && lk != 27363 // 'schema-element' ';'
- && lk != 27364 // 'score' ';'
- && lk != 27365 // 'self' ';'
- && lk != 27370 // 'sliding' ';'
- && lk != 27371 // 'some' ';'
- && lk != 27372 // 'stable' ';'
- && lk != 27373 // 'start' ';'
- && lk != 27376 // 'strict' ';'
- && lk != 27379 // 'switch' ';'
- && lk != 27380 // 'text' ';'
- && lk != 27384 // 'to' ';'
- && lk != 27385 // 'treat' ';'
- && lk != 27386 // 'try' ';'
- && lk != 27387 // 'tumbling' ';'
- && lk != 27388 // 'type' ';'
- && lk != 27389 // 'typeswitch' ';'
- && lk != 27390 // 'union' ';'
- && lk != 27392 // 'unordered' ';'
- && lk != 27393 // 'updating' ';'
- && lk != 27396 // 'validate' ';'
- && lk != 27397 // 'value' ';'
- && lk != 27398 // 'variable' ';'
- && lk != 27399 // 'version' ';'
- && lk != 27402 // 'where' ';'
- && lk != 27403 // 'while' ';'
- && lk != 27406 // 'with' ';'
- && lk != 27410 // 'xquery' ';'
- && lk != 90198 // 'break' 'loop'
- && lk != 90214 // 'continue' 'loop'
- && lk != 113284 // 'exit' 'returning'
- && lk != 144389 // Wildcard '}'
- && lk != 144390 // EQName^Token '}'
- && lk != 144392 // IntegerLiteral '}'
- && lk != 144393 // DecimalLiteral '}'
- && lk != 144394 // DoubleLiteral '}'
- && lk != 144395 // StringLiteral '}'
- && lk != 144428 // '.' '}'
- && lk != 144429 // '..' '}'
- && lk != 144430 // '/' '}'
- && lk != 144454 // 'after' '}'
- && lk != 144456 // 'allowing' '}'
- && lk != 144457 // 'ancestor' '}'
- && lk != 144458 // 'ancestor-or-self' '}'
- && lk != 144459 // 'and' '}'
- && lk != 144462 // 'array' '}'
- && lk != 144463 // 'as' '}'
- && lk != 144464 // 'ascending' '}'
- && lk != 144465 // 'at' '}'
- && lk != 144466 // 'attribute' '}'
- && lk != 144467 // 'base-uri' '}'
- && lk != 144468 // 'before' '}'
- && lk != 144469 // 'boundary-space' '}'
- && lk != 144470 // 'break' '}'
- && lk != 144472 // 'case' '}'
- && lk != 144473 // 'cast' '}'
- && lk != 144474 // 'castable' '}'
- && lk != 144475 // 'catch' '}'
- && lk != 144477 // 'child' '}'
- && lk != 144478 // 'collation' '}'
- && lk != 144480 // 'comment' '}'
- && lk != 144481 // 'constraint' '}'
- && lk != 144482 // 'construction' '}'
- && lk != 144485 // 'context' '}'
- && lk != 144486 // 'continue' '}'
- && lk != 144487 // 'copy' '}'
- && lk != 144488 // 'copy-namespaces' '}'
- && lk != 144489 // 'count' '}'
- && lk != 144490 // 'decimal-format' '}'
- && lk != 144492 // 'declare' '}'
- && lk != 144493 // 'default' '}'
- && lk != 144494 // 'delete' '}'
- && lk != 144495 // 'descendant' '}'
- && lk != 144496 // 'descendant-or-self' '}'
- && lk != 144497 // 'descending' '}'
- && lk != 144502 // 'div' '}'
- && lk != 144503 // 'document' '}'
- && lk != 144504 // 'document-node' '}'
- && lk != 144505 // 'element' '}'
- && lk != 144506 // 'else' '}'
- && lk != 144507 // 'empty' '}'
- && lk != 144508 // 'empty-sequence' '}'
- && lk != 144509 // 'encoding' '}'
- && lk != 144510 // 'end' '}'
- && lk != 144512 // 'eq' '}'
- && lk != 144513 // 'every' '}'
- && lk != 144515 // 'except' '}'
- && lk != 144516 // 'exit' '}'
- && lk != 144517 // 'external' '}'
- && lk != 144518 // 'first' '}'
- && lk != 144519 // 'following' '}'
- && lk != 144520 // 'following-sibling' '}'
- && lk != 144521 // 'for' '}'
- && lk != 144525 // 'ft-option' '}'
- && lk != 144529 // 'function' '}'
- && lk != 144530 // 'ge' '}'
- && lk != 144532 // 'group' '}'
- && lk != 144534 // 'gt' '}'
- && lk != 144535 // 'idiv' '}'
- && lk != 144536 // 'if' '}'
- && lk != 144537 // 'import' '}'
- && lk != 144538 // 'in' '}'
- && lk != 144539 // 'index' '}'
- && lk != 144543 // 'insert' '}'
- && lk != 144544 // 'instance' '}'
- && lk != 144545 // 'integrity' '}'
- && lk != 144546 // 'intersect' '}'
- && lk != 144547 // 'into' '}'
- && lk != 144548 // 'is' '}'
- && lk != 144549 // 'item' '}'
- && lk != 144551 // 'json-item' '}'
- && lk != 144554 // 'last' '}'
- && lk != 144555 // 'lax' '}'
- && lk != 144556 // 'le' '}'
- && lk != 144558 // 'let' '}'
- && lk != 144560 // 'loop' '}'
- && lk != 144562 // 'lt' '}'
- && lk != 144564 // 'mod' '}'
- && lk != 144565 // 'modify' '}'
- && lk != 144566 // 'module' '}'
- && lk != 144568 // 'namespace' '}'
- && lk != 144569 // 'namespace-node' '}'
- && lk != 144570 // 'ne' '}'
- && lk != 144575 // 'node' '}'
- && lk != 144576 // 'nodes' '}'
- && lk != 144578 // 'object' '}'
- && lk != 144582 // 'only' '}'
- && lk != 144583 // 'option' '}'
- && lk != 144584 // 'or' '}'
- && lk != 144585 // 'order' '}'
- && lk != 144586 // 'ordered' '}'
- && lk != 144587 // 'ordering' '}'
- && lk != 144590 // 'parent' '}'
- && lk != 144596 // 'preceding' '}'
- && lk != 144597 // 'preceding-sibling' '}'
- && lk != 144600 // 'processing-instruction' '}'
- && lk != 144602 // 'rename' '}'
- && lk != 144603 // 'replace' '}'
- && lk != 144604 // 'return' '}'
- && lk != 144605 // 'returning' '}'
- && lk != 144606 // 'revalidation' '}'
- && lk != 144608 // 'satisfies' '}'
- && lk != 144609 // 'schema' '}'
- && lk != 144610 // 'schema-attribute' '}'
- && lk != 144611 // 'schema-element' '}'
- && lk != 144612 // 'score' '}'
- && lk != 144613 // 'self' '}'
- && lk != 144618 // 'sliding' '}'
- && lk != 144619 // 'some' '}'
- && lk != 144620 // 'stable' '}'
- && lk != 144621 // 'start' '}'
- && lk != 144624 // 'strict' '}'
- && lk != 144627 // 'switch' '}'
- && lk != 144628 // 'text' '}'
- && lk != 144632 // 'to' '}'
- && lk != 144633 // 'treat' '}'
- && lk != 144634 // 'try' '}'
- && lk != 144635 // 'tumbling' '}'
- && lk != 144636 // 'type' '}'
- && lk != 144637 // 'typeswitch' '}'
- && lk != 144638 // 'union' '}'
- && lk != 144640 // 'unordered' '}'
- && lk != 144641 // 'updating' '}'
- && lk != 144644 // 'validate' '}'
- && lk != 144645 // 'value' '}'
- && lk != 144646 // 'variable' '}'
- && lk != 144647 // 'version' '}'
- && lk != 144650 // 'where' '}'
- && lk != 144651 // 'while' '}'
- && lk != 144654 // 'with' '}'
- && lk != 144658) // 'xquery' '}'
- {
- lk = memoized(6, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_Statement();
- memoize(6, e0A, -1);
- continue;
- }
- catch (p1A)
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(6, e0A, -2);
- break;
- }
- }
- }
- if (lk != -1
- && lk != 16134 // 'variable' '$'
- && lk != 27141 // Wildcard ';'
- && lk != 27142 // EQName^Token ';'
- && lk != 27144 // IntegerLiteral ';'
- && lk != 27145 // DecimalLiteral ';'
- && lk != 27146 // DoubleLiteral ';'
- && lk != 27147 // StringLiteral ';'
- && lk != 27180 // '.' ';'
- && lk != 27181 // '..' ';'
- && lk != 27182 // '/' ';'
- && lk != 27206 // 'after' ';'
- && lk != 27208 // 'allowing' ';'
- && lk != 27209 // 'ancestor' ';'
- && lk != 27210 // 'ancestor-or-self' ';'
- && lk != 27211 // 'and' ';'
- && lk != 27214 // 'array' ';'
- && lk != 27215 // 'as' ';'
- && lk != 27216 // 'ascending' ';'
- && lk != 27217 // 'at' ';'
- && lk != 27218 // 'attribute' ';'
- && lk != 27219 // 'base-uri' ';'
- && lk != 27220 // 'before' ';'
- && lk != 27221 // 'boundary-space' ';'
- && lk != 27222 // 'break' ';'
- && lk != 27224 // 'case' ';'
- && lk != 27225 // 'cast' ';'
- && lk != 27226 // 'castable' ';'
- && lk != 27227 // 'catch' ';'
- && lk != 27229 // 'child' ';'
- && lk != 27230 // 'collation' ';'
- && lk != 27232 // 'comment' ';'
- && lk != 27233 // 'constraint' ';'
- && lk != 27234 // 'construction' ';'
- && lk != 27237 // 'context' ';'
- && lk != 27238 // 'continue' ';'
- && lk != 27239 // 'copy' ';'
- && lk != 27240 // 'copy-namespaces' ';'
- && lk != 27241 // 'count' ';'
- && lk != 27242 // 'decimal-format' ';'
- && lk != 27244 // 'declare' ';'
- && lk != 27245 // 'default' ';'
- && lk != 27246 // 'delete' ';'
- && lk != 27247 // 'descendant' ';'
- && lk != 27248 // 'descendant-or-self' ';'
- && lk != 27249 // 'descending' ';'
- && lk != 27254 // 'div' ';'
- && lk != 27255 // 'document' ';'
- && lk != 27256 // 'document-node' ';'
- && lk != 27257 // 'element' ';'
- && lk != 27258 // 'else' ';'
- && lk != 27259 // 'empty' ';'
- && lk != 27260 // 'empty-sequence' ';'
- && lk != 27261 // 'encoding' ';'
- && lk != 27262 // 'end' ';'
- && lk != 27264 // 'eq' ';'
- && lk != 27265 // 'every' ';'
- && lk != 27267 // 'except' ';'
- && lk != 27268 // 'exit' ';'
- && lk != 27269 // 'external' ';'
- && lk != 27270 // 'first' ';'
- && lk != 27271 // 'following' ';'
- && lk != 27272 // 'following-sibling' ';'
- && lk != 27273 // 'for' ';'
- && lk != 27277 // 'ft-option' ';'
- && lk != 27281 // 'function' ';'
- && lk != 27282 // 'ge' ';'
- && lk != 27284 // 'group' ';'
- && lk != 27286 // 'gt' ';'
- && lk != 27287 // 'idiv' ';'
- && lk != 27288 // 'if' ';'
- && lk != 27289 // 'import' ';'
- && lk != 27290 // 'in' ';'
- && lk != 27291 // 'index' ';'
- && lk != 27295 // 'insert' ';'
- && lk != 27296 // 'instance' ';'
- && lk != 27297 // 'integrity' ';'
- && lk != 27298 // 'intersect' ';'
- && lk != 27299 // 'into' ';'
- && lk != 27300 // 'is' ';'
- && lk != 27301 // 'item' ';'
- && lk != 27303 // 'json-item' ';'
- && lk != 27306 // 'last' ';'
- && lk != 27307 // 'lax' ';'
- && lk != 27308 // 'le' ';'
- && lk != 27310 // 'let' ';'
- && lk != 27312 // 'loop' ';'
- && lk != 27314 // 'lt' ';'
- && lk != 27316 // 'mod' ';'
- && lk != 27317 // 'modify' ';'
- && lk != 27318 // 'module' ';'
- && lk != 27320 // 'namespace' ';'
- && lk != 27321 // 'namespace-node' ';'
- && lk != 27322 // 'ne' ';'
- && lk != 27327 // 'node' ';'
- && lk != 27328 // 'nodes' ';'
- && lk != 27330 // 'object' ';'
- && lk != 27334 // 'only' ';'
- && lk != 27335 // 'option' ';'
- && lk != 27336 // 'or' ';'
- && lk != 27337 // 'order' ';'
- && lk != 27338 // 'ordered' ';'
- && lk != 27339 // 'ordering' ';'
- && lk != 27342 // 'parent' ';'
- && lk != 27348 // 'preceding' ';'
- && lk != 27349 // 'preceding-sibling' ';'
- && lk != 27352 // 'processing-instruction' ';'
- && lk != 27354 // 'rename' ';'
- && lk != 27355 // 'replace' ';'
- && lk != 27356 // 'return' ';'
- && lk != 27357 // 'returning' ';'
- && lk != 27358 // 'revalidation' ';'
- && lk != 27360 // 'satisfies' ';'
- && lk != 27361 // 'schema' ';'
- && lk != 27362 // 'schema-attribute' ';'
- && lk != 27363 // 'schema-element' ';'
- && lk != 27364 // 'score' ';'
- && lk != 27365 // 'self' ';'
- && lk != 27370 // 'sliding' ';'
- && lk != 27371 // 'some' ';'
- && lk != 27372 // 'stable' ';'
- && lk != 27373 // 'start' ';'
- && lk != 27376 // 'strict' ';'
- && lk != 27379 // 'switch' ';'
- && lk != 27380 // 'text' ';'
- && lk != 27384 // 'to' ';'
- && lk != 27385 // 'treat' ';'
- && lk != 27386 // 'try' ';'
- && lk != 27387 // 'tumbling' ';'
- && lk != 27388 // 'type' ';'
- && lk != 27389 // 'typeswitch' ';'
- && lk != 27390 // 'union' ';'
- && lk != 27392 // 'unordered' ';'
- && lk != 27393 // 'updating' ';'
- && lk != 27396 // 'validate' ';'
- && lk != 27397 // 'value' ';'
- && lk != 27398 // 'variable' ';'
- && lk != 27399 // 'version' ';'
- && lk != 27402 // 'where' ';'
- && lk != 27403 // 'while' ';'
- && lk != 27406 // 'with' ';'
- && lk != 27410 // 'xquery' ';'
- && lk != 90198 // 'break' 'loop'
- && lk != 90214 // 'continue' 'loop'
- && lk != 113284) // 'exit' 'returning'
- {
- break;
- }
- try_Statement();
- }
- }
-
- function parse_StatementsAndExpr()
- {
- eventHandler.startNonterminal("StatementsAndExpr", e0);
- parse_Statements();
- whitespace();
- parse_Expr();
- eventHandler.endNonterminal("StatementsAndExpr", e0);
- }
-
- function try_StatementsAndExpr()
- {
- try_Statements();
- try_Expr();
- }
-
- function parse_StatementsAndOptionalExpr()
- {
- eventHandler.startNonterminal("StatementsAndOptionalExpr", e0);
- parse_Statements();
- if (l1 != 25 // EOF
- && l1 != 282) // '}'
- {
- whitespace();
- parse_Expr();
- }
- eventHandler.endNonterminal("StatementsAndOptionalExpr", e0);
- }
-
- function try_StatementsAndOptionalExpr()
- {
- try_Statements();
- if (l1 != 25 // EOF
- && l1 != 282) // '}'
- {
- try_Expr();
- }
- }
-
- function parse_Statement()
- {
- eventHandler.startNonterminal("Statement", e0);
- switch (l1)
- {
- case 132: // 'exit'
- lookahead2W(189); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
- break;
- case 137: // 'for'
- lookahead2W(196); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
- break;
- case 174: // 'let'
- lookahead2W(193); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
- break;
- case 250: // 'try'
- lookahead2W(190); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
- break;
- case 262: // 'variable'
- lookahead2W(187); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
- break;
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 31: // '$'
- case 32: // '%'
- lookahead2W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 86: // 'break'
- case 102: // 'continue'
- lookahead2W(188); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
- break;
- case 152: // 'if'
- case 243: // 'switch'
- case 253: // 'typeswitch'
- case 267: // 'while'
- lookahead2W(185); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
- break;
- default:
- lk = l1;
- }
- if (lk == 2836 // '{' Wildcard
- || lk == 3103 // '$' EQName^Token
- || lk == 3104 // '%' EQName^Token
- || lk == 3348 // '{' EQName^Token
- || lk == 4372 // '{' IntegerLiteral
- || lk == 4884 // '{' DecimalLiteral
- || lk == 5396 // '{' DoubleLiteral
- || lk == 5908 // '{' StringLiteral
- || lk == 16148 // '{' '$'
- || lk == 16660 // '{' '%'
- || lk == 17675 // 'while' '('
- || lk == 17684 // '{' '('
- || lk == 18196 // '{' '(#'
- || lk == 20756 // '{' '+'
- || lk == 21780 // '{' '-'
- || lk == 22804 // '{' '.'
- || lk == 23316 // '{' '..'
- || lk == 23828 // '{' '/'
- || lk == 24340 // '{' '//'
- || lk == 27924 // '{' '<'
- || lk == 28436 // '{' '<!--'
- || lk == 30484 // '{' '<?'
- || lk == 34068 // '{' '@'
- || lk == 35092 // '{' '['
- || lk == 35871 // '$' 'after'
- || lk == 35872 // '%' 'after'
- || lk == 36116 // '{' 'after'
- || lk == 36895 // '$' 'allowing'
- || lk == 36896 // '%' 'allowing'
- || lk == 37140 // '{' 'allowing'
- || lk == 37407 // '$' 'ancestor'
- || lk == 37408 // '%' 'ancestor'
- || lk == 37652 // '{' 'ancestor'
- || lk == 37919 // '$' 'ancestor-or-self'
- || lk == 37920 // '%' 'ancestor-or-self'
- || lk == 38164 // '{' 'ancestor-or-self'
- || lk == 38431 // '$' 'and'
- || lk == 38432 // '%' 'and'
- || lk == 38676 // '{' 'and'
- || lk == 39700 // '{' 'append'
- || lk == 39967 // '$' 'array'
- || lk == 39968 // '%' 'array'
- || lk == 40212 // '{' 'array'
- || lk == 40479 // '$' 'as'
- || lk == 40480 // '%' 'as'
- || lk == 40724 // '{' 'as'
- || lk == 40991 // '$' 'ascending'
- || lk == 40992 // '%' 'ascending'
- || lk == 41236 // '{' 'ascending'
- || lk == 41503 // '$' 'at'
- || lk == 41504 // '%' 'at'
- || lk == 41748 // '{' 'at'
- || lk == 42015 // '$' 'attribute'
- || lk == 42016 // '%' 'attribute'
- || lk == 42260 // '{' 'attribute'
- || lk == 42527 // '$' 'base-uri'
- || lk == 42528 // '%' 'base-uri'
- || lk == 42772 // '{' 'base-uri'
- || lk == 43039 // '$' 'before'
- || lk == 43040 // '%' 'before'
- || lk == 43284 // '{' 'before'
- || lk == 43551 // '$' 'boundary-space'
- || lk == 43552 // '%' 'boundary-space'
- || lk == 43796 // '{' 'boundary-space'
- || lk == 44063 // '$' 'break'
- || lk == 44064 // '%' 'break'
- || lk == 44308 // '{' 'break'
- || lk == 45087 // '$' 'case'
- || lk == 45088 // '%' 'case'
- || lk == 45332 // '{' 'case'
- || lk == 45599 // '$' 'cast'
- || lk == 45600 // '%' 'cast'
- || lk == 45844 // '{' 'cast'
- || lk == 46111 // '$' 'castable'
- || lk == 46112 // '%' 'castable'
- || lk == 46356 // '{' 'castable'
- || lk == 46623 // '$' 'catch'
- || lk == 46624 // '%' 'catch'
- || lk == 46868 // '{' 'catch'
- || lk == 47647 // '$' 'child'
- || lk == 47648 // '%' 'child'
- || lk == 47892 // '{' 'child'
- || lk == 48159 // '$' 'collation'
- || lk == 48160 // '%' 'collation'
- || lk == 48404 // '{' 'collation'
- || lk == 49183 // '$' 'comment'
- || lk == 49184 // '%' 'comment'
- || lk == 49428 // '{' 'comment'
- || lk == 49695 // '$' 'constraint'
- || lk == 49696 // '%' 'constraint'
- || lk == 49940 // '{' 'constraint'
- || lk == 50207 // '$' 'construction'
- || lk == 50208 // '%' 'construction'
- || lk == 50452 // '{' 'construction'
- || lk == 51743 // '$' 'context'
- || lk == 51744 // '%' 'context'
- || lk == 51988 // '{' 'context'
- || lk == 52255 // '$' 'continue'
- || lk == 52256 // '%' 'continue'
- || lk == 52500 // '{' 'continue'
- || lk == 52767 // '$' 'copy'
- || lk == 52768 // '%' 'copy'
- || lk == 53012 // '{' 'copy'
- || lk == 53279 // '$' 'copy-namespaces'
- || lk == 53280 // '%' 'copy-namespaces'
- || lk == 53524 // '{' 'copy-namespaces'
- || lk == 53791 // '$' 'count'
- || lk == 53792 // '%' 'count'
- || lk == 54036 // '{' 'count'
- || lk == 54303 // '$' 'decimal-format'
- || lk == 54304 // '%' 'decimal-format'
- || lk == 54548 // '{' 'decimal-format'
- || lk == 55327 // '$' 'declare'
- || lk == 55328 // '%' 'declare'
- || lk == 55572 // '{' 'declare'
- || lk == 55839 // '$' 'default'
- || lk == 55840 // '%' 'default'
- || lk == 56084 // '{' 'default'
- || lk == 56351 // '$' 'delete'
- || lk == 56352 // '%' 'delete'
- || lk == 56596 // '{' 'delete'
- || lk == 56863 // '$' 'descendant'
- || lk == 56864 // '%' 'descendant'
- || lk == 57108 // '{' 'descendant'
- || lk == 57375 // '$' 'descendant-or-self'
- || lk == 57376 // '%' 'descendant-or-self'
- || lk == 57620 // '{' 'descendant-or-self'
- || lk == 57887 // '$' 'descending'
- || lk == 57888 // '%' 'descending'
- || lk == 58132 // '{' 'descending'
- || lk == 60447 // '$' 'div'
- || lk == 60448 // '%' 'div'
- || lk == 60692 // '{' 'div'
- || lk == 60959 // '$' 'document'
- || lk == 60960 // '%' 'document'
- || lk == 61204 // '{' 'document'
- || lk == 61471 // '$' 'document-node'
- || lk == 61472 // '%' 'document-node'
- || lk == 61716 // '{' 'document-node'
- || lk == 61983 // '$' 'element'
- || lk == 61984 // '%' 'element'
- || lk == 62228 // '{' 'element'
- || lk == 62495 // '$' 'else'
- || lk == 62496 // '%' 'else'
- || lk == 62740 // '{' 'else'
- || lk == 63007 // '$' 'empty'
- || lk == 63008 // '%' 'empty'
- || lk == 63252 // '{' 'empty'
- || lk == 63519 // '$' 'empty-sequence'
- || lk == 63520 // '%' 'empty-sequence'
- || lk == 63764 // '{' 'empty-sequence'
- || lk == 64031 // '$' 'encoding'
- || lk == 64032 // '%' 'encoding'
- || lk == 64276 // '{' 'encoding'
- || lk == 64543 // '$' 'end'
- || lk == 64544 // '%' 'end'
- || lk == 64788 // '{' 'end'
- || lk == 65567 // '$' 'eq'
- || lk == 65568 // '%' 'eq'
- || lk == 65812 // '{' 'eq'
- || lk == 66079 // '$' 'every'
- || lk == 66080 // '%' 'every'
- || lk == 66324 // '{' 'every'
- || lk == 67103 // '$' 'except'
- || lk == 67104 // '%' 'except'
- || lk == 67348 // '{' 'except'
- || lk == 67615 // '$' 'exit'
- || lk == 67616 // '%' 'exit'
- || lk == 67860 // '{' 'exit'
- || lk == 68127 // '$' 'external'
- || lk == 68128 // '%' 'external'
- || lk == 68372 // '{' 'external'
- || lk == 68639 // '$' 'first'
- || lk == 68640 // '%' 'first'
- || lk == 68884 // '{' 'first'
- || lk == 69151 // '$' 'following'
- || lk == 69152 // '%' 'following'
- || lk == 69396 // '{' 'following'
- || lk == 69663 // '$' 'following-sibling'
- || lk == 69664 // '%' 'following-sibling'
- || lk == 69908 // '{' 'following-sibling'
- || lk == 70175 // '$' 'for'
- || lk == 70176 // '%' 'for'
- || lk == 70420 // '{' 'for'
- || lk == 72223 // '$' 'ft-option'
- || lk == 72224 // '%' 'ft-option'
- || lk == 72468 // '{' 'ft-option'
- || lk == 74271 // '$' 'function'
- || lk == 74272 // '%' 'function'
- || lk == 74516 // '{' 'function'
- || lk == 74783 // '$' 'ge'
- || lk == 74784 // '%' 'ge'
- || lk == 75028 // '{' 'ge'
- || lk == 75807 // '$' 'group'
- || lk == 75808 // '%' 'group'
- || lk == 76052 // '{' 'group'
- || lk == 76831 // '$' 'gt'
- || lk == 76832 // '%' 'gt'
- || lk == 77076 // '{' 'gt'
- || lk == 77343 // '$' 'idiv'
- || lk == 77344 // '%' 'idiv'
- || lk == 77588 // '{' 'idiv'
- || lk == 77855 // '$' 'if'
- || lk == 77856 // '%' 'if'
- || lk == 78100 // '{' 'if'
- || lk == 78367 // '$' 'import'
- || lk == 78368 // '%' 'import'
- || lk == 78612 // '{' 'import'
- || lk == 78879 // '$' 'in'
- || lk == 78880 // '%' 'in'
- || lk == 79124 // '{' 'in'
- || lk == 79391 // '$' 'index'
- || lk == 79392 // '%' 'index'
- || lk == 79636 // '{' 'index'
- || lk == 81439 // '$' 'insert'
- || lk == 81440 // '%' 'insert'
- || lk == 81684 // '{' 'insert'
- || lk == 81951 // '$' 'instance'
- || lk == 81952 // '%' 'instance'
- || lk == 82196 // '{' 'instance'
- || lk == 82463 // '$' 'integrity'
- || lk == 82464 // '%' 'integrity'
- || lk == 82708 // '{' 'integrity'
- || lk == 82975 // '$' 'intersect'
- || lk == 82976 // '%' 'intersect'
- || lk == 83220 // '{' 'intersect'
- || lk == 83487 // '$' 'into'
- || lk == 83488 // '%' 'into'
- || lk == 83732 // '{' 'into'
- || lk == 83999 // '$' 'is'
- || lk == 84000 // '%' 'is'
- || lk == 84244 // '{' 'is'
- || lk == 84511 // '$' 'item'
- || lk == 84512 // '%' 'item'
- || lk == 84756 // '{' 'item'
- || lk == 85535 // '$' 'json-item'
- || lk == 85536 // '%' 'json-item'
- || lk == 85780 // '{' 'json-item'
- || lk == 87071 // '$' 'last'
- || lk == 87072 // '%' 'last'
- || lk == 87316 // '{' 'last'
- || lk == 87583 // '$' 'lax'
- || lk == 87584 // '%' 'lax'
- || lk == 87828 // '{' 'lax'
- || lk == 88095 // '$' 'le'
- || lk == 88096 // '%' 'le'
- || lk == 88340 // '{' 'le'
- || lk == 89119 // '$' 'let'
- || lk == 89120 // '%' 'let'
- || lk == 89364 // '{' 'let'
- || lk == 90143 // '$' 'loop'
- || lk == 90144 // '%' 'loop'
- || lk == 90388 // '{' 'loop'
- || lk == 91167 // '$' 'lt'
- || lk == 91168 // '%' 'lt'
- || lk == 91412 // '{' 'lt'
- || lk == 92191 // '$' 'mod'
- || lk == 92192 // '%' 'mod'
- || lk == 92436 // '{' 'mod'
- || lk == 92703 // '$' 'modify'
- || lk == 92704 // '%' 'modify'
- || lk == 92948 // '{' 'modify'
- || lk == 93215 // '$' 'module'
- || lk == 93216 // '%' 'module'
- || lk == 93460 // '{' 'module'
- || lk == 94239 // '$' 'namespace'
- || lk == 94240 // '%' 'namespace'
- || lk == 94484 // '{' 'namespace'
- || lk == 94751 // '$' 'namespace-node'
- || lk == 94752 // '%' 'namespace-node'
- || lk == 94996 // '{' 'namespace-node'
- || lk == 95263 // '$' 'ne'
- || lk == 95264 // '%' 'ne'
- || lk == 95508 // '{' 'ne'
- || lk == 97823 // '$' 'node'
- || lk == 97824 // '%' 'node'
- || lk == 98068 // '{' 'node'
- || lk == 98335 // '$' 'nodes'
- || lk == 98336 // '%' 'nodes'
- || lk == 98580 // '{' 'nodes'
- || lk == 99359 // '$' 'object'
- || lk == 99360 // '%' 'object'
- || lk == 99604 // '{' 'object'
- || lk == 101407 // '$' 'only'
- || lk == 101408 // '%' 'only'
- || lk == 101652 // '{' 'only'
- || lk == 101919 // '$' 'option'
- || lk == 101920 // '%' 'option'
- || lk == 102164 // '{' 'option'
- || lk == 102431 // '$' 'or'
- || lk == 102432 // '%' 'or'
- || lk == 102676 // '{' 'or'
- || lk == 102943 // '$' 'order'
- || lk == 102944 // '%' 'order'
- || lk == 103188 // '{' 'order'
- || lk == 103455 // '$' 'ordered'
- || lk == 103456 // '%' 'ordered'
- || lk == 103700 // '{' 'ordered'
- || lk == 103967 // '$' 'ordering'
- || lk == 103968 // '%' 'ordering'
- || lk == 104212 // '{' 'ordering'
- || lk == 105503 // '$' 'parent'
- || lk == 105504 // '%' 'parent'
- || lk == 105748 // '{' 'parent'
- || lk == 108575 // '$' 'preceding'
- || lk == 108576 // '%' 'preceding'
- || lk == 108820 // '{' 'preceding'
- || lk == 109087 // '$' 'preceding-sibling'
- || lk == 109088 // '%' 'preceding-sibling'
- || lk == 109332 // '{' 'preceding-sibling'
- || lk == 110623 // '$' 'processing-instruction'
- || lk == 110624 // '%' 'processing-instruction'
- || lk == 110868 // '{' 'processing-instruction'
- || lk == 111647 // '$' 'rename'
- || lk == 111648 // '%' 'rename'
- || lk == 111892 // '{' 'rename'
- || lk == 112159 // '$' 'replace'
- || lk == 112160 // '%' 'replace'
- || lk == 112404 // '{' 'replace'
- || lk == 112671 // '$' 'return'
- || lk == 112672 // '%' 'return'
- || lk == 112916 // '{' 'return'
- || lk == 113183 // '$' 'returning'
- || lk == 113184 // '%' 'returning'
- || lk == 113428 // '{' 'returning'
- || lk == 113695 // '$' 'revalidation'
- || lk == 113696 // '%' 'revalidation'
- || lk == 113940 // '{' 'revalidation'
- || lk == 114719 // '$' 'satisfies'
- || lk == 114720 // '%' 'satisfies'
- || lk == 114964 // '{' 'satisfies'
- || lk == 115231 // '$' 'schema'
- || lk == 115232 // '%' 'schema'
- || lk == 115476 // '{' 'schema'
- || lk == 115743 // '$' 'schema-attribute'
- || lk == 115744 // '%' 'schema-attribute'
- || lk == 115988 // '{' 'schema-attribute'
- || lk == 116255 // '$' 'schema-element'
- || lk == 116256 // '%' 'schema-element'
- || lk == 116500 // '{' 'schema-element'
- || lk == 116767 // '$' 'score'
- || lk == 116768 // '%' 'score'
- || lk == 117012 // '{' 'score'
- || lk == 117279 // '$' 'self'
- || lk == 117280 // '%' 'self'
- || lk == 117524 // '{' 'self'
- || lk == 119839 // '$' 'sliding'
- || lk == 119840 // '%' 'sliding'
- || lk == 120084 // '{' 'sliding'
- || lk == 120351 // '$' 'some'
- || lk == 120352 // '%' 'some'
- || lk == 120596 // '{' 'some'
- || lk == 120863 // '$' 'stable'
- || lk == 120864 // '%' 'stable'
- || lk == 121108 // '{' 'stable'
- || lk == 121375 // '$' 'start'
- || lk == 121376 // '%' 'start'
- || lk == 121620 // '{' 'start'
- || lk == 122911 // '$' 'strict'
- || lk == 122912 // '%' 'strict'
- || lk == 123156 // '{' 'strict'
- || lk == 124447 // '$' 'switch'
- || lk == 124448 // '%' 'switch'
- || lk == 124692 // '{' 'switch'
- || lk == 124959 // '$' 'text'
- || lk == 124960 // '%' 'text'
- || lk == 125204 // '{' 'text'
- || lk == 127007 // '$' 'to'
- || lk == 127008 // '%' 'to'
- || lk == 127252 // '{' 'to'
- || lk == 127519 // '$' 'treat'
- || lk == 127520 // '%' 'treat'
- || lk == 127764 // '{' 'treat'
- || lk == 128031 // '$' 'try'
- || lk == 128032 // '%' 'try'
- || lk == 128276 // '{' 'try'
- || lk == 128543 // '$' 'tumbling'
- || lk == 128544 // '%' 'tumbling'
- || lk == 128788 // '{' 'tumbling'
- || lk == 129055 // '$' 'type'
- || lk == 129056 // '%' 'type'
- || lk == 129300 // '{' 'type'
- || lk == 129567 // '$' 'typeswitch'
- || lk == 129568 // '%' 'typeswitch'
- || lk == 129812 // '{' 'typeswitch'
- || lk == 130079 // '$' 'union'
- || lk == 130080 // '%' 'union'
- || lk == 130324 // '{' 'union'
- || lk == 131103 // '$' 'unordered'
- || lk == 131104 // '%' 'unordered'
- || lk == 131348 // '{' 'unordered'
- || lk == 131615 // '$' 'updating'
- || lk == 131616 // '%' 'updating'
- || lk == 131860 // '{' 'updating'
- || lk == 133151 // '$' 'validate'
- || lk == 133152 // '%' 'validate'
- || lk == 133396 // '{' 'validate'
- || lk == 133663 // '$' 'value'
- || lk == 133664 // '%' 'value'
- || lk == 133908 // '{' 'value'
- || lk == 134175 // '$' 'variable'
- || lk == 134176 // '%' 'variable'
- || lk == 134420 // '{' 'variable'
- || lk == 134687 // '$' 'version'
- || lk == 134688 // '%' 'version'
- || lk == 134932 // '{' 'version'
- || lk == 136223 // '$' 'where'
- || lk == 136224 // '%' 'where'
- || lk == 136468 // '{' 'where'
- || lk == 136735 // '$' 'while'
- || lk == 136736 // '%' 'while'
- || lk == 136980 // '{' 'while'
- || lk == 138271 // '$' 'with'
- || lk == 138272 // '%' 'with'
- || lk == 138516 // '{' 'with'
- || lk == 140319 // '$' 'xquery'
- || lk == 140320 // '%' 'xquery'
- || lk == 140564 // '{' 'xquery'
- || lk == 141588 // '{' '{'
- || lk == 142612 // '{' '{|'
- || lk == 144660) // '{' '}'
- {
- lk = memoized(7, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_ApplyStatement();
- lk = -1;
- }
- catch (p1A)
- {
- try
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- try_AssignStatement();
- lk = -2;
- }
- catch (p2A)
- {
- try
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- try_BlockStatement();
- lk = -3;
- }
- catch (p3A)
- {
- try
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- try_VarDeclStatement();
- lk = -12;
- }
- catch (p12A)
- {
- lk = -13;
- }
- }
- }
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(7, e0, lk);
- }
- }
- switch (lk)
- {
- case -2:
- parse_AssignStatement();
- break;
- case -3:
- parse_BlockStatement();
- break;
- case 90198: // 'break' 'loop'
- parse_BreakStatement();
- break;
- case 90214: // 'continue' 'loop'
- parse_ContinueStatement();
- break;
- case 113284: // 'exit' 'returning'
- parse_ExitStatement();
- break;
- case 16009: // 'for' '$'
- case 16046: // 'let' '$'
- case 116910: // 'let' 'score'
- case 119945: // 'for' 'sliding'
- case 128649: // 'for' 'tumbling'
- parse_FLWORStatement();
- break;
- case 17560: // 'if' '('
- parse_IfStatement();
- break;
- case 17651: // 'switch' '('
- parse_SwitchStatement();
- break;
- case 141562: // 'try' '{'
- parse_TryCatchStatement();
- break;
- case 17661: // 'typeswitch' '('
- parse_TypeswitchStatement();
- break;
- case -12:
- case 16134: // 'variable' '$'
- parse_VarDeclStatement();
- break;
- case -13:
- parse_WhileStatement();
- break;
- default:
- parse_ApplyStatement();
- }
- eventHandler.endNonterminal("Statement", e0);
- }
-
- function try_Statement()
- {
- switch (l1)
- {
- case 132: // 'exit'
- lookahead2W(189); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
- break;
- case 137: // 'for'
- lookahead2W(196); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
- break;
- case 174: // 'let'
- lookahead2W(193); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
- break;
- case 250: // 'try'
- lookahead2W(190); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
- break;
- case 262: // 'variable'
- lookahead2W(187); // S^WS | '!' | '!=' | '#' | '$' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' |
- break;
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 31: // '$'
- case 32: // '%'
- lookahead2W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 86: // 'break'
- case 102: // 'continue'
- lookahead2W(188); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
- break;
- case 152: // 'if'
- case 243: // 'switch'
- case 253: // 'typeswitch'
- case 267: // 'while'
- lookahead2W(185); // S^WS | '!' | '!=' | '#' | '(' | '(:' | '*' | '+' | '-' | '/' | '//' | ';' | '<' |
- break;
- default:
- lk = l1;
- }
- if (lk == 2836 // '{' Wildcard
- || lk == 3103 // '$' EQName^Token
- || lk == 3104 // '%' EQName^Token
- || lk == 3348 // '{' EQName^Token
- || lk == 4372 // '{' IntegerLiteral
- || lk == 4884 // '{' DecimalLiteral
- || lk == 5396 // '{' DoubleLiteral
- || lk == 5908 // '{' StringLiteral
- || lk == 16148 // '{' '$'
- || lk == 16660 // '{' '%'
- || lk == 17675 // 'while' '('
- || lk == 17684 // '{' '('
- || lk == 18196 // '{' '(#'
- || lk == 20756 // '{' '+'
- || lk == 21780 // '{' '-'
- || lk == 22804 // '{' '.'
- || lk == 23316 // '{' '..'
- || lk == 23828 // '{' '/'
- || lk == 24340 // '{' '//'
- || lk == 27924 // '{' '<'
- || lk == 28436 // '{' '<!--'
- || lk == 30484 // '{' '<?'
- || lk == 34068 // '{' '@'
- || lk == 35092 // '{' '['
- || lk == 35871 // '$' 'after'
- || lk == 35872 // '%' 'after'
- || lk == 36116 // '{' 'after'
- || lk == 36895 // '$' 'allowing'
- || lk == 36896 // '%' 'allowing'
- || lk == 37140 // '{' 'allowing'
- || lk == 37407 // '$' 'ancestor'
- || lk == 37408 // '%' 'ancestor'
- || lk == 37652 // '{' 'ancestor'
- || lk == 37919 // '$' 'ancestor-or-self'
- || lk == 37920 // '%' 'ancestor-or-self'
- || lk == 38164 // '{' 'ancestor-or-self'
- || lk == 38431 // '$' 'and'
- || lk == 38432 // '%' 'and'
- || lk == 38676 // '{' 'and'
- || lk == 39700 // '{' 'append'
- || lk == 39967 // '$' 'array'
- || lk == 39968 // '%' 'array'
- || lk == 40212 // '{' 'array'
- || lk == 40479 // '$' 'as'
- || lk == 40480 // '%' 'as'
- || lk == 40724 // '{' 'as'
- || lk == 40991 // '$' 'ascending'
- || lk == 40992 // '%' 'ascending'
- || lk == 41236 // '{' 'ascending'
- || lk == 41503 // '$' 'at'
- || lk == 41504 // '%' 'at'
- || lk == 41748 // '{' 'at'
- || lk == 42015 // '$' 'attribute'
- || lk == 42016 // '%' 'attribute'
- || lk == 42260 // '{' 'attribute'
- || lk == 42527 // '$' 'base-uri'
- || lk == 42528 // '%' 'base-uri'
- || lk == 42772 // '{' 'base-uri'
- || lk == 43039 // '$' 'before'
- || lk == 43040 // '%' 'before'
- || lk == 43284 // '{' 'before'
- || lk == 43551 // '$' 'boundary-space'
- || lk == 43552 // '%' 'boundary-space'
- || lk == 43796 // '{' 'boundary-space'
- || lk == 44063 // '$' 'break'
- || lk == 44064 // '%' 'break'
- || lk == 44308 // '{' 'break'
- || lk == 45087 // '$' 'case'
- || lk == 45088 // '%' 'case'
- || lk == 45332 // '{' 'case'
- || lk == 45599 // '$' 'cast'
- || lk == 45600 // '%' 'cast'
- || lk == 45844 // '{' 'cast'
- || lk == 46111 // '$' 'castable'
- || lk == 46112 // '%' 'castable'
- || lk == 46356 // '{' 'castable'
- || lk == 46623 // '$' 'catch'
- || lk == 46624 // '%' 'catch'
- || lk == 46868 // '{' 'catch'
- || lk == 47647 // '$' 'child'
- || lk == 47648 // '%' 'child'
- || lk == 47892 // '{' 'child'
- || lk == 48159 // '$' 'collation'
- || lk == 48160 // '%' 'collation'
- || lk == 48404 // '{' 'collation'
- || lk == 49183 // '$' 'comment'
- || lk == 49184 // '%' 'comment'
- || lk == 49428 // '{' 'comment'
- || lk == 49695 // '$' 'constraint'
- || lk == 49696 // '%' 'constraint'
- || lk == 49940 // '{' 'constraint'
- || lk == 50207 // '$' 'construction'
- || lk == 50208 // '%' 'construction'
- || lk == 50452 // '{' 'construction'
- || lk == 51743 // '$' 'context'
- || lk == 51744 // '%' 'context'
- || lk == 51988 // '{' 'context'
- || lk == 52255 // '$' 'continue'
- || lk == 52256 // '%' 'continue'
- || lk == 52500 // '{' 'continue'
- || lk == 52767 // '$' 'copy'
- || lk == 52768 // '%' 'copy'
- || lk == 53012 // '{' 'copy'
- || lk == 53279 // '$' 'copy-namespaces'
- || lk == 53280 // '%' 'copy-namespaces'
- || lk == 53524 // '{' 'copy-namespaces'
- || lk == 53791 // '$' 'count'
- || lk == 53792 // '%' 'count'
- || lk == 54036 // '{' 'count'
- || lk == 54303 // '$' 'decimal-format'
- || lk == 54304 // '%' 'decimal-format'
- || lk == 54548 // '{' 'decimal-format'
- || lk == 55327 // '$' 'declare'
- || lk == 55328 // '%' 'declare'
- || lk == 55572 // '{' 'declare'
- || lk == 55839 // '$' 'default'
- || lk == 55840 // '%' 'default'
- || lk == 56084 // '{' 'default'
- || lk == 56351 // '$' 'delete'
- || lk == 56352 // '%' 'delete'
- || lk == 56596 // '{' 'delete'
- || lk == 56863 // '$' 'descendant'
- || lk == 56864 // '%' 'descendant'
- || lk == 57108 // '{' 'descendant'
- || lk == 57375 // '$' 'descendant-or-self'
- || lk == 57376 // '%' 'descendant-or-self'
- || lk == 57620 // '{' 'descendant-or-self'
- || lk == 57887 // '$' 'descending'
- || lk == 57888 // '%' 'descending'
- || lk == 58132 // '{' 'descending'
- || lk == 60447 // '$' 'div'
- || lk == 60448 // '%' 'div'
- || lk == 60692 // '{' 'div'
- || lk == 60959 // '$' 'document'
- || lk == 60960 // '%' 'document'
- || lk == 61204 // '{' 'document'
- || lk == 61471 // '$' 'document-node'
- || lk == 61472 // '%' 'document-node'
- || lk == 61716 // '{' 'document-node'
- || lk == 61983 // '$' 'element'
- || lk == 61984 // '%' 'element'
- || lk == 62228 // '{' 'element'
- || lk == 62495 // '$' 'else'
- || lk == 62496 // '%' 'else'
- || lk == 62740 // '{' 'else'
- || lk == 63007 // '$' 'empty'
- || lk == 63008 // '%' 'empty'
- || lk == 63252 // '{' 'empty'
- || lk == 63519 // '$' 'empty-sequence'
- || lk == 63520 // '%' 'empty-sequence'
- || lk == 63764 // '{' 'empty-sequence'
- || lk == 64031 // '$' 'encoding'
- || lk == 64032 // '%' 'encoding'
- || lk == 64276 // '{' 'encoding'
- || lk == 64543 // '$' 'end'
- || lk == 64544 // '%' 'end'
- || lk == 64788 // '{' 'end'
- || lk == 65567 // '$' 'eq'
- || lk == 65568 // '%' 'eq'
- || lk == 65812 // '{' 'eq'
- || lk == 66079 // '$' 'every'
- || lk == 66080 // '%' 'every'
- || lk == 66324 // '{' 'every'
- || lk == 67103 // '$' 'except'
- || lk == 67104 // '%' 'except'
- || lk == 67348 // '{' 'except'
- || lk == 67615 // '$' 'exit'
- || lk == 67616 // '%' 'exit'
- || lk == 67860 // '{' 'exit'
- || lk == 68127 // '$' 'external'
- || lk == 68128 // '%' 'external'
- || lk == 68372 // '{' 'external'
- || lk == 68639 // '$' 'first'
- || lk == 68640 // '%' 'first'
- || lk == 68884 // '{' 'first'
- || lk == 69151 // '$' 'following'
- || lk == 69152 // '%' 'following'
- || lk == 69396 // '{' 'following'
- || lk == 69663 // '$' 'following-sibling'
- || lk == 69664 // '%' 'following-sibling'
- || lk == 69908 // '{' 'following-sibling'
- || lk == 70175 // '$' 'for'
- || lk == 70176 // '%' 'for'
- || lk == 70420 // '{' 'for'
- || lk == 72223 // '$' 'ft-option'
- || lk == 72224 // '%' 'ft-option'
- || lk == 72468 // '{' 'ft-option'
- || lk == 74271 // '$' 'function'
- || lk == 74272 // '%' 'function'
- || lk == 74516 // '{' 'function'
- || lk == 74783 // '$' 'ge'
- || lk == 74784 // '%' 'ge'
- || lk == 75028 // '{' 'ge'
- || lk == 75807 // '$' 'group'
- || lk == 75808 // '%' 'group'
- || lk == 76052 // '{' 'group'
- || lk == 76831 // '$' 'gt'
- || lk == 76832 // '%' 'gt'
- || lk == 77076 // '{' 'gt'
- || lk == 77343 // '$' 'idiv'
- || lk == 77344 // '%' 'idiv'
- || lk == 77588 // '{' 'idiv'
- || lk == 77855 // '$' 'if'
- || lk == 77856 // '%' 'if'
- || lk == 78100 // '{' 'if'
- || lk == 78367 // '$' 'import'
- || lk == 78368 // '%' 'import'
- || lk == 78612 // '{' 'import'
- || lk == 78879 // '$' 'in'
- || lk == 78880 // '%' 'in'
- || lk == 79124 // '{' 'in'
- || lk == 79391 // '$' 'index'
- || lk == 79392 // '%' 'index'
- || lk == 79636 // '{' 'index'
- || lk == 81439 // '$' 'insert'
- || lk == 81440 // '%' 'insert'
- || lk == 81684 // '{' 'insert'
- || lk == 81951 // '$' 'instance'
- || lk == 81952 // '%' 'instance'
- || lk == 82196 // '{' 'instance'
- || lk == 82463 // '$' 'integrity'
- || lk == 82464 // '%' 'integrity'
- || lk == 82708 // '{' 'integrity'
- || lk == 82975 // '$' 'intersect'
- || lk == 82976 // '%' 'intersect'
- || lk == 83220 // '{' 'intersect'
- || lk == 83487 // '$' 'into'
- || lk == 83488 // '%' 'into'
- || lk == 83732 // '{' 'into'
- || lk == 83999 // '$' 'is'
- || lk == 84000 // '%' 'is'
- || lk == 84244 // '{' 'is'
- || lk == 84511 // '$' 'item'
- || lk == 84512 // '%' 'item'
- || lk == 84756 // '{' 'item'
- || lk == 85535 // '$' 'json-item'
- || lk == 85536 // '%' 'json-item'
- || lk == 85780 // '{' 'json-item'
- || lk == 87071 // '$' 'last'
- || lk == 87072 // '%' 'last'
- || lk == 87316 // '{' 'last'
- || lk == 87583 // '$' 'lax'
- || lk == 87584 // '%' 'lax'
- || lk == 87828 // '{' 'lax'
- || lk == 88095 // '$' 'le'
- || lk == 88096 // '%' 'le'
- || lk == 88340 // '{' 'le'
- || lk == 89119 // '$' 'let'
- || lk == 89120 // '%' 'let'
- || lk == 89364 // '{' 'let'
- || lk == 90143 // '$' 'loop'
- || lk == 90144 // '%' 'loop'
- || lk == 90388 // '{' 'loop'
- || lk == 91167 // '$' 'lt'
- || lk == 91168 // '%' 'lt'
- || lk == 91412 // '{' 'lt'
- || lk == 92191 // '$' 'mod'
- || lk == 92192 // '%' 'mod'
- || lk == 92436 // '{' 'mod'
- || lk == 92703 // '$' 'modify'
- || lk == 92704 // '%' 'modify'
- || lk == 92948 // '{' 'modify'
- || lk == 93215 // '$' 'module'
- || lk == 93216 // '%' 'module'
- || lk == 93460 // '{' 'module'
- || lk == 94239 // '$' 'namespace'
- || lk == 94240 // '%' 'namespace'
- || lk == 94484 // '{' 'namespace'
- || lk == 94751 // '$' 'namespace-node'
- || lk == 94752 // '%' 'namespace-node'
- || lk == 94996 // '{' 'namespace-node'
- || lk == 95263 // '$' 'ne'
- || lk == 95264 // '%' 'ne'
- || lk == 95508 // '{' 'ne'
- || lk == 97823 // '$' 'node'
- || lk == 97824 // '%' 'node'
- || lk == 98068 // '{' 'node'
- || lk == 98335 // '$' 'nodes'
- || lk == 98336 // '%' 'nodes'
- || lk == 98580 // '{' 'nodes'
- || lk == 99359 // '$' 'object'
- || lk == 99360 // '%' 'object'
- || lk == 99604 // '{' 'object'
- || lk == 101407 // '$' 'only'
- || lk == 101408 // '%' 'only'
- || lk == 101652 // '{' 'only'
- || lk == 101919 // '$' 'option'
- || lk == 101920 // '%' 'option'
- || lk == 102164 // '{' 'option'
- || lk == 102431 // '$' 'or'
- || lk == 102432 // '%' 'or'
- || lk == 102676 // '{' 'or'
- || lk == 102943 // '$' 'order'
- || lk == 102944 // '%' 'order'
- || lk == 103188 // '{' 'order'
- || lk == 103455 // '$' 'ordered'
- || lk == 103456 // '%' 'ordered'
- || lk == 103700 // '{' 'ordered'
- || lk == 103967 // '$' 'ordering'
- || lk == 103968 // '%' 'ordering'
- || lk == 104212 // '{' 'ordering'
- || lk == 105503 // '$' 'parent'
- || lk == 105504 // '%' 'parent'
- || lk == 105748 // '{' 'parent'
- || lk == 108575 // '$' 'preceding'
- || lk == 108576 // '%' 'preceding'
- || lk == 108820 // '{' 'preceding'
- || lk == 109087 // '$' 'preceding-sibling'
- || lk == 109088 // '%' 'preceding-sibling'
- || lk == 109332 // '{' 'preceding-sibling'
- || lk == 110623 // '$' 'processing-instruction'
- || lk == 110624 // '%' 'processing-instruction'
- || lk == 110868 // '{' 'processing-instruction'
- || lk == 111647 // '$' 'rename'
- || lk == 111648 // '%' 'rename'
- || lk == 111892 // '{' 'rename'
- || lk == 112159 // '$' 'replace'
- || lk == 112160 // '%' 'replace'
- || lk == 112404 // '{' 'replace'
- || lk == 112671 // '$' 'return'
- || lk == 112672 // '%' 'return'
- || lk == 112916 // '{' 'return'
- || lk == 113183 // '$' 'returning'
- || lk == 113184 // '%' 'returning'
- || lk == 113428 // '{' 'returning'
- || lk == 113695 // '$' 'revalidation'
- || lk == 113696 // '%' 'revalidation'
- || lk == 113940 // '{' 'revalidation'
- || lk == 114719 // '$' 'satisfies'
- || lk == 114720 // '%' 'satisfies'
- || lk == 114964 // '{' 'satisfies'
- || lk == 115231 // '$' 'schema'
- || lk == 115232 // '%' 'schema'
- || lk == 115476 // '{' 'schema'
- || lk == 115743 // '$' 'schema-attribute'
- || lk == 115744 // '%' 'schema-attribute'
- || lk == 115988 // '{' 'schema-attribute'
- || lk == 116255 // '$' 'schema-element'
- || lk == 116256 // '%' 'schema-element'
- || lk == 116500 // '{' 'schema-element'
- || lk == 116767 // '$' 'score'
- || lk == 116768 // '%' 'score'
- || lk == 117012 // '{' 'score'
- || lk == 117279 // '$' 'self'
- || lk == 117280 // '%' 'self'
- || lk == 117524 // '{' 'self'
- || lk == 119839 // '$' 'sliding'
- || lk == 119840 // '%' 'sliding'
- || lk == 120084 // '{' 'sliding'
- || lk == 120351 // '$' 'some'
- || lk == 120352 // '%' 'some'
- || lk == 120596 // '{' 'some'
- || lk == 120863 // '$' 'stable'
- || lk == 120864 // '%' 'stable'
- || lk == 121108 // '{' 'stable'
- || lk == 121375 // '$' 'start'
- || lk == 121376 // '%' 'start'
- || lk == 121620 // '{' 'start'
- || lk == 122911 // '$' 'strict'
- || lk == 122912 // '%' 'strict'
- || lk == 123156 // '{' 'strict'
- || lk == 124447 // '$' 'switch'
- || lk == 124448 // '%' 'switch'
- || lk == 124692 // '{' 'switch'
- || lk == 124959 // '$' 'text'
- || lk == 124960 // '%' 'text'
- || lk == 125204 // '{' 'text'
- || lk == 127007 // '$' 'to'
- || lk == 127008 // '%' 'to'
- || lk == 127252 // '{' 'to'
- || lk == 127519 // '$' 'treat'
- || lk == 127520 // '%' 'treat'
- || lk == 127764 // '{' 'treat'
- || lk == 128031 // '$' 'try'
- || lk == 128032 // '%' 'try'
- || lk == 128276 // '{' 'try'
- || lk == 128543 // '$' 'tumbling'
- || lk == 128544 // '%' 'tumbling'
- || lk == 128788 // '{' 'tumbling'
- || lk == 129055 // '$' 'type'
- || lk == 129056 // '%' 'type'
- || lk == 129300 // '{' 'type'
- || lk == 129567 // '$' 'typeswitch'
- || lk == 129568 // '%' 'typeswitch'
- || lk == 129812 // '{' 'typeswitch'
- || lk == 130079 // '$' 'union'
- || lk == 130080 // '%' 'union'
- || lk == 130324 // '{' 'union'
- || lk == 131103 // '$' 'unordered'
- || lk == 131104 // '%' 'unordered'
- || lk == 131348 // '{' 'unordered'
- || lk == 131615 // '$' 'updating'
- || lk == 131616 // '%' 'updating'
- || lk == 131860 // '{' 'updating'
- || lk == 133151 // '$' 'validate'
- || lk == 133152 // '%' 'validate'
- || lk == 133396 // '{' 'validate'
- || lk == 133663 // '$' 'value'
- || lk == 133664 // '%' 'value'
- || lk == 133908 // '{' 'value'
- || lk == 134175 // '$' 'variable'
- || lk == 134176 // '%' 'variable'
- || lk == 134420 // '{' 'variable'
- || lk == 134687 // '$' 'version'
- || lk == 134688 // '%' 'version'
- || lk == 134932 // '{' 'version'
- || lk == 136223 // '$' 'where'
- || lk == 136224 // '%' 'where'
- || lk == 136468 // '{' 'where'
- || lk == 136735 // '$' 'while'
- || lk == 136736 // '%' 'while'
- || lk == 136980 // '{' 'while'
- || lk == 138271 // '$' 'with'
- || lk == 138272 // '%' 'with'
- || lk == 138516 // '{' 'with'
- || lk == 140319 // '$' 'xquery'
- || lk == 140320 // '%' 'xquery'
- || lk == 140564 // '{' 'xquery'
- || lk == 141588 // '{' '{'
- || lk == 142612 // '{' '{|'
- || lk == 144660) // '{' '}'
- {
- lk = memoized(7, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_ApplyStatement();
- memoize(7, e0A, -1);
- lk = -14;
- }
- catch (p1A)
- {
- try
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- try_AssignStatement();
- memoize(7, e0A, -2);
- lk = -14;
- }
- catch (p2A)
- {
- try
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- try_BlockStatement();
- memoize(7, e0A, -3);
- lk = -14;
- }
- catch (p3A)
- {
- try
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- try_VarDeclStatement();
- memoize(7, e0A, -12);
- lk = -14;
- }
- catch (p12A)
- {
- lk = -13;
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(7, e0A, -13);
- }
- }
- }
- }
- }
- }
- switch (lk)
- {
- case -2:
- try_AssignStatement();
- break;
- case -3:
- try_BlockStatement();
- break;
- case 90198: // 'break' 'loop'
- try_BreakStatement();
- break;
- case 90214: // 'continue' 'loop'
- try_ContinueStatement();
- break;
- case 113284: // 'exit' 'returning'
- try_ExitStatement();
- break;
- case 16009: // 'for' '$'
- case 16046: // 'let' '$'
- case 116910: // 'let' 'score'
- case 119945: // 'for' 'sliding'
- case 128649: // 'for' 'tumbling'
- try_FLWORStatement();
- break;
- case 17560: // 'if' '('
- try_IfStatement();
- break;
- case 17651: // 'switch' '('
- try_SwitchStatement();
- break;
- case 141562: // 'try' '{'
- try_TryCatchStatement();
- break;
- case 17661: // 'typeswitch' '('
- try_TypeswitchStatement();
- break;
- case -12:
- case 16134: // 'variable' '$'
- try_VarDeclStatement();
- break;
- case -13:
- try_WhileStatement();
- break;
- case -14:
- break;
- default:
- try_ApplyStatement();
- }
- }
-
- function parse_ApplyStatement()
- {
- eventHandler.startNonterminal("ApplyStatement", e0);
- parse_ExprSimple();
- shift(53); // ';'
- eventHandler.endNonterminal("ApplyStatement", e0);
- }
-
- function try_ApplyStatement()
- {
- try_ExprSimple();
- shiftT(53); // ';'
- }
-
- function parse_AssignStatement()
- {
- eventHandler.startNonterminal("AssignStatement", e0);
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(27); // S^WS | '(:' | ':='
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- shift(53); // ';'
- eventHandler.endNonterminal("AssignStatement", e0);
- }
-
- function try_AssignStatement()
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(27); // S^WS | '(:' | ':='
- shiftT(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- shiftT(53); // ';'
- }
-
- function parse_BlockStatement()
- {
- eventHandler.startNonterminal("BlockStatement", e0);
- shift(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statements();
- shift(282); // '}'
- eventHandler.endNonterminal("BlockStatement", e0);
- }
-
- function try_BlockStatement()
- {
- shiftT(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statements();
- shiftT(282); // '}'
- }
-
- function parse_BreakStatement()
- {
- eventHandler.startNonterminal("BreakStatement", e0);
- shift(86); // 'break'
- lookahead1W(59); // S^WS | '(:' | 'loop'
- shift(176); // 'loop'
- lookahead1W(28); // S^WS | '(:' | ';'
- shift(53); // ';'
- eventHandler.endNonterminal("BreakStatement", e0);
- }
-
- function try_BreakStatement()
- {
- shiftT(86); // 'break'
- lookahead1W(59); // S^WS | '(:' | 'loop'
- shiftT(176); // 'loop'
- lookahead1W(28); // S^WS | '(:' | ';'
- shiftT(53); // ';'
- }
-
- function parse_ContinueStatement()
- {
- eventHandler.startNonterminal("ContinueStatement", e0);
- shift(102); // 'continue'
- lookahead1W(59); // S^WS | '(:' | 'loop'
- shift(176); // 'loop'
- lookahead1W(28); // S^WS | '(:' | ';'
- shift(53); // ';'
- eventHandler.endNonterminal("ContinueStatement", e0);
- }
-
- function try_ContinueStatement()
- {
- shiftT(102); // 'continue'
- lookahead1W(59); // S^WS | '(:' | 'loop'
- shiftT(176); // 'loop'
- lookahead1W(28); // S^WS | '(:' | ';'
- shiftT(53); // ';'
- }
-
- function parse_ExitStatement()
- {
- eventHandler.startNonterminal("ExitStatement", e0);
- shift(132); // 'exit'
- lookahead1W(71); // S^WS | '(:' | 'returning'
- shift(221); // 'returning'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- shift(53); // ';'
- eventHandler.endNonterminal("ExitStatement", e0);
- }
-
- function try_ExitStatement()
- {
- shiftT(132); // 'exit'
- lookahead1W(71); // S^WS | '(:' | 'returning'
- shiftT(221); // 'returning'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- shiftT(53); // ';'
- }
-
- function parse_FLWORStatement()
- {
- eventHandler.startNonterminal("FLWORStatement", e0);
- parse_InitialClause();
- for (;;)
- {
- lookahead1W(173); // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |
- if (l1 == 220) // 'return'
- {
- break;
- }
- whitespace();
- parse_IntermediateClause();
- }
- whitespace();
- parse_ReturnStatement();
- eventHandler.endNonterminal("FLWORStatement", e0);
- }
-
- function try_FLWORStatement()
- {
- try_InitialClause();
- for (;;)
- {
- lookahead1W(173); // S^WS | '(:' | 'count' | 'for' | 'group' | 'let' | 'order' | 'return' | 'stable' |
- if (l1 == 220) // 'return'
- {
- break;
- }
- try_IntermediateClause();
- }
- try_ReturnStatement();
- }
-
- function parse_ReturnStatement()
- {
- eventHandler.startNonterminal("ReturnStatement", e0);
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statement();
- eventHandler.endNonterminal("ReturnStatement", e0);
- }
-
- function try_ReturnStatement()
- {
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statement();
- }
-
- function parse_IfStatement()
- {
- eventHandler.startNonterminal("IfStatement", e0);
- shift(152); // 'if'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(37); // ')'
- lookahead1W(77); // S^WS | '(:' | 'then'
- shift(245); // 'then'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statement();
- lookahead1W(48); // S^WS | '(:' | 'else'
- shift(122); // 'else'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statement();
- eventHandler.endNonterminal("IfStatement", e0);
- }
-
- function try_IfStatement()
- {
- shiftT(152); // 'if'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(37); // ')'
- lookahead1W(77); // S^WS | '(:' | 'then'
- shiftT(245); // 'then'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statement();
- lookahead1W(48); // S^WS | '(:' | 'else'
- shiftT(122); // 'else'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statement();
- }
-
- function parse_SwitchStatement()
- {
- eventHandler.startNonterminal("SwitchStatement", e0);
- shift(243); // 'switch'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(37); // ')'
- for (;;)
- {
- lookahead1W(35); // S^WS | '(:' | 'case'
- whitespace();
- parse_SwitchCaseStatement();
- lookahead1W(113); // S^WS | '(:' | 'case' | 'default'
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shift(109); // 'default'
- lookahead1W(70); // S^WS | '(:' | 'return'
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statement();
- eventHandler.endNonterminal("SwitchStatement", e0);
- }
-
- function try_SwitchStatement()
- {
- shiftT(243); // 'switch'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(37); // ')'
- for (;;)
- {
- lookahead1W(35); // S^WS | '(:' | 'case'
- try_SwitchCaseStatement();
- lookahead1W(113); // S^WS | '(:' | 'case' | 'default'
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shiftT(109); // 'default'
- lookahead1W(70); // S^WS | '(:' | 'return'
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statement();
- }
-
- function parse_SwitchCaseStatement()
- {
- eventHandler.startNonterminal("SwitchCaseStatement", e0);
- for (;;)
- {
- shift(88); // 'case'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_SwitchCaseOperand();
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statement();
- eventHandler.endNonterminal("SwitchCaseStatement", e0);
- }
-
- function try_SwitchCaseStatement()
- {
- for (;;)
- {
- shiftT(88); // 'case'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_SwitchCaseOperand();
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statement();
- }
-
- function parse_TryCatchStatement()
- {
- eventHandler.startNonterminal("TryCatchStatement", e0);
- shift(250); // 'try'
- lookahead1W(87); // S^WS | '(:' | '{'
- whitespace();
- parse_BlockStatement();
- for (;;)
- {
- lookahead1W(36); // S^WS | '(:' | 'catch'
- shift(91); // 'catch'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_CatchErrorList();
- whitespace();
- parse_BlockStatement();
- lookahead1W(274); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 91: // 'catch'
- lookahead2W(276); // Wildcard | EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' |
- break;
- default:
- lk = l1;
- }
- if (lk == 38491 // 'catch' 'and'
- || lk == 45659 // 'catch' 'cast'
- || lk == 46171 // 'catch' 'castable'
- || lk == 60507 // 'catch' 'div'
- || lk == 65627 // 'catch' 'eq'
- || lk == 67163 // 'catch' 'except'
- || lk == 74843 // 'catch' 'ge'
- || lk == 76891 // 'catch' 'gt'
- || lk == 77403 // 'catch' 'idiv'
- || lk == 82011 // 'catch' 'instance'
- || lk == 83035 // 'catch' 'intersect'
- || lk == 84059 // 'catch' 'is'
- || lk == 88155 // 'catch' 'le'
- || lk == 91227 // 'catch' 'lt'
- || lk == 92251 // 'catch' 'mod'
- || lk == 95323 // 'catch' 'ne'
- || lk == 102491 // 'catch' 'or'
- || lk == 127067 // 'catch' 'to'
- || lk == 127579 // 'catch' 'treat'
- || lk == 130139) // 'catch' 'union'
- {
- lk = memoized(8, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- lookahead1W(36); // S^WS | '(:' | 'catch'
- shiftT(91); // 'catch'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_CatchErrorList();
- try_BlockStatement();
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(8, e0, lk);
- }
- }
- if (lk != -1
- && lk != 2651 // 'catch' Wildcard
- && lk != 3163 // 'catch' EQName^Token
- && lk != 35931 // 'catch' 'after'
- && lk != 36955 // 'catch' 'allowing'
- && lk != 37467 // 'catch' 'ancestor'
- && lk != 37979 // 'catch' 'ancestor-or-self'
- && lk != 40027 // 'catch' 'array'
- && lk != 40539 // 'catch' 'as'
- && lk != 41051 // 'catch' 'ascending'
- && lk != 41563 // 'catch' 'at'
- && lk != 42075 // 'catch' 'attribute'
- && lk != 42587 // 'catch' 'base-uri'
- && lk != 43099 // 'catch' 'before'
- && lk != 43611 // 'catch' 'boundary-space'
- && lk != 44123 // 'catch' 'break'
- && lk != 45147 // 'catch' 'case'
- && lk != 46683 // 'catch' 'catch'
- && lk != 47707 // 'catch' 'child'
- && lk != 48219 // 'catch' 'collation'
- && lk != 49243 // 'catch' 'comment'
- && lk != 49755 // 'catch' 'constraint'
- && lk != 50267 // 'catch' 'construction'
- && lk != 51803 // 'catch' 'context'
- && lk != 52315 // 'catch' 'continue'
- && lk != 52827 // 'catch' 'copy'
- && lk != 53339 // 'catch' 'copy-namespaces'
- && lk != 53851 // 'catch' 'count'
- && lk != 54363 // 'catch' 'decimal-format'
- && lk != 55387 // 'catch' 'declare'
- && lk != 55899 // 'catch' 'default'
- && lk != 56411 // 'catch' 'delete'
- && lk != 56923 // 'catch' 'descendant'
- && lk != 57435 // 'catch' 'descendant-or-self'
- && lk != 57947 // 'catch' 'descending'
- && lk != 61019 // 'catch' 'document'
- && lk != 61531 // 'catch' 'document-node'
- && lk != 62043 // 'catch' 'element'
- && lk != 62555 // 'catch' 'else'
- && lk != 63067 // 'catch' 'empty'
- && lk != 63579 // 'catch' 'empty-sequence'
- && lk != 64091 // 'catch' 'encoding'
- && lk != 64603 // 'catch' 'end'
- && lk != 66139 // 'catch' 'every'
- && lk != 67675 // 'catch' 'exit'
- && lk != 68187 // 'catch' 'external'
- && lk != 68699 // 'catch' 'first'
- && lk != 69211 // 'catch' 'following'
- && lk != 69723 // 'catch' 'following-sibling'
- && lk != 70235 // 'catch' 'for'
- && lk != 72283 // 'catch' 'ft-option'
- && lk != 74331 // 'catch' 'function'
- && lk != 75867 // 'catch' 'group'
- && lk != 77915 // 'catch' 'if'
- && lk != 78427 // 'catch' 'import'
- && lk != 78939 // 'catch' 'in'
- && lk != 79451 // 'catch' 'index'
- && lk != 81499 // 'catch' 'insert'
- && lk != 82523 // 'catch' 'integrity'
- && lk != 83547 // 'catch' 'into'
- && lk != 84571 // 'catch' 'item'
- && lk != 85595 // 'catch' 'json-item'
- && lk != 87131 // 'catch' 'last'
- && lk != 87643 // 'catch' 'lax'
- && lk != 89179 // 'catch' 'let'
- && lk != 90203 // 'catch' 'loop'
- && lk != 92763 // 'catch' 'modify'
- && lk != 93275 // 'catch' 'module'
- && lk != 94299 // 'catch' 'namespace'
- && lk != 94811 // 'catch' 'namespace-node'
- && lk != 97883 // 'catch' 'node'
- && lk != 98395 // 'catch' 'nodes'
- && lk != 99419 // 'catch' 'object'
- && lk != 101467 // 'catch' 'only'
- && lk != 101979 // 'catch' 'option'
- && lk != 103003 // 'catch' 'order'
- && lk != 103515 // 'catch' 'ordered'
- && lk != 104027 // 'catch' 'ordering'
- && lk != 105563 // 'catch' 'parent'
- && lk != 108635 // 'catch' 'preceding'
- && lk != 109147 // 'catch' 'preceding-sibling'
- && lk != 110683 // 'catch' 'processing-instruction'
- && lk != 111707 // 'catch' 'rename'
- && lk != 112219 // 'catch' 'replace'
- && lk != 112731 // 'catch' 'return'
- && lk != 113243 // 'catch' 'returning'
- && lk != 113755 // 'catch' 'revalidation'
- && lk != 114779 // 'catch' 'satisfies'
- && lk != 115291 // 'catch' 'schema'
- && lk != 115803 // 'catch' 'schema-attribute'
- && lk != 116315 // 'catch' 'schema-element'
- && lk != 116827 // 'catch' 'score'
- && lk != 117339 // 'catch' 'self'
- && lk != 119899 // 'catch' 'sliding'
- && lk != 120411 // 'catch' 'some'
- && lk != 120923 // 'catch' 'stable'
- && lk != 121435 // 'catch' 'start'
- && lk != 122971 // 'catch' 'strict'
- && lk != 124507 // 'catch' 'switch'
- && lk != 125019 // 'catch' 'text'
- && lk != 128091 // 'catch' 'try'
- && lk != 128603 // 'catch' 'tumbling'
- && lk != 129115 // 'catch' 'type'
- && lk != 129627 // 'catch' 'typeswitch'
- && lk != 131163 // 'catch' 'unordered'
- && lk != 131675 // 'catch' 'updating'
- && lk != 133211 // 'catch' 'validate'
- && lk != 133723 // 'catch' 'value'
- && lk != 134235 // 'catch' 'variable'
- && lk != 134747 // 'catch' 'version'
- && lk != 136283 // 'catch' 'where'
- && lk != 136795 // 'catch' 'while'
- && lk != 138331 // 'catch' 'with'
- && lk != 140379) // 'catch' 'xquery'
- {
- break;
- }
- }
- eventHandler.endNonterminal("TryCatchStatement", e0);
- }
-
- function try_TryCatchStatement()
- {
- shiftT(250); // 'try'
- lookahead1W(87); // S^WS | '(:' | '{'
- try_BlockStatement();
- lookahead1W(36); // S^WS | '(:' | 'catch'
- shiftT(91); // 'catch'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_CatchErrorList();
- try_BlockStatement();
- for (;;)
- {
- lookahead1W(274); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- switch (l1)
- {
- case 91: // 'catch'
- lookahead2W(276); // Wildcard | EQName^Token | S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | '*' |
- break;
- default:
- lk = l1;
- }
- if (lk == 38491 // 'catch' 'and'
- || lk == 45659 // 'catch' 'cast'
- || lk == 46171 // 'catch' 'castable'
- || lk == 60507 // 'catch' 'div'
- || lk == 65627 // 'catch' 'eq'
- || lk == 67163 // 'catch' 'except'
- || lk == 74843 // 'catch' 'ge'
- || lk == 76891 // 'catch' 'gt'
- || lk == 77403 // 'catch' 'idiv'
- || lk == 82011 // 'catch' 'instance'
- || lk == 83035 // 'catch' 'intersect'
- || lk == 84059 // 'catch' 'is'
- || lk == 88155 // 'catch' 'le'
- || lk == 91227 // 'catch' 'lt'
- || lk == 92251 // 'catch' 'mod'
- || lk == 95323 // 'catch' 'ne'
- || lk == 102491 // 'catch' 'or'
- || lk == 127067 // 'catch' 'to'
- || lk == 127579 // 'catch' 'treat'
- || lk == 130139) // 'catch' 'union'
- {
- lk = memoized(8, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- lookahead1W(36); // S^WS | '(:' | 'catch'
- shiftT(91); // 'catch'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_CatchErrorList();
- try_BlockStatement();
- memoize(8, e0A, -1);
- continue;
- }
- catch (p1A)
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(8, e0A, -2);
- break;
- }
- }
- }
- if (lk != -1
- && lk != 2651 // 'catch' Wildcard
- && lk != 3163 // 'catch' EQName^Token
- && lk != 35931 // 'catch' 'after'
- && lk != 36955 // 'catch' 'allowing'
- && lk != 37467 // 'catch' 'ancestor'
- && lk != 37979 // 'catch' 'ancestor-or-self'
- && lk != 40027 // 'catch' 'array'
- && lk != 40539 // 'catch' 'as'
- && lk != 41051 // 'catch' 'ascending'
- && lk != 41563 // 'catch' 'at'
- && lk != 42075 // 'catch' 'attribute'
- && lk != 42587 // 'catch' 'base-uri'
- && lk != 43099 // 'catch' 'before'
- && lk != 43611 // 'catch' 'boundary-space'
- && lk != 44123 // 'catch' 'break'
- && lk != 45147 // 'catch' 'case'
- && lk != 46683 // 'catch' 'catch'
- && lk != 47707 // 'catch' 'child'
- && lk != 48219 // 'catch' 'collation'
- && lk != 49243 // 'catch' 'comment'
- && lk != 49755 // 'catch' 'constraint'
- && lk != 50267 // 'catch' 'construction'
- && lk != 51803 // 'catch' 'context'
- && lk != 52315 // 'catch' 'continue'
- && lk != 52827 // 'catch' 'copy'
- && lk != 53339 // 'catch' 'copy-namespaces'
- && lk != 53851 // 'catch' 'count'
- && lk != 54363 // 'catch' 'decimal-format'
- && lk != 55387 // 'catch' 'declare'
- && lk != 55899 // 'catch' 'default'
- && lk != 56411 // 'catch' 'delete'
- && lk != 56923 // 'catch' 'descendant'
- && lk != 57435 // 'catch' 'descendant-or-self'
- && lk != 57947 // 'catch' 'descending'
- && lk != 61019 // 'catch' 'document'
- && lk != 61531 // 'catch' 'document-node'
- && lk != 62043 // 'catch' 'element'
- && lk != 62555 // 'catch' 'else'
- && lk != 63067 // 'catch' 'empty'
- && lk != 63579 // 'catch' 'empty-sequence'
- && lk != 64091 // 'catch' 'encoding'
- && lk != 64603 // 'catch' 'end'
- && lk != 66139 // 'catch' 'every'
- && lk != 67675 // 'catch' 'exit'
- && lk != 68187 // 'catch' 'external'
- && lk != 68699 // 'catch' 'first'
- && lk != 69211 // 'catch' 'following'
- && lk != 69723 // 'catch' 'following-sibling'
- && lk != 70235 // 'catch' 'for'
- && lk != 72283 // 'catch' 'ft-option'
- && lk != 74331 // 'catch' 'function'
- && lk != 75867 // 'catch' 'group'
- && lk != 77915 // 'catch' 'if'
- && lk != 78427 // 'catch' 'import'
- && lk != 78939 // 'catch' 'in'
- && lk != 79451 // 'catch' 'index'
- && lk != 81499 // 'catch' 'insert'
- && lk != 82523 // 'catch' 'integrity'
- && lk != 83547 // 'catch' 'into'
- && lk != 84571 // 'catch' 'item'
- && lk != 85595 // 'catch' 'json-item'
- && lk != 87131 // 'catch' 'last'
- && lk != 87643 // 'catch' 'lax'
- && lk != 89179 // 'catch' 'let'
- && lk != 90203 // 'catch' 'loop'
- && lk != 92763 // 'catch' 'modify'
- && lk != 93275 // 'catch' 'module'
- && lk != 94299 // 'catch' 'namespace'
- && lk != 94811 // 'catch' 'namespace-node'
- && lk != 97883 // 'catch' 'node'
- && lk != 98395 // 'catch' 'nodes'
- && lk != 99419 // 'catch' 'object'
- && lk != 101467 // 'catch' 'only'
- && lk != 101979 // 'catch' 'option'
- && lk != 103003 // 'catch' 'order'
- && lk != 103515 // 'catch' 'ordered'
- && lk != 104027 // 'catch' 'ordering'
- && lk != 105563 // 'catch' 'parent'
- && lk != 108635 // 'catch' 'preceding'
- && lk != 109147 // 'catch' 'preceding-sibling'
- && lk != 110683 // 'catch' 'processing-instruction'
- && lk != 111707 // 'catch' 'rename'
- && lk != 112219 // 'catch' 'replace'
- && lk != 112731 // 'catch' 'return'
- && lk != 113243 // 'catch' 'returning'
- && lk != 113755 // 'catch' 'revalidation'
- && lk != 114779 // 'catch' 'satisfies'
- && lk != 115291 // 'catch' 'schema'
- && lk != 115803 // 'catch' 'schema-attribute'
- && lk != 116315 // 'catch' 'schema-element'
- && lk != 116827 // 'catch' 'score'
- && lk != 117339 // 'catch' 'self'
- && lk != 119899 // 'catch' 'sliding'
- && lk != 120411 // 'catch' 'some'
- && lk != 120923 // 'catch' 'stable'
- && lk != 121435 // 'catch' 'start'
- && lk != 122971 // 'catch' 'strict'
- && lk != 124507 // 'catch' 'switch'
- && lk != 125019 // 'catch' 'text'
- && lk != 128091 // 'catch' 'try'
- && lk != 128603 // 'catch' 'tumbling'
- && lk != 129115 // 'catch' 'type'
- && lk != 129627 // 'catch' 'typeswitch'
- && lk != 131163 // 'catch' 'unordered'
- && lk != 131675 // 'catch' 'updating'
- && lk != 133211 // 'catch' 'validate'
- && lk != 133723 // 'catch' 'value'
- && lk != 134235 // 'catch' 'variable'
- && lk != 134747 // 'catch' 'version'
- && lk != 136283 // 'catch' 'where'
- && lk != 136795 // 'catch' 'while'
- && lk != 138331 // 'catch' 'with'
- && lk != 140379) // 'catch' 'xquery'
- {
- break;
- }
- lookahead1W(36); // S^WS | '(:' | 'catch'
- shiftT(91); // 'catch'
- lookahead1W(255); // Wildcard | EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_CatchErrorList();
- try_BlockStatement();
- }
- }
-
- function parse_TypeswitchStatement()
- {
- eventHandler.startNonterminal("TypeswitchStatement", e0);
- shift(253); // 'typeswitch'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(37); // ')'
- for (;;)
- {
- lookahead1W(35); // S^WS | '(:' | 'case'
- whitespace();
- parse_CaseStatement();
- lookahead1W(113); // S^WS | '(:' | 'case' | 'default'
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shift(109); // 'default'
- lookahead1W(95); // S^WS | '$' | '(:' | 'return'
- if (l1 == 31) // '$'
- {
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- }
- lookahead1W(70); // S^WS | '(:' | 'return'
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statement();
- eventHandler.endNonterminal("TypeswitchStatement", e0);
- }
-
- function try_TypeswitchStatement()
- {
- shiftT(253); // 'typeswitch'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(37); // ')'
- for (;;)
- {
- lookahead1W(35); // S^WS | '(:' | 'case'
- try_CaseStatement();
- lookahead1W(113); // S^WS | '(:' | 'case' | 'default'
- if (l1 != 88) // 'case'
- {
- break;
- }
- }
- shiftT(109); // 'default'
- lookahead1W(95); // S^WS | '$' | '(:' | 'return'
- if (l1 == 31) // '$'
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- }
- lookahead1W(70); // S^WS | '(:' | 'return'
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statement();
- }
-
- function parse_CaseStatement()
- {
- eventHandler.startNonterminal("CaseStatement", e0);
- shift(88); // 'case'
- lookahead1W(260); // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |
- if (l1 == 31) // '$'
- {
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(30); // S^WS | '(:' | 'as'
- shift(79); // 'as'
- }
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- lookahead1W(70); // S^WS | '(:' | 'return'
- shift(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statement();
- eventHandler.endNonterminal("CaseStatement", e0);
- }
-
- function try_CaseStatement()
- {
- shiftT(88); // 'case'
- lookahead1W(260); // EQName^Token | S^WS | '$' | '%' | '(' | '(:' | 'after' | 'allowing' |
- if (l1 == 31) // '$'
- {
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(30); // S^WS | '(:' | 'as'
- shiftT(79); // 'as'
- }
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_SequenceType();
- lookahead1W(70); // S^WS | '(:' | 'return'
- shiftT(220); // 'return'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statement();
- }
-
- function parse_VarDeclStatement()
- {
- eventHandler.startNonterminal("VarDeclStatement", e0);
- for (;;)
- {
- lookahead1W(98); // S^WS | '%' | '(:' | 'variable'
- if (l1 != 32) // '%'
- {
- break;
- }
- whitespace();
- parse_Annotation();
- }
- shift(262); // 'variable'
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(157); // S^WS | '(:' | ',' | ':=' | ';' | 'as'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(145); // S^WS | '(:' | ',' | ':=' | ';'
- if (l1 == 52) // ':='
- {
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- }
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- shift(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_VarName();
- lookahead1W(157); // S^WS | '(:' | ',' | ':=' | ';' | 'as'
- if (l1 == 79) // 'as'
- {
- whitespace();
- parse_TypeDeclaration();
- }
- lookahead1W(145); // S^WS | '(:' | ',' | ':=' | ';'
- if (l1 == 52) // ':='
- {
- shift(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- }
- }
- shift(53); // ';'
- eventHandler.endNonterminal("VarDeclStatement", e0);
- }
-
- function try_VarDeclStatement()
- {
- for (;;)
- {
- lookahead1W(98); // S^WS | '%' | '(:' | 'variable'
- if (l1 != 32) // '%'
- {
- break;
- }
- try_Annotation();
- }
- shiftT(262); // 'variable'
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(157); // S^WS | '(:' | ',' | ':=' | ';' | 'as'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- lookahead1W(145); // S^WS | '(:' | ',' | ':=' | ';'
- if (l1 == 52) // ':='
- {
- shiftT(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(21); // S^WS | '$' | '(:'
- shiftT(31); // '$'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- try_VarName();
- lookahead1W(157); // S^WS | '(:' | ',' | ':=' | ';' | 'as'
- if (l1 == 79) // 'as'
- {
- try_TypeDeclaration();
- }
- lookahead1W(145); // S^WS | '(:' | ',' | ':=' | ';'
- if (l1 == 52) // ':='
- {
- shiftT(52); // ':='
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
- }
- shiftT(53); // ';'
- }
-
- function parse_WhileStatement()
- {
- eventHandler.startNonterminal("WhileStatement", e0);
- shift(267); // 'while'
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(37); // ')'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Statement();
- eventHandler.endNonterminal("WhileStatement", e0);
- }
-
- function try_WhileStatement()
- {
- shiftT(267); // 'while'
- lookahead1W(22); // S^WS | '(' | '(:'
- shiftT(34); // '('
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(37); // ')'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Statement();
- }
-
- function parse_ExprSingle()
- {
- eventHandler.startNonterminal("ExprSingle", e0);
- switch (l1)
- {
- case 137: // 'for'
- lookahead2W(233); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
- break;
- case 174: // 'let'
- lookahead2W(231); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
- break;
- case 250: // 'try'
- lookahead2W(230); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 152: // 'if'
- case 243: // 'switch'
- case 253: // 'typeswitch'
- lookahead2W(228); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 16009: // 'for' '$'
- case 16046: // 'let' '$'
- case 116910: // 'let' 'score'
- case 119945: // 'for' 'sliding'
- case 128649: // 'for' 'tumbling'
- parse_FLWORExpr();
- break;
- case 17560: // 'if' '('
- parse_IfExpr();
- break;
- case 17651: // 'switch' '('
- parse_SwitchExpr();
- break;
- case 141562: // 'try' '{'
- parse_TryCatchExpr();
- break;
- case 17661: // 'typeswitch' '('
- parse_TypeswitchExpr();
- break;
- default:
- parse_ExprSimple();
- }
- eventHandler.endNonterminal("ExprSingle", e0);
- }
-
- function try_ExprSingle()
- {
- switch (l1)
- {
- case 137: // 'for'
- lookahead2W(233); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
- break;
- case 174: // 'let'
- lookahead2W(231); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
- break;
- case 250: // 'try'
- lookahead2W(230); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 152: // 'if'
- case 243: // 'switch'
- case 253: // 'typeswitch'
- lookahead2W(228); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 16009: // 'for' '$'
- case 16046: // 'let' '$'
- case 116910: // 'let' 'score'
- case 119945: // 'for' 'sliding'
- case 128649: // 'for' 'tumbling'
- try_FLWORExpr();
- break;
- case 17560: // 'if' '('
- try_IfExpr();
- break;
- case 17651: // 'switch' '('
- try_SwitchExpr();
- break;
- case 141562: // 'try' '{'
- try_TryCatchExpr();
- break;
- case 17661: // 'typeswitch' '('
- try_TypeswitchExpr();
- break;
- default:
- try_ExprSimple();
- }
- }
-
- function parse_ExprSimple()
- {
- eventHandler.startNonterminal("ExprSimple", e0);
- switch (l1)
- {
- case 218: // 'rename'
- lookahead2W(232); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 219: // 'replace'
- lookahead2W(235); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 110: // 'delete'
- case 159: // 'insert'
- lookahead2W(234); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 103: // 'copy'
- case 129: // 'every'
- case 235: // 'some'
- lookahead2W(229); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 16001: // 'every' '$'
- case 16107: // 'some' '$'
- parse_QuantifiedExpr();
- break;
- case 97951: // 'insert' 'node'
- case 98463: // 'insert' 'nodes'
- parse_InsertExpr();
- break;
- case 97902: // 'delete' 'node'
- case 98414: // 'delete' 'nodes'
- parse_DeleteExpr();
- break;
- case 98010: // 'rename' 'node'
- parse_RenameExpr();
- break;
- case 98011: // 'replace' 'node'
- case 133851: // 'replace' 'value'
- parse_ReplaceExpr();
- break;
- case 15975: // 'copy' '$'
- parse_TransformExpr();
- break;
- case 85102: // 'delete' 'json'
- parse_JSONDeleteExpr();
- break;
- case 85151: // 'insert' 'json'
- parse_JSONInsertExpr();
- break;
- case 85210: // 'rename' 'json'
- parse_JSONRenameExpr();
- break;
- case 85211: // 'replace' 'json'
- parse_JSONReplaceExpr();
- break;
- case 77: // 'append'
- parse_JSONAppendExpr();
- break;
- default:
- parse_OrExpr();
- }
- eventHandler.endNonterminal("ExprSimple", e0);
- }
-
- function try_ExprSimple()
- {
- switch (l1)
- {
- case 218: // 'rename'
- lookahead2W(232); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 219: // 'replace'
- lookahead2W(235); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 110: // 'delete'
- case 159: // 'insert'
- lookahead2W(234); // S^WS | EOF | '!' | '!=' | '#' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' | '/' |
- break;
- case 103: // 'copy'
- case 129: // 'every'
- case 235: // 'some'
- lookahead2W(229); // S^WS | EOF | '!' | '!=' | '#' | '$' | '(' | '(:' | ')' | '*' | '+' | ',' | '-' |
- break;
- default:
- lk = l1;
- }
- switch (lk)
- {
- case 16001: // 'every' '$'
- case 16107: // 'some' '$'
- try_QuantifiedExpr();
- break;
- case 97951: // 'insert' 'node'
- case 98463: // 'insert' 'nodes'
- try_InsertExpr();
- break;
- case 97902: // 'delete' 'node'
- case 98414: // 'delete' 'nodes'
- try_DeleteExpr();
- break;
- case 98010: // 'rename' 'node'
- try_RenameExpr();
- break;
- case 98011: // 'replace' 'node'
- case 133851: // 'replace' 'value'
- try_ReplaceExpr();
- break;
- case 15975: // 'copy' '$'
- try_TransformExpr();
- break;
- case 85102: // 'delete' 'json'
- try_JSONDeleteExpr();
- break;
- case 85151: // 'insert' 'json'
- try_JSONInsertExpr();
- break;
- case 85210: // 'rename' 'json'
- try_JSONRenameExpr();
- break;
- case 85211: // 'replace' 'json'
- try_JSONReplaceExpr();
- break;
- case 77: // 'append'
- try_JSONAppendExpr();
- break;
- default:
- try_OrExpr();
- }
- }
-
- function parse_JSONDeleteExpr()
- {
- eventHandler.startNonterminal("JSONDeleteExpr", e0);
- shift(110); // 'delete'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shift(166); // 'json'
- lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
- whitespace();
- parse_PostfixExpr();
- eventHandler.endNonterminal("JSONDeleteExpr", e0);
- }
-
- function try_JSONDeleteExpr()
- {
- shiftT(110); // 'delete'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shiftT(166); // 'json'
- lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
- try_PostfixExpr();
- }
-
- function parse_JSONInsertExpr()
- {
- eventHandler.startNonterminal("JSONInsertExpr", e0);
- shift(159); // 'insert'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shift(166); // 'json'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- shift(163); // 'into'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- switch (l1)
- {
- case 81: // 'at'
- lookahead2W(69); // S^WS | '(:' | 'position'
- break;
- default:
- lk = l1;
- }
- if (lk == 108113) // 'at' 'position'
- {
- lk = memoized(9, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- shiftT(81); // 'at'
- lookahead1W(69); // S^WS | '(:' | 'position'
- shiftT(211); // 'position'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(9, e0, lk);
- }
- }
- if (lk == -1)
- {
- shift(81); // 'at'
- lookahead1W(69); // S^WS | '(:' | 'position'
- shift(211); // 'position'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- }
- eventHandler.endNonterminal("JSONInsertExpr", e0);
- }
-
- function try_JSONInsertExpr()
- {
- shiftT(159); // 'insert'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shiftT(166); // 'json'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- shiftT(163); // 'into'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- switch (l1)
- {
- case 81: // 'at'
- lookahead2W(69); // S^WS | '(:' | 'position'
- break;
- default:
- lk = l1;
- }
- if (lk == 108113) // 'at' 'position'
- {
- lk = memoized(9, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- shiftT(81); // 'at'
- lookahead1W(69); // S^WS | '(:' | 'position'
- shiftT(211); // 'position'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- memoize(9, e0A, -1);
- }
- catch (p1A)
- {
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(9, e0A, -2);
- }
- lk = -2;
- }
- }
- if (lk == -1)
- {
- shiftT(81); // 'at'
- lookahead1W(69); // S^WS | '(:' | 'position'
- shiftT(211); // 'position'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
- }
-
- function parse_JSONRenameExpr()
- {
- eventHandler.startNonterminal("JSONRenameExpr", e0);
- shift(218); // 'rename'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shift(166); // 'json'
- lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
- whitespace();
- parse_PostfixExpr();
- shift(79); // 'as'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("JSONRenameExpr", e0);
- }
-
- function try_JSONRenameExpr()
- {
- shiftT(218); // 'rename'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shiftT(166); // 'json'
- lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
- try_PostfixExpr();
- shiftT(79); // 'as'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_JSONReplaceExpr()
- {
- eventHandler.startNonterminal("JSONReplaceExpr", e0);
- shift(219); // 'replace'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shift(166); // 'json'
- lookahead1W(82); // S^WS | '(:' | 'value'
- shift(261); // 'value'
- lookahead1W(64); // S^WS | '(:' | 'of'
- shift(196); // 'of'
- lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
- whitespace();
- parse_PostfixExpr();
- shift(270); // 'with'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("JSONReplaceExpr", e0);
- }
-
- function try_JSONReplaceExpr()
- {
- shiftT(219); // 'replace'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shiftT(166); // 'json'
- lookahead1W(82); // S^WS | '(:' | 'value'
- shiftT(261); // 'value'
- lookahead1W(64); // S^WS | '(:' | 'of'
- shiftT(196); // 'of'
- lookahead1W(262); // EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral | StringLiteral |
- try_PostfixExpr();
- shiftT(270); // 'with'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_JSONAppendExpr()
- {
- eventHandler.startNonterminal("JSONAppendExpr", e0);
- shift(77); // 'append'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shift(166); // 'json'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- shift(163); // 'into'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("JSONAppendExpr", e0);
- }
-
- function try_JSONAppendExpr()
- {
- shiftT(77); // 'append'
- lookahead1W(56); // S^WS | '(:' | 'json'
- shiftT(166); // 'json'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- shiftT(163); // 'into'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_CommonContent()
- {
- eventHandler.startNonterminal("CommonContent", e0);
- switch (l1)
- {
- case 12: // PredefinedEntityRef
- shift(12); // PredefinedEntityRef
- break;
- case 23: // CharRef
- shift(23); // CharRef
- break;
- case 277: // '{{'
- shift(277); // '{{'
- break;
- case 283: // '}}'
- shift(283); // '}}'
- break;
- default:
- parse_BlockExpr();
- }
- eventHandler.endNonterminal("CommonContent", e0);
- }
-
- function try_CommonContent()
- {
- switch (l1)
- {
- case 12: // PredefinedEntityRef
- shiftT(12); // PredefinedEntityRef
- break;
- case 23: // CharRef
- shiftT(23); // CharRef
- break;
- case 277: // '{{'
- shiftT(277); // '{{'
- break;
- case 283: // '}}'
- shiftT(283); // '}}'
- break;
- default:
- try_BlockExpr();
- }
- }
-
- function parse_ContentExpr()
- {
- eventHandler.startNonterminal("ContentExpr", e0);
- parse_StatementsAndExpr();
- eventHandler.endNonterminal("ContentExpr", e0);
- }
-
- function try_ContentExpr()
- {
- try_StatementsAndExpr();
- }
-
- function parse_CompDocConstructor()
- {
- eventHandler.startNonterminal("CompDocConstructor", e0);
- shift(119); // 'document'
- lookahead1W(87); // S^WS | '(:' | '{'
- whitespace();
- parse_BlockExpr();
- eventHandler.endNonterminal("CompDocConstructor", e0);
- }
-
- function try_CompDocConstructor()
- {
- shiftT(119); // 'document'
- lookahead1W(87); // S^WS | '(:' | '{'
- try_BlockExpr();
- }
-
- function parse_CompAttrConstructor()
- {
- eventHandler.startNonterminal("CompAttrConstructor", e0);
- shift(82); // 'attribute'
- lookahead1W(256); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- switch (l1)
- {
- case 276: // '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- break;
- default:
- whitespace();
- parse_EQName();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- switch (l1)
- {
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- default:
- lk = l1;
- }
- if (lk == 144660) // '{' '}'
- {
- lk = memoized(10, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- shiftT(276); // '{'
- lookahead1W(88); // S^WS | '(:' | '}'
- shiftT(282); // '}'
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(10, e0, lk);
- }
- }
- switch (lk)
- {
- case -1:
- shift(276); // '{'
- lookahead1W(88); // S^WS | '(:' | '}'
- shift(282); // '}'
- break;
- default:
- whitespace();
- parse_BlockExpr();
- }
- eventHandler.endNonterminal("CompAttrConstructor", e0);
- }
-
- function try_CompAttrConstructor()
- {
- shiftT(82); // 'attribute'
- lookahead1W(256); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- switch (l1)
- {
- case 276: // '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- break;
- default:
- try_EQName();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- switch (l1)
- {
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- default:
- lk = l1;
- }
- if (lk == 144660) // '{' '}'
- {
- lk = memoized(10, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- shiftT(276); // '{'
- lookahead1W(88); // S^WS | '(:' | '}'
- shiftT(282); // '}'
- memoize(10, e0A, -1);
- lk = -3;
- }
- catch (p1A)
- {
- lk = -2;
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(10, e0A, -2);
- }
- }
- }
- switch (lk)
- {
- case -1:
- shiftT(276); // '{'
- lookahead1W(88); // S^WS | '(:' | '}'
- shiftT(282); // '}'
- break;
- case -3:
- break;
- default:
- try_BlockExpr();
- }
- }
-
- function parse_CompPIConstructor()
- {
- eventHandler.startNonterminal("CompPIConstructor", e0);
- shift(216); // 'processing-instruction'
- lookahead1W(249); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- switch (l1)
- {
- case 276: // '{'
- shift(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_Expr();
- shift(282); // '}'
- break;
- default:
- whitespace();
- parse_NCName();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- switch (l1)
- {
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- default:
- lk = l1;
- }
- if (lk == 144660) // '{' '}'
- {
- lk = memoized(11, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- shiftT(276); // '{'
- lookahead1W(88); // S^WS | '(:' | '}'
- shiftT(282); // '}'
- lk = -1;
- }
- catch (p1A)
- {
- lk = -2;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(11, e0, lk);
- }
- }
- switch (lk)
- {
- case -1:
- shift(276); // '{'
- lookahead1W(88); // S^WS | '(:' | '}'
- shift(282); // '}'
- break;
- default:
- whitespace();
- parse_BlockExpr();
- }
- eventHandler.endNonterminal("CompPIConstructor", e0);
- }
-
- function try_CompPIConstructor()
- {
- shiftT(216); // 'processing-instruction'
- lookahead1W(249); // NCName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- switch (l1)
- {
- case 276: // '{'
- shiftT(276); // '{'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_Expr();
- shiftT(282); // '}'
- break;
- default:
- try_NCName();
- }
- lookahead1W(87); // S^WS | '(:' | '{'
- switch (l1)
- {
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- default:
- lk = l1;
- }
- if (lk == 144660) // '{' '}'
- {
- lk = memoized(11, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- shiftT(276); // '{'
- lookahead1W(88); // S^WS | '(:' | '}'
- shiftT(282); // '}'
- memoize(11, e0A, -1);
- lk = -3;
- }
- catch (p1A)
- {
- lk = -2;
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(11, e0A, -2);
- }
- }
- }
- switch (lk)
- {
- case -1:
- shiftT(276); // '{'
- lookahead1W(88); // S^WS | '(:' | '}'
- shiftT(282); // '}'
- break;
- case -3:
- break;
- default:
- try_BlockExpr();
- }
- }
-
- function parse_CompCommentConstructor()
- {
- eventHandler.startNonterminal("CompCommentConstructor", e0);
- shift(96); // 'comment'
- lookahead1W(87); // S^WS | '(:' | '{'
- whitespace();
- parse_BlockExpr();
- eventHandler.endNonterminal("CompCommentConstructor", e0);
- }
-
- function try_CompCommentConstructor()
- {
- shiftT(96); // 'comment'
- lookahead1W(87); // S^WS | '(:' | '{'
- try_BlockExpr();
- }
-
- function parse_CompTextConstructor()
- {
- eventHandler.startNonterminal("CompTextConstructor", e0);
- shift(244); // 'text'
- lookahead1W(87); // S^WS | '(:' | '{'
- whitespace();
- parse_BlockExpr();
- eventHandler.endNonterminal("CompTextConstructor", e0);
- }
-
- function try_CompTextConstructor()
- {
- shiftT(244); // 'text'
- lookahead1W(87); // S^WS | '(:' | '{'
- try_BlockExpr();
- }
-
- function parse_PrimaryExpr()
- {
- eventHandler.startNonterminal("PrimaryExpr", e0);
- switch (l1)
- {
- case 184: // 'namespace'
- lookahead2W(254); // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 216: // 'processing-instruction'
- lookahead2W(252); // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 82: // 'attribute'
- case 121: // 'element'
- lookahead2W(257); // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 96: // 'comment'
- case 244: // 'text'
- lookahead2W(93); // S^WS | '#' | '(:' | '{'
- break;
- case 119: // 'document'
- case 202: // 'ordered'
- case 256: // 'unordered'
- lookahead2W(139); // S^WS | '#' | '(' | '(:' | '{'
- break;
- case 6: // EQName^Token
- case 70: // 'after'
- case 72: // 'allowing'
- case 73: // 'ancestor'
- case 74: // 'ancestor-or-self'
- case 75: // 'and'
- case 78: // 'array'
- case 79: // 'as'
- case 80: // 'ascending'
- case 81: // 'at'
- case 83: // 'base-uri'
- case 84: // 'before'
- case 85: // 'boundary-space'
- case 86: // 'break'
- case 88: // 'case'
- case 89: // 'cast'
- case 90: // 'castable'
- case 91: // 'catch'
- case 93: // 'child'
- case 94: // 'collation'
- case 97: // 'constraint'
- case 98: // 'construction'
- case 101: // 'context'
- case 102: // 'continue'
- case 103: // 'copy'
- case 104: // 'copy-namespaces'
- case 105: // 'count'
- case 106: // 'decimal-format'
- case 108: // 'declare'
- case 109: // 'default'
- case 110: // 'delete'
- case 111: // 'descendant'
- case 112: // 'descendant-or-self'
- case 113: // 'descending'
- case 118: // 'div'
- case 122: // 'else'
- case 123: // 'empty'
- case 125: // 'encoding'
- case 126: // 'end'
- case 128: // 'eq'
- case 129: // 'every'
- case 131: // 'except'
- case 132: // 'exit'
- case 133: // 'external'
- case 134: // 'first'
- case 135: // 'following'
- case 136: // 'following-sibling'
- case 137: // 'for'
- case 141: // 'ft-option'
- case 146: // 'ge'
- case 148: // 'group'
- case 150: // 'gt'
- case 151: // 'idiv'
- case 153: // 'import'
- case 154: // 'in'
- case 155: // 'index'
- case 159: // 'insert'
- case 160: // 'instance'
- case 161: // 'integrity'
- case 162: // 'intersect'
- case 163: // 'into'
- case 164: // 'is'
- case 167: // 'json-item'
- case 170: // 'last'
- case 171: // 'lax'
- case 172: // 'le'
- case 174: // 'let'
- case 176: // 'loop'
- case 178: // 'lt'
- case 180: // 'mod'
- case 181: // 'modify'
- case 182: // 'module'
- case 186: // 'ne'
- case 192: // 'nodes'
- case 194: // 'object'
- case 198: // 'only'
- case 199: // 'option'
- case 200: // 'or'
- case 201: // 'order'
- case 203: // 'ordering'
- case 206: // 'parent'
- case 212: // 'preceding'
- case 213: // 'preceding-sibling'
- case 218: // 'rename'
- case 219: // 'replace'
- case 220: // 'return'
- case 221: // 'returning'
- case 222: // 'revalidation'
- case 224: // 'satisfies'
- case 225: // 'schema'
- case 228: // 'score'
- case 229: // 'self'
- case 234: // 'sliding'
- case 235: // 'some'
- case 236: // 'stable'
- case 237: // 'start'
- case 240: // 'strict'
- case 248: // 'to'
- case 249: // 'treat'
- case 250: // 'try'
- case 251: // 'tumbling'
- case 252: // 'type'
- case 254: // 'union'
- case 257: // 'updating'
- case 260: // 'validate'
- case 261: // 'value'
- case 262: // 'variable'
- case 263: // 'version'
- case 266: // 'where'
- case 267: // 'while'
- case 270: // 'with'
- case 274: // 'xquery'
- lookahead2W(92); // S^WS | '#' | '(' | '(:'
- break;
- default:
- lk = l1;
- }
- if (lk == 2836 // '{' Wildcard
- || lk == 3348 // '{' EQName^Token
- || lk == 4372 // '{' IntegerLiteral
- || lk == 4884 // '{' DecimalLiteral
- || lk == 5396 // '{' DoubleLiteral
- || lk == 5908 // '{' StringLiteral
- || lk == 16148 // '{' '$'
- || lk == 16660 // '{' '%'
- || lk == 17684 // '{' '('
- || lk == 18196 // '{' '(#'
- || lk == 20756 // '{' '+'
- || lk == 21780 // '{' '-'
- || lk == 22804 // '{' '.'
- || lk == 23316 // '{' '..'
- || lk == 23828 // '{' '/'
- || lk == 24340 // '{' '//'
- || lk == 27924 // '{' '<'
- || lk == 28436 // '{' '<!--'
- || lk == 30484 // '{' '<?'
- || lk == 34068 // '{' '@'
- || lk == 35092 // '{' '['
- || lk == 36116 // '{' 'after'
- || lk == 37140 // '{' 'allowing'
- || lk == 37652 // '{' 'ancestor'
- || lk == 38164 // '{' 'ancestor-or-self'
- || lk == 38676 // '{' 'and'
- || lk == 39700 // '{' 'append'
- || lk == 40212 // '{' 'array'
- || lk == 40724 // '{' 'as'
- || lk == 41236 // '{' 'ascending'
- || lk == 41748 // '{' 'at'
- || lk == 42260 // '{' 'attribute'
- || lk == 42772 // '{' 'base-uri'
- || lk == 43284 // '{' 'before'
- || lk == 43796 // '{' 'boundary-space'
- || lk == 44308 // '{' 'break'
- || lk == 45332 // '{' 'case'
- || lk == 45844 // '{' 'cast'
- || lk == 46356 // '{' 'castable'
- || lk == 46868 // '{' 'catch'
- || lk == 47892 // '{' 'child'
- || lk == 48404 // '{' 'collation'
- || lk == 49428 // '{' 'comment'
- || lk == 49940 // '{' 'constraint'
- || lk == 50452 // '{' 'construction'
- || lk == 51988 // '{' 'context'
- || lk == 52500 // '{' 'continue'
- || lk == 53012 // '{' 'copy'
- || lk == 53524 // '{' 'copy-namespaces'
- || lk == 54036 // '{' 'count'
- || lk == 54548 // '{' 'decimal-format'
- || lk == 55572 // '{' 'declare'
- || lk == 56084 // '{' 'default'
- || lk == 56596 // '{' 'delete'
- || lk == 57108 // '{' 'descendant'
- || lk == 57620 // '{' 'descendant-or-self'
- || lk == 58132 // '{' 'descending'
- || lk == 60692 // '{' 'div'
- || lk == 61204 // '{' 'document'
- || lk == 61716 // '{' 'document-node'
- || lk == 62228 // '{' 'element'
- || lk == 62740 // '{' 'else'
- || lk == 63252 // '{' 'empty'
- || lk == 63764 // '{' 'empty-sequence'
- || lk == 64276 // '{' 'encoding'
- || lk == 64788 // '{' 'end'
- || lk == 65812 // '{' 'eq'
- || lk == 66324 // '{' 'every'
- || lk == 67348 // '{' 'except'
- || lk == 67860 // '{' 'exit'
- || lk == 68372 // '{' 'external'
- || lk == 68884 // '{' 'first'
- || lk == 69396 // '{' 'following'
- || lk == 69908 // '{' 'following-sibling'
- || lk == 70420 // '{' 'for'
- || lk == 72468 // '{' 'ft-option'
- || lk == 74516 // '{' 'function'
- || lk == 75028 // '{' 'ge'
- || lk == 76052 // '{' 'group'
- || lk == 77076 // '{' 'gt'
- || lk == 77588 // '{' 'idiv'
- || lk == 78100 // '{' 'if'
- || lk == 78612 // '{' 'import'
- || lk == 79124 // '{' 'in'
- || lk == 79636 // '{' 'index'
- || lk == 81684 // '{' 'insert'
- || lk == 82196 // '{' 'instance'
- || lk == 82708 // '{' 'integrity'
- || lk == 83220 // '{' 'intersect'
- || lk == 83732 // '{' 'into'
- || lk == 84244 // '{' 'is'
- || lk == 84756 // '{' 'item'
- || lk == 85780 // '{' 'json-item'
- || lk == 87316 // '{' 'last'
- || lk == 87828 // '{' 'lax'
- || lk == 88340 // '{' 'le'
- || lk == 89364 // '{' 'let'
- || lk == 90388 // '{' 'loop'
- || lk == 91412 // '{' 'lt'
- || lk == 92436 // '{' 'mod'
- || lk == 92948 // '{' 'modify'
- || lk == 93460 // '{' 'module'
- || lk == 94484 // '{' 'namespace'
- || lk == 94996 // '{' 'namespace-node'
- || lk == 95508 // '{' 'ne'
- || lk == 98068 // '{' 'node'
- || lk == 98580 // '{' 'nodes'
- || lk == 99604 // '{' 'object'
- || lk == 101652 // '{' 'only'
- || lk == 102164 // '{' 'option'
- || lk == 102676 // '{' 'or'
- || lk == 103188 // '{' 'order'
- || lk == 103700 // '{' 'ordered'
- || lk == 104212 // '{' 'ordering'
- || lk == 105748 // '{' 'parent'
- || lk == 108820 // '{' 'preceding'
- || lk == 109332 // '{' 'preceding-sibling'
- || lk == 110868 // '{' 'processing-instruction'
- || lk == 111892 // '{' 'rename'
- || lk == 112404 // '{' 'replace'
- || lk == 112916 // '{' 'return'
- || lk == 113428 // '{' 'returning'
- || lk == 113940 // '{' 'revalidation'
- || lk == 114964 // '{' 'satisfies'
- || lk == 115476 // '{' 'schema'
- || lk == 115988 // '{' 'schema-attribute'
- || lk == 116500 // '{' 'schema-element'
- || lk == 117012 // '{' 'score'
- || lk == 117524 // '{' 'self'
- || lk == 120084 // '{' 'sliding'
- || lk == 120596 // '{' 'some'
- || lk == 121108 // '{' 'stable'
- || lk == 121620 // '{' 'start'
- || lk == 123156 // '{' 'strict'
- || lk == 124692 // '{' 'switch'
- || lk == 125204 // '{' 'text'
- || lk == 127252 // '{' 'to'
- || lk == 127764 // '{' 'treat'
- || lk == 128276 // '{' 'try'
- || lk == 128788 // '{' 'tumbling'
- || lk == 129300 // '{' 'type'
- || lk == 129812 // '{' 'typeswitch'
- || lk == 130324 // '{' 'union'
- || lk == 131348 // '{' 'unordered'
- || lk == 131860 // '{' 'updating'
- || lk == 133396 // '{' 'validate'
- || lk == 133908 // '{' 'value'
- || lk == 134420 // '{' 'variable'
- || lk == 134932 // '{' 'version'
- || lk == 136468 // '{' 'where'
- || lk == 136980 // '{' 'while'
- || lk == 138516 // '{' 'with'
- || lk == 140564 // '{' 'xquery'
- || lk == 141588 // '{' '{'
- || lk == 142612 // '{' '{|'
- || lk == 144660) // '{' '}'
- {
- lk = memoized(12, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_BlockExpr();
- lk = -10;
- }
- catch (p10A)
- {
- lk = -11;
- }
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(12, e0, lk);
- }
- }
- switch (lk)
- {
- case 8: // IntegerLiteral
- case 9: // DecimalLiteral
- case 10: // DoubleLiteral
- case 11: // StringLiteral
- parse_Literal();
- break;
- case 31: // '$'
- parse_VarRef();
- break;
- case 34: // '('
- parse_ParenthesizedExpr();
- break;
- case 44: // '.'
- parse_ContextItemExpr();
- break;
- case 17414: // EQName^Token '('
- case 17478: // 'after' '('
- case 17480: // 'allowing' '('
- case 17481: // 'ancestor' '('
- case 17482: // 'ancestor-or-self' '('
- case 17483: // 'and' '('
- case 17486: // 'array' '('
- case 17487: // 'as' '('
- case 17488: // 'ascending' '('
- case 17489: // 'at' '('
- case 17491: // 'base-uri' '('
- case 17492: // 'before' '('
- case 17493: // 'boundary-space' '('
- case 17494: // 'break' '('
- case 17496: // 'case' '('
- case 17497: // 'cast' '('
- case 17498: // 'castable' '('
- case 17499: // 'catch' '('
- case 17501: // 'child' '('
- case 17502: // 'collation' '('
- case 17505: // 'constraint' '('
- case 17506: // 'construction' '('
- case 17509: // 'context' '('
- case 17510: // 'continue' '('
- case 17511: // 'copy' '('
- case 17512: // 'copy-namespaces' '('
- case 17513: // 'count' '('
- case 17514: // 'decimal-format' '('
- case 17516: // 'declare' '('
- case 17517: // 'default' '('
- case 17518: // 'delete' '('
- case 17519: // 'descendant' '('
- case 17520: // 'descendant-or-self' '('
- case 17521: // 'descending' '('
- case 17526: // 'div' '('
- case 17527: // 'document' '('
- case 17530: // 'else' '('
- case 17531: // 'empty' '('
- case 17533: // 'encoding' '('
- case 17534: // 'end' '('
- case 17536: // 'eq' '('
- case 17537: // 'every' '('
- case 17539: // 'except' '('
- case 17540: // 'exit' '('
- case 17541: // 'external' '('
- case 17542: // 'first' '('
- case 17543: // 'following' '('
- case 17544: // 'following-sibling' '('
- case 17545: // 'for' '('
- case 17549: // 'ft-option' '('
- case 17554: // 'ge' '('
- case 17556: // 'group' '('
- case 17558: // 'gt' '('
- case 17559: // 'idiv' '('
- case 17561: // 'import' '('
- case 17562: // 'in' '('
- case 17563: // 'index' '('
- case 17567: // 'insert' '('
- case 17568: // 'instance' '('
- case 17569: // 'integrity' '('
- case 17570: // 'intersect' '('
- case 17571: // 'into' '('
- case 17572: // 'is' '('
- case 17575: // 'json-item' '('
- case 17578: // 'last' '('
- case 17579: // 'lax' '('
- case 17580: // 'le' '('
- case 17582: // 'let' '('
- case 17584: // 'loop' '('
- case 17586: // 'lt' '('
- case 17588: // 'mod' '('
- case 17589: // 'modify' '('
- case 17590: // 'module' '('
- case 17592: // 'namespace' '('
- case 17594: // 'ne' '('
- case 17600: // 'nodes' '('
- case 17602: // 'object' '('
- case 17606: // 'only' '('
- case 17607: // 'option' '('
- case 17608: // 'or' '('
- case 17609: // 'order' '('
- case 17610: // 'ordered' '('
- case 17611: // 'ordering' '('
- case 17614: // 'parent' '('
- case 17620: // 'preceding' '('
- case 17621: // 'preceding-sibling' '('
- case 17626: // 'rename' '('
- case 17627: // 'replace' '('
- case 17628: // 'return' '('
- case 17629: // 'returning' '('
- case 17630: // 'revalidation' '('
- case 17632: // 'satisfies' '('
- case 17633: // 'schema' '('
- case 17636: // 'score' '('
- case 17637: // 'self' '('
- case 17642: // 'sliding' '('
- case 17643: // 'some' '('
- case 17644: // 'stable' '('
- case 17645: // 'start' '('
- case 17648: // 'strict' '('
- case 17656: // 'to' '('
- case 17657: // 'treat' '('
- case 17658: // 'try' '('
- case 17659: // 'tumbling' '('
- case 17660: // 'type' '('
- case 17662: // 'union' '('
- case 17664: // 'unordered' '('
- case 17665: // 'updating' '('
- case 17668: // 'validate' '('
- case 17669: // 'value' '('
- case 17670: // 'variable' '('
- case 17671: // 'version' '('
- case 17674: // 'where' '('
- case 17675: // 'while' '('
- case 17678: // 'with' '('
- case 17682: // 'xquery' '('
- parse_FunctionCall();
- break;
- case 141514: // 'ordered' '{'
- parse_OrderedExpr();
- break;
- case 141568: // 'unordered' '{'
- parse_UnorderedExpr();
- break;
- case 32: // '%'
- case 120: // 'document-node'
- case 124: // 'empty-sequence'
- case 145: // 'function'
- case 152: // 'if'
- case 165: // 'item'
- case 185: // 'namespace-node'
- case 191: // 'node'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 243: // 'switch'
- case 253: // 'typeswitch'
- case 14854: // EQName^Token '#'
- case 14918: // 'after' '#'
- case 14920: // 'allowing' '#'
- case 14921: // 'ancestor' '#'
- case 14922: // 'ancestor-or-self' '#'
- case 14923: // 'and' '#'
- case 14926: // 'array' '#'
- case 14927: // 'as' '#'
- case 14928: // 'ascending' '#'
- case 14929: // 'at' '#'
- case 14930: // 'attribute' '#'
- case 14931: // 'base-uri' '#'
- case 14932: // 'before' '#'
- case 14933: // 'boundary-space' '#'
- case 14934: // 'break' '#'
- case 14936: // 'case' '#'
- case 14937: // 'cast' '#'
- case 14938: // 'castable' '#'
- case 14939: // 'catch' '#'
- case 14941: // 'child' '#'
- case 14942: // 'collation' '#'
- case 14944: // 'comment' '#'
- case 14945: // 'constraint' '#'
- case 14946: // 'construction' '#'
- case 14949: // 'context' '#'
- case 14950: // 'continue' '#'
- case 14951: // 'copy' '#'
- case 14952: // 'copy-namespaces' '#'
- case 14953: // 'count' '#'
- case 14954: // 'decimal-format' '#'
- case 14956: // 'declare' '#'
- case 14957: // 'default' '#'
- case 14958: // 'delete' '#'
- case 14959: // 'descendant' '#'
- case 14960: // 'descendant-or-self' '#'
- case 14961: // 'descending' '#'
- case 14966: // 'div' '#'
- case 14967: // 'document' '#'
- case 14969: // 'element' '#'
- case 14970: // 'else' '#'
- case 14971: // 'empty' '#'
- case 14973: // 'encoding' '#'
- case 14974: // 'end' '#'
- case 14976: // 'eq' '#'
- case 14977: // 'every' '#'
- case 14979: // 'except' '#'
- case 14980: // 'exit' '#'
- case 14981: // 'external' '#'
- case 14982: // 'first' '#'
- case 14983: // 'following' '#'
- case 14984: // 'following-sibling' '#'
- case 14985: // 'for' '#'
- case 14989: // 'ft-option' '#'
- case 14994: // 'ge' '#'
- case 14996: // 'group' '#'
- case 14998: // 'gt' '#'
- case 14999: // 'idiv' '#'
- case 15001: // 'import' '#'
- case 15002: // 'in' '#'
- case 15003: // 'index' '#'
- case 15007: // 'insert' '#'
- case 15008: // 'instance' '#'
- case 15009: // 'integrity' '#'
- case 15010: // 'intersect' '#'
- case 15011: // 'into' '#'
- case 15012: // 'is' '#'
- case 15015: // 'json-item' '#'
- case 15018: // 'last' '#'
- case 15019: // 'lax' '#'
- case 15020: // 'le' '#'
- case 15022: // 'let' '#'
- case 15024: // 'loop' '#'
- case 15026: // 'lt' '#'
- case 15028: // 'mod' '#'
- case 15029: // 'modify' '#'
- case 15030: // 'module' '#'
- case 15032: // 'namespace' '#'
- case 15034: // 'ne' '#'
- case 15040: // 'nodes' '#'
- case 15042: // 'object' '#'
- case 15046: // 'only' '#'
- case 15047: // 'option' '#'
- case 15048: // 'or' '#'
- case 15049: // 'order' '#'
- case 15050: // 'ordered' '#'
- case 15051: // 'ordering' '#'
- case 15054: // 'parent' '#'
- case 15060: // 'preceding' '#'
- case 15061: // 'preceding-sibling' '#'
- case 15064: // 'processing-instruction' '#'
- case 15066: // 'rename' '#'
- case 15067: // 'replace' '#'
- case 15068: // 'return' '#'
- case 15069: // 'returning' '#'
- case 15070: // 'revalidation' '#'
- case 15072: // 'satisfies' '#'
- case 15073: // 'schema' '#'
- case 15076: // 'score' '#'
- case 15077: // 'self' '#'
- case 15082: // 'sliding' '#'
- case 15083: // 'some' '#'
- case 15084: // 'stable' '#'
- case 15085: // 'start' '#'
- case 15088: // 'strict' '#'
- case 15092: // 'text' '#'
- case 15096: // 'to' '#'
- case 15097: // 'treat' '#'
- case 15098: // 'try' '#'
- case 15099: // 'tumbling' '#'
- case 15100: // 'type' '#'
- case 15102: // 'union' '#'
- case 15104: // 'unordered' '#'
- case 15105: // 'updating' '#'
- case 15108: // 'validate' '#'
- case 15109: // 'value' '#'
- case 15110: // 'variable' '#'
- case 15111: // 'version' '#'
- case 15114: // 'where' '#'
- case 15115: // 'while' '#'
- case 15118: // 'with' '#'
- case 15122: // 'xquery' '#'
- parse_FunctionItemExpr();
- break;
- case -10:
- parse_BlockExpr();
- break;
- case -11:
- parse_ObjectConstructor();
- break;
- case 68: // '['
- parse_ArrayConstructor();
- break;
- case 278: // '{|'
- parse_JSONSimpleObjectUnion();
- break;
- default:
- parse_Constructor();
- }
- eventHandler.endNonterminal("PrimaryExpr", e0);
- }
-
- function try_PrimaryExpr()
- {
- switch (l1)
- {
- case 184: // 'namespace'
- lookahead2W(254); // NCName^Token | S^WS | '#' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 216: // 'processing-instruction'
- lookahead2W(252); // NCName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 276: // '{'
- lookahead2W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- break;
- case 82: // 'attribute'
- case 121: // 'element'
- lookahead2W(257); // EQName^Token | S^WS | '#' | '(:' | 'after' | 'allowing' | 'ancestor' |
- break;
- case 96: // 'comment'
- case 244: // 'text'
- lookahead2W(93); // S^WS | '#' | '(:' | '{'
- break;
- case 119: // 'document'
- case 202: // 'ordered'
- case 256: // 'unordered'
- lookahead2W(139); // S^WS | '#' | '(' | '(:' | '{'
- break;
- case 6: // EQName^Token
- case 70: // 'after'
- case 72: // 'allowing'
- case 73: // 'ancestor'
- case 74: // 'ancestor-or-self'
- case 75: // 'and'
- case 78: // 'array'
- case 79: // 'as'
- case 80: // 'ascending'
- case 81: // 'at'
- case 83: // 'base-uri'
- case 84: // 'before'
- case 85: // 'boundary-space'
- case 86: // 'break'
- case 88: // 'case'
- case 89: // 'cast'
- case 90: // 'castable'
- case 91: // 'catch'
- case 93: // 'child'
- case 94: // 'collation'
- case 97: // 'constraint'
- case 98: // 'construction'
- case 101: // 'context'
- case 102: // 'continue'
- case 103: // 'copy'
- case 104: // 'copy-namespaces'
- case 105: // 'count'
- case 106: // 'decimal-format'
- case 108: // 'declare'
- case 109: // 'default'
- case 110: // 'delete'
- case 111: // 'descendant'
- case 112: // 'descendant-or-self'
- case 113: // 'descending'
- case 118: // 'div'
- case 122: // 'else'
- case 123: // 'empty'
- case 125: // 'encoding'
- case 126: // 'end'
- case 128: // 'eq'
- case 129: // 'every'
- case 131: // 'except'
- case 132: // 'exit'
- case 133: // 'external'
- case 134: // 'first'
- case 135: // 'following'
- case 136: // 'following-sibling'
- case 137: // 'for'
- case 141: // 'ft-option'
- case 146: // 'ge'
- case 148: // 'group'
- case 150: // 'gt'
- case 151: // 'idiv'
- case 153: // 'import'
- case 154: // 'in'
- case 155: // 'index'
- case 159: // 'insert'
- case 160: // 'instance'
- case 161: // 'integrity'
- case 162: // 'intersect'
- case 163: // 'into'
- case 164: // 'is'
- case 167: // 'json-item'
- case 170: // 'last'
- case 171: // 'lax'
- case 172: // 'le'
- case 174: // 'let'
- case 176: // 'loop'
- case 178: // 'lt'
- case 180: // 'mod'
- case 181: // 'modify'
- case 182: // 'module'
- case 186: // 'ne'
- case 192: // 'nodes'
- case 194: // 'object'
- case 198: // 'only'
- case 199: // 'option'
- case 200: // 'or'
- case 201: // 'order'
- case 203: // 'ordering'
- case 206: // 'parent'
- case 212: // 'preceding'
- case 213: // 'preceding-sibling'
- case 218: // 'rename'
- case 219: // 'replace'
- case 220: // 'return'
- case 221: // 'returning'
- case 222: // 'revalidation'
- case 224: // 'satisfies'
- case 225: // 'schema'
- case 228: // 'score'
- case 229: // 'self'
- case 234: // 'sliding'
- case 235: // 'some'
- case 236: // 'stable'
- case 237: // 'start'
- case 240: // 'strict'
- case 248: // 'to'
- case 249: // 'treat'
- case 250: // 'try'
- case 251: // 'tumbling'
- case 252: // 'type'
- case 254: // 'union'
- case 257: // 'updating'
- case 260: // 'validate'
- case 261: // 'value'
- case 262: // 'variable'
- case 263: // 'version'
- case 266: // 'where'
- case 267: // 'while'
- case 270: // 'with'
- case 274: // 'xquery'
- lookahead2W(92); // S^WS | '#' | '(' | '(:'
- break;
- default:
- lk = l1;
- }
- if (lk == 2836 // '{' Wildcard
- || lk == 3348 // '{' EQName^Token
- || lk == 4372 // '{' IntegerLiteral
- || lk == 4884 // '{' DecimalLiteral
- || lk == 5396 // '{' DoubleLiteral
- || lk == 5908 // '{' StringLiteral
- || lk == 16148 // '{' '$'
- || lk == 16660 // '{' '%'
- || lk == 17684 // '{' '('
- || lk == 18196 // '{' '(#'
- || lk == 20756 // '{' '+'
- || lk == 21780 // '{' '-'
- || lk == 22804 // '{' '.'
- || lk == 23316 // '{' '..'
- || lk == 23828 // '{' '/'
- || lk == 24340 // '{' '//'
- || lk == 27924 // '{' '<'
- || lk == 28436 // '{' '<!--'
- || lk == 30484 // '{' '<?'
- || lk == 34068 // '{' '@'
- || lk == 35092 // '{' '['
- || lk == 36116 // '{' 'after'
- || lk == 37140 // '{' 'allowing'
- || lk == 37652 // '{' 'ancestor'
- || lk == 38164 // '{' 'ancestor-or-self'
- || lk == 38676 // '{' 'and'
- || lk == 39700 // '{' 'append'
- || lk == 40212 // '{' 'array'
- || lk == 40724 // '{' 'as'
- || lk == 41236 // '{' 'ascending'
- || lk == 41748 // '{' 'at'
- || lk == 42260 // '{' 'attribute'
- || lk == 42772 // '{' 'base-uri'
- || lk == 43284 // '{' 'before'
- || lk == 43796 // '{' 'boundary-space'
- || lk == 44308 // '{' 'break'
- || lk == 45332 // '{' 'case'
- || lk == 45844 // '{' 'cast'
- || lk == 46356 // '{' 'castable'
- || lk == 46868 // '{' 'catch'
- || lk == 47892 // '{' 'child'
- || lk == 48404 // '{' 'collation'
- || lk == 49428 // '{' 'comment'
- || lk == 49940 // '{' 'constraint'
- || lk == 50452 // '{' 'construction'
- || lk == 51988 // '{' 'context'
- || lk == 52500 // '{' 'continue'
- || lk == 53012 // '{' 'copy'
- || lk == 53524 // '{' 'copy-namespaces'
- || lk == 54036 // '{' 'count'
- || lk == 54548 // '{' 'decimal-format'
- || lk == 55572 // '{' 'declare'
- || lk == 56084 // '{' 'default'
- || lk == 56596 // '{' 'delete'
- || lk == 57108 // '{' 'descendant'
- || lk == 57620 // '{' 'descendant-or-self'
- || lk == 58132 // '{' 'descending'
- || lk == 60692 // '{' 'div'
- || lk == 61204 // '{' 'document'
- || lk == 61716 // '{' 'document-node'
- || lk == 62228 // '{' 'element'
- || lk == 62740 // '{' 'else'
- || lk == 63252 // '{' 'empty'
- || lk == 63764 // '{' 'empty-sequence'
- || lk == 64276 // '{' 'encoding'
- || lk == 64788 // '{' 'end'
- || lk == 65812 // '{' 'eq'
- || lk == 66324 // '{' 'every'
- || lk == 67348 // '{' 'except'
- || lk == 67860 // '{' 'exit'
- || lk == 68372 // '{' 'external'
- || lk == 68884 // '{' 'first'
- || lk == 69396 // '{' 'following'
- || lk == 69908 // '{' 'following-sibling'
- || lk == 70420 // '{' 'for'
- || lk == 72468 // '{' 'ft-option'
- || lk == 74516 // '{' 'function'
- || lk == 75028 // '{' 'ge'
- || lk == 76052 // '{' 'group'
- || lk == 77076 // '{' 'gt'
- || lk == 77588 // '{' 'idiv'
- || lk == 78100 // '{' 'if'
- || lk == 78612 // '{' 'import'
- || lk == 79124 // '{' 'in'
- || lk == 79636 // '{' 'index'
- || lk == 81684 // '{' 'insert'
- || lk == 82196 // '{' 'instance'
- || lk == 82708 // '{' 'integrity'
- || lk == 83220 // '{' 'intersect'
- || lk == 83732 // '{' 'into'
- || lk == 84244 // '{' 'is'
- || lk == 84756 // '{' 'item'
- || lk == 85780 // '{' 'json-item'
- || lk == 87316 // '{' 'last'
- || lk == 87828 // '{' 'lax'
- || lk == 88340 // '{' 'le'
- || lk == 89364 // '{' 'let'
- || lk == 90388 // '{' 'loop'
- || lk == 91412 // '{' 'lt'
- || lk == 92436 // '{' 'mod'
- || lk == 92948 // '{' 'modify'
- || lk == 93460 // '{' 'module'
- || lk == 94484 // '{' 'namespace'
- || lk == 94996 // '{' 'namespace-node'
- || lk == 95508 // '{' 'ne'
- || lk == 98068 // '{' 'node'
- || lk == 98580 // '{' 'nodes'
- || lk == 99604 // '{' 'object'
- || lk == 101652 // '{' 'only'
- || lk == 102164 // '{' 'option'
- || lk == 102676 // '{' 'or'
- || lk == 103188 // '{' 'order'
- || lk == 103700 // '{' 'ordered'
- || lk == 104212 // '{' 'ordering'
- || lk == 105748 // '{' 'parent'
- || lk == 108820 // '{' 'preceding'
- || lk == 109332 // '{' 'preceding-sibling'
- || lk == 110868 // '{' 'processing-instruction'
- || lk == 111892 // '{' 'rename'
- || lk == 112404 // '{' 'replace'
- || lk == 112916 // '{' 'return'
- || lk == 113428 // '{' 'returning'
- || lk == 113940 // '{' 'revalidation'
- || lk == 114964 // '{' 'satisfies'
- || lk == 115476 // '{' 'schema'
- || lk == 115988 // '{' 'schema-attribute'
- || lk == 116500 // '{' 'schema-element'
- || lk == 117012 // '{' 'score'
- || lk == 117524 // '{' 'self'
- || lk == 120084 // '{' 'sliding'
- || lk == 120596 // '{' 'some'
- || lk == 121108 // '{' 'stable'
- || lk == 121620 // '{' 'start'
- || lk == 123156 // '{' 'strict'
- || lk == 124692 // '{' 'switch'
- || lk == 125204 // '{' 'text'
- || lk == 127252 // '{' 'to'
- || lk == 127764 // '{' 'treat'
- || lk == 128276 // '{' 'try'
- || lk == 128788 // '{' 'tumbling'
- || lk == 129300 // '{' 'type'
- || lk == 129812 // '{' 'typeswitch'
- || lk == 130324 // '{' 'union'
- || lk == 131348 // '{' 'unordered'
- || lk == 131860 // '{' 'updating'
- || lk == 133396 // '{' 'validate'
- || lk == 133908 // '{' 'value'
- || lk == 134420 // '{' 'variable'
- || lk == 134932 // '{' 'version'
- || lk == 136468 // '{' 'where'
- || lk == 136980 // '{' 'while'
- || lk == 138516 // '{' 'with'
- || lk == 140564 // '{' 'xquery'
- || lk == 141588 // '{' '{'
- || lk == 142612 // '{' '{|'
- || lk == 144660) // '{' '}'
- {
- lk = memoized(12, e0);
- if (lk == 0)
- {
- var b0A = b0; var e0A = e0; var l1A = l1;
- var b1A = b1; var e1A = e1; var l2A = l2;
- var b2A = b2; var e2A = e2;
- try
- {
- try_BlockExpr();
- memoize(12, e0A, -10);
- lk = -14;
- }
- catch (p10A)
- {
- lk = -11;
- b0 = b0A; e0 = e0A; l1 = l1A; if (l1 == 0) {end = e0A;} else {
- b1 = b1A; e1 = e1A; l2 = l2A; if (l2 == 0) {end = e1A;} else {
- b2 = b2A; e2 = e2A; end = e2A; }}
- memoize(12, e0A, -11);
- }
- }
- }
- switch (lk)
- {
- case 8: // IntegerLiteral
- case 9: // DecimalLiteral
- case 10: // DoubleLiteral
- case 11: // StringLiteral
- try_Literal();
- break;
- case 31: // '$'
- try_VarRef();
- break;
- case 34: // '('
- try_ParenthesizedExpr();
- break;
- case 44: // '.'
- try_ContextItemExpr();
- break;
- case 17414: // EQName^Token '('
- case 17478: // 'after' '('
- case 17480: // 'allowing' '('
- case 17481: // 'ancestor' '('
- case 17482: // 'ancestor-or-self' '('
- case 17483: // 'and' '('
- case 17486: // 'array' '('
- case 17487: // 'as' '('
- case 17488: // 'ascending' '('
- case 17489: // 'at' '('
- case 17491: // 'base-uri' '('
- case 17492: // 'before' '('
- case 17493: // 'boundary-space' '('
- case 17494: // 'break' '('
- case 17496: // 'case' '('
- case 17497: // 'cast' '('
- case 17498: // 'castable' '('
- case 17499: // 'catch' '('
- case 17501: // 'child' '('
- case 17502: // 'collation' '('
- case 17505: // 'constraint' '('
- case 17506: // 'construction' '('
- case 17509: // 'context' '('
- case 17510: // 'continue' '('
- case 17511: // 'copy' '('
- case 17512: // 'copy-namespaces' '('
- case 17513: // 'count' '('
- case 17514: // 'decimal-format' '('
- case 17516: // 'declare' '('
- case 17517: // 'default' '('
- case 17518: // 'delete' '('
- case 17519: // 'descendant' '('
- case 17520: // 'descendant-or-self' '('
- case 17521: // 'descending' '('
- case 17526: // 'div' '('
- case 17527: // 'document' '('
- case 17530: // 'else' '('
- case 17531: // 'empty' '('
- case 17533: // 'encoding' '('
- case 17534: // 'end' '('
- case 17536: // 'eq' '('
- case 17537: // 'every' '('
- case 17539: // 'except' '('
- case 17540: // 'exit' '('
- case 17541: // 'external' '('
- case 17542: // 'first' '('
- case 17543: // 'following' '('
- case 17544: // 'following-sibling' '('
- case 17545: // 'for' '('
- case 17549: // 'ft-option' '('
- case 17554: // 'ge' '('
- case 17556: // 'group' '('
- case 17558: // 'gt' '('
- case 17559: // 'idiv' '('
- case 17561: // 'import' '('
- case 17562: // 'in' '('
- case 17563: // 'index' '('
- case 17567: // 'insert' '('
- case 17568: // 'instance' '('
- case 17569: // 'integrity' '('
- case 17570: // 'intersect' '('
- case 17571: // 'into' '('
- case 17572: // 'is' '('
- case 17575: // 'json-item' '('
- case 17578: // 'last' '('
- case 17579: // 'lax' '('
- case 17580: // 'le' '('
- case 17582: // 'let' '('
- case 17584: // 'loop' '('
- case 17586: // 'lt' '('
- case 17588: // 'mod' '('
- case 17589: // 'modify' '('
- case 17590: // 'module' '('
- case 17592: // 'namespace' '('
- case 17594: // 'ne' '('
- case 17600: // 'nodes' '('
- case 17602: // 'object' '('
- case 17606: // 'only' '('
- case 17607: // 'option' '('
- case 17608: // 'or' '('
- case 17609: // 'order' '('
- case 17610: // 'ordered' '('
- case 17611: // 'ordering' '('
- case 17614: // 'parent' '('
- case 17620: // 'preceding' '('
- case 17621: // 'preceding-sibling' '('
- case 17626: // 'rename' '('
- case 17627: // 'replace' '('
- case 17628: // 'return' '('
- case 17629: // 'returning' '('
- case 17630: // 'revalidation' '('
- case 17632: // 'satisfies' '('
- case 17633: // 'schema' '('
- case 17636: // 'score' '('
- case 17637: // 'self' '('
- case 17642: // 'sliding' '('
- case 17643: // 'some' '('
- case 17644: // 'stable' '('
- case 17645: // 'start' '('
- case 17648: // 'strict' '('
- case 17656: // 'to' '('
- case 17657: // 'treat' '('
- case 17658: // 'try' '('
- case 17659: // 'tumbling' '('
- case 17660: // 'type' '('
- case 17662: // 'union' '('
- case 17664: // 'unordered' '('
- case 17665: // 'updating' '('
- case 17668: // 'validate' '('
- case 17669: // 'value' '('
- case 17670: // 'variable' '('
- case 17671: // 'version' '('
- case 17674: // 'where' '('
- case 17675: // 'while' '('
- case 17678: // 'with' '('
- case 17682: // 'xquery' '('
- try_FunctionCall();
- break;
- case 141514: // 'ordered' '{'
- try_OrderedExpr();
- break;
- case 141568: // 'unordered' '{'
- try_UnorderedExpr();
- break;
- case 32: // '%'
- case 120: // 'document-node'
- case 124: // 'empty-sequence'
- case 145: // 'function'
- case 152: // 'if'
- case 165: // 'item'
- case 185: // 'namespace-node'
- case 191: // 'node'
- case 226: // 'schema-attribute'
- case 227: // 'schema-element'
- case 243: // 'switch'
- case 253: // 'typeswitch'
- case 14854: // EQName^Token '#'
- case 14918: // 'after' '#'
- case 14920: // 'allowing' '#'
- case 14921: // 'ancestor' '#'
- case 14922: // 'ancestor-or-self' '#'
- case 14923: // 'and' '#'
- case 14926: // 'array' '#'
- case 14927: // 'as' '#'
- case 14928: // 'ascending' '#'
- case 14929: // 'at' '#'
- case 14930: // 'attribute' '#'
- case 14931: // 'base-uri' '#'
- case 14932: // 'before' '#'
- case 14933: // 'boundary-space' '#'
- case 14934: // 'break' '#'
- case 14936: // 'case' '#'
- case 14937: // 'cast' '#'
- case 14938: // 'castable' '#'
- case 14939: // 'catch' '#'
- case 14941: // 'child' '#'
- case 14942: // 'collation' '#'
- case 14944: // 'comment' '#'
- case 14945: // 'constraint' '#'
- case 14946: // 'construction' '#'
- case 14949: // 'context' '#'
- case 14950: // 'continue' '#'
- case 14951: // 'copy' '#'
- case 14952: // 'copy-namespaces' '#'
- case 14953: // 'count' '#'
- case 14954: // 'decimal-format' '#'
- case 14956: // 'declare' '#'
- case 14957: // 'default' '#'
- case 14958: // 'delete' '#'
- case 14959: // 'descendant' '#'
- case 14960: // 'descendant-or-self' '#'
- case 14961: // 'descending' '#'
- case 14966: // 'div' '#'
- case 14967: // 'document' '#'
- case 14969: // 'element' '#'
- case 14970: // 'else' '#'
- case 14971: // 'empty' '#'
- case 14973: // 'encoding' '#'
- case 14974: // 'end' '#'
- case 14976: // 'eq' '#'
- case 14977: // 'every' '#'
- case 14979: // 'except' '#'
- case 14980: // 'exit' '#'
- case 14981: // 'external' '#'
- case 14982: // 'first' '#'
- case 14983: // 'following' '#'
- case 14984: // 'following-sibling' '#'
- case 14985: // 'for' '#'
- case 14989: // 'ft-option' '#'
- case 14994: // 'ge' '#'
- case 14996: // 'group' '#'
- case 14998: // 'gt' '#'
- case 14999: // 'idiv' '#'
- case 15001: // 'import' '#'
- case 15002: // 'in' '#'
- case 15003: // 'index' '#'
- case 15007: // 'insert' '#'
- case 15008: // 'instance' '#'
- case 15009: // 'integrity' '#'
- case 15010: // 'intersect' '#'
- case 15011: // 'into' '#'
- case 15012: // 'is' '#'
- case 15015: // 'json-item' '#'
- case 15018: // 'last' '#'
- case 15019: // 'lax' '#'
- case 15020: // 'le' '#'
- case 15022: // 'let' '#'
- case 15024: // 'loop' '#'
- case 15026: // 'lt' '#'
- case 15028: // 'mod' '#'
- case 15029: // 'modify' '#'
- case 15030: // 'module' '#'
- case 15032: // 'namespace' '#'
- case 15034: // 'ne' '#'
- case 15040: // 'nodes' '#'
- case 15042: // 'object' '#'
- case 15046: // 'only' '#'
- case 15047: // 'option' '#'
- case 15048: // 'or' '#'
- case 15049: // 'order' '#'
- case 15050: // 'ordered' '#'
- case 15051: // 'ordering' '#'
- case 15054: // 'parent' '#'
- case 15060: // 'preceding' '#'
- case 15061: // 'preceding-sibling' '#'
- case 15064: // 'processing-instruction' '#'
- case 15066: // 'rename' '#'
- case 15067: // 'replace' '#'
- case 15068: // 'return' '#'
- case 15069: // 'returning' '#'
- case 15070: // 'revalidation' '#'
- case 15072: // 'satisfies' '#'
- case 15073: // 'schema' '#'
- case 15076: // 'score' '#'
- case 15077: // 'self' '#'
- case 15082: // 'sliding' '#'
- case 15083: // 'some' '#'
- case 15084: // 'stable' '#'
- case 15085: // 'start' '#'
- case 15088: // 'strict' '#'
- case 15092: // 'text' '#'
- case 15096: // 'to' '#'
- case 15097: // 'treat' '#'
- case 15098: // 'try' '#'
- case 15099: // 'tumbling' '#'
- case 15100: // 'type' '#'
- case 15102: // 'union' '#'
- case 15104: // 'unordered' '#'
- case 15105: // 'updating' '#'
- case 15108: // 'validate' '#'
- case 15109: // 'value' '#'
- case 15110: // 'variable' '#'
- case 15111: // 'version' '#'
- case 15114: // 'where' '#'
- case 15115: // 'while' '#'
- case 15118: // 'with' '#'
- case 15122: // 'xquery' '#'
- try_FunctionItemExpr();
- break;
- case -10:
- try_BlockExpr();
- break;
- case -11:
- try_ObjectConstructor();
- break;
- case 68: // '['
- try_ArrayConstructor();
- break;
- case 278: // '{|'
- try_JSONSimpleObjectUnion();
- break;
- case -14:
- break;
- default:
- try_Constructor();
- }
- }
-
- function parse_JSONSimpleObjectUnion()
- {
- eventHandler.startNonterminal("JSONSimpleObjectUnion", e0);
- shift(278); // '{|'
- lookahead1W(272); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 281) // '|}'
- {
- whitespace();
- parse_Expr();
- }
- shift(281); // '|}'
- eventHandler.endNonterminal("JSONSimpleObjectUnion", e0);
- }
-
- function try_JSONSimpleObjectUnion()
- {
- shiftT(278); // '{|'
- lookahead1W(272); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 281) // '|}'
- {
- try_Expr();
- }
- shiftT(281); // '|}'
- }
-
- function parse_ObjectConstructor()
- {
- eventHandler.startNonterminal("ObjectConstructor", e0);
- shift(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 282) // '}'
- {
- whitespace();
- parse_PairConstructor();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shift(41); // ','
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_PairConstructor();
- }
- }
- shift(282); // '}'
- eventHandler.endNonterminal("ObjectConstructor", e0);
- }
-
- function try_ObjectConstructor()
- {
- shiftT(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 282) // '}'
- {
- try_PairConstructor();
- for (;;)
- {
- if (l1 != 41) // ','
- {
- break;
- }
- shiftT(41); // ','
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_PairConstructor();
- }
- }
- shiftT(282); // '}'
- }
-
- function parse_PairConstructor()
- {
- eventHandler.startNonterminal("PairConstructor", e0);
- parse_ExprSingle();
- shift(49); // ':'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_ExprSingle();
- eventHandler.endNonterminal("PairConstructor", e0);
- }
-
- function try_PairConstructor()
- {
- try_ExprSingle();
- shiftT(49); // ':'
- lookahead1W(267); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_ExprSingle();
- }
-
- function parse_ArrayConstructor()
- {
- eventHandler.startNonterminal("ArrayConstructor", e0);
- shift(68); // '['
- lookahead1W(271); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 69) // ']'
- {
- whitespace();
- parse_Expr();
- }
- shift(69); // ']'
- eventHandler.endNonterminal("ArrayConstructor", e0);
- }
-
- function try_ArrayConstructor()
- {
- shiftT(68); // '['
- lookahead1W(271); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- if (l1 != 69) // ']'
- {
- try_Expr();
- }
- shiftT(69); // ']'
- }
-
- function parse_BlockExpr()
- {
- eventHandler.startNonterminal("BlockExpr", e0);
- shift(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_StatementsAndOptionalExpr();
- shift(282); // '}'
- eventHandler.endNonterminal("BlockExpr", e0);
- }
-
- function try_BlockExpr()
- {
- shiftT(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- try_StatementsAndOptionalExpr();
- shiftT(282); // '}'
- }
-
- function parse_FunctionDecl()
- {
- eventHandler.startNonterminal("FunctionDecl", e0);
- shift(145); // 'function'
- lookahead1W(253); // EQName^Token | S^WS | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_EQName();
- lookahead1W(22); // S^WS | '(' | '(:'
- shift(34); // '('
- lookahead1W(94); // S^WS | '$' | '(:' | ')'
- if (l1 == 31) // '$'
- {
- whitespace();
- parse_ParamList();
- }
- shift(37); // ')'
- lookahead1W(148); // S^WS | '(:' | 'as' | 'external' | '{'
- if (l1 == 79) // 'as'
- {
- shift(79); // 'as'
- lookahead1W(259); // EQName^Token | S^WS | '%' | '(' | '(:' | 'after' | 'allowing' | 'ancestor' |
- whitespace();
- parse_SequenceType();
- }
- lookahead1W(118); // S^WS | '(:' | 'external' | '{'
- switch (l1)
- {
- case 276: // '{'
- shift(276); // '{'
- lookahead1W(273); // Wildcard | EQName^Token | IntegerLiteral | DecimalLiteral | DoubleLiteral |
- whitespace();
- parse_StatementsAndOptionalExpr();
- shift(282); // '}'
- break;
- default:
- shift(133); // 'external'
- }
- eventHandler.endNonterminal("FunctionDecl", e0);
- }
-
- var lk, b0, e0;
- var l1, b1, e1;
- var l2, b2, e2;
- var bx, ex, sx, lx, tx;
- var eventHandler;
- var memo;
-
- function memoize(i, e, v)
- {
- memo[(e << 4) + i] = v;
- }
-
- function memoized(i, e)
- {
- var v = memo[(e << 4) + i];
- return typeof v != "undefined" ? v : 0;
- }
-
- function error(b, e, s, l, t)
- {
- if (e > ex)
- {
- bx = b;
- ex = e;
- sx = s;
- lx = l;
- tx = t;
- }
- throw new self.ParseException(bx, ex, sx, lx, tx);
- }
-
- function shift(t)
- {
- if (l1 == t)
- {
- whitespace();
- eventHandler.terminal(XQueryParser.TOKEN[l1], b1, e1 > size ? size : e1);
- b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) {
- b1 = b2; e1 = e2; l2 = 0; }
- }
- else
- {
- error(b1, e1, 0, l1, t);
- }
- }
-
- function shiftT(t)
- {
- if (l1 == t)
- {
- b0 = b1; e0 = e1; l1 = l2; if (l1 != 0) {
- b1 = b2; e1 = e2; l2 = 0; }
- }
- else
- {
- error(b1, e1, 0, l1, t);
- }
- }
-
- function skip(code)
- {
- var b0W = b0; var e0W = e0; var l1W = l1;
- var b1W = b1; var e1W = e1;
-
- l1 = code; b1 = begin; e1 = end;
- l2 = 0;
-
- try_Whitespace();
-
- b0 = b0W; e0 = e0W; l1 = l1W; if (l1 != 0) {
- b1 = b1W; e1 = e1W; }
- }
-
- function whitespace()
- {
- if (e0 != b1)
- {
- b0 = e0;
- e0 = b1;
- eventHandler.whitespace(b0, e0);
- }
- }
-
- function matchW(set)
- {
- var code;
- for (;;)
- {
- code = match(set);
- if (code != 22) // S^WS
- {
- if (code != 36) // '(:'
- {
- break;
- }
- skip(code);
- }
- }
- return code;
- }
-
- function lookahead1W(set)
- {
- if (l1 == 0)
- {
- l1 = matchW(set);
- b1 = begin;
- e1 = end;
- }
- }
-
- function lookahead2W(set)
- {
- if (l2 == 0)
- {
- l2 = matchW(set);
- b2 = begin;
- e2 = end;
- }
- lk = (l2 << 9) | l1;
- }
-
- function lookahead1(set)
- {
- if (l1 == 0)
- {
- l1 = match(set);
- b1 = begin;
- e1 = end;
- }
- }
-
- function lookahead2(set)
- {
- if (l2 == 0)
- {
- l2 = match(set);
- b2 = begin;
- e2 = end;
- }
- lk = (l2 << 9) | l1;
- }
-
- var input;
- var size;
- var begin;
- var end;
-
- function match(tokenSetId)
- {
- var nonbmp = false;
- begin = end;
- var current = end;
- var result = XQueryParser.INITIAL[tokenSetId];
- var state = 0;
-
- for (var code = result & 4095; code != 0; )
- {
- var charclass;
- var c0 = current < size ? input.charCodeAt(current) : 0;
- ++current;
- if (c0 < 0x80)
- {
- charclass = XQueryParser.MAP0[c0];
- }
- else if (c0 < 0xd800)
- {
- var c1 = c0 >> 4;
- charclass = XQueryParser.MAP1[(c0 & 15) + XQueryParser.MAP1[(c1 & 31) + XQueryParser.MAP1[c1 >> 5]]];
- }
- else
- {
- if (c0 < 0xdc00)
- {
- var c1 = current < size ? input.charCodeAt(current) : 0;
- if (c1 >= 0xdc00 && c1 < 0xe000)
- {
- ++current;
- c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000;
- nonbmp = true;
- }
- }
- var lo = 0, hi = 5;
- for (var m = 3; ; m = (hi + lo) >> 1)
- {
- if (XQueryParser.MAP2[m] > c0) hi = m - 1;
- else if (XQueryParser.MAP2[6 + m] < c0) lo = m + 1;
- else {charclass = XQueryParser.MAP2[12 + m]; break;}
- if (lo > hi) {charclass = 0; break;}
- }
- }
-
- state = code;
- var i0 = (charclass << 12) + code - 1;
- code = XQueryParser.TRANSITION[(i0 & 15) + XQueryParser.TRANSITION[i0 >> 4]];
-
- if (code > 4095)
- {
- result = code;
- code &= 4095;
- end = current;
- }
- }
-
- result >>= 12;
- if (result == 0)
- {
- end = current - 1;
- var c1 = end < size ? input.charCodeAt(end) : 0;
- if (c1 >= 0xdc00 && c1 < 0xe000) --end;
- return error(begin, end, state, -1, -1);
- }
-
- if (nonbmp)
- {
- for (var i = result >> 9; i > 0; --i)
- {
- --end;
- var c1 = end < size ? input.charCodeAt(end) : 0;
- if (c1 >= 0xdc00 && c1 < 0xe000) --end;
- }
- }
- else
- {
- end -= result >> 9;
- }
-
- return (result & 511) - 1;
- }
-}
-
-XQueryParser.getTokenSet = function(tokenSetId)
-{
- var set = [];
- var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095;
- for (var i = 0; i < 284; i += 32)
- {
- var j = i;
- var i0 = (i >> 5) * 3684 + s - 1;
- var i1 = i0 >> 2;
- var i2 = i1 >> 2;
- var f = XQueryParser.EXPECTED[(i0 & 3) + XQueryParser.EXPECTED[(i1 & 3) + XQueryParser.EXPECTED[(i2 & 7) + XQueryParser.EXPECTED[i2 >> 3]]]];
- for ( ; f != 0; f >>>= 1, ++j)
- {
- if ((f & 1) != 0)
- {
- set.push(XQueryParser.TOKEN[j]);
- }
- }
- }
- return set;
-};
-
-XQueryParser.MAP0 =
-[ 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 38, 30, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 38, 38
-];
-
-XQueryParser.MAP1 =
-[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 355, 371, 387, 423, 423, 423, 415, 339, 331, 339, 331, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 440, 440, 440, 440, 440, 440, 440, 324, 339, 339, 339, 339, 339, 339, 339, 339, 401, 423, 423, 424, 422, 423, 423, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 423, 338, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, 423, 70, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 26, 30, 30, 30, 30, 30, 31, 32, 33, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 38, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 34, 30, 30, 35, 30, 30, 30, 36, 30, 30, 37, 38, 39, 38, 30, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 30, 30, 38, 38, 38, 38, 38, 38, 38, 69, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69
-];
-
-XQueryParser.MAP2 =
-[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 38, 30, 38, 30, 30, 38
-];
-
-XQueryParser.INITIAL =
-[ 1, 12290, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284
-];
-
-XQueryParser.TRANSITION =
-[ 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22007, 18176, 18196, 18196, 18196, 18203, 18196, 18196, 18196, 18196, 18230, 18196, 18196, 18196, 18196, 18219, 18196, 18180, 18246, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 18411, 20907, 20920, 20932, 20944, 22539, 18416, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 37625, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 21008, 21032, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21632, 21055, 23546, 23546, 23546, 21178, 23546, 23546, 23916, 42362, 21241, 23546, 23546, 23546, 23546, 19298, 47203, 21077, 21110, 23546, 23546, 23546, 35799, 23546, 23546, 21194, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 21229, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21358, 21323, 23546, 23546, 23546, 26152, 23546, 23546, 27593, 23546, 21369, 29482, 21257, 21282, 21273, 21304, 21317, 21346, 20967, 23546, 23546, 23546, 28947, 23546, 23546, 21385, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 20711, 21423, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 21446, 26048, 18745, 18766, 18771, 20561, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23540, 23546, 23546, 23546, 25880, 23545, 23546, 31245, 23546, 21468, 23534, 21504, 23546, 21511, 23546, 21527, 21539, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 21567, 23546, 23546, 23546, 31874, 23546, 23546, 21586, 23546, 23546, 21608, 21620, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 35211, 23546, 23546, 23546, 23546, 23546, 23546, 23424, 21648, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 21681, 18544, 18567, 18590, 50977, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21736, 21705, 23546, 23546, 23546, 44539, 23546, 23546, 24265, 25689, 25607, 23546, 23546, 23546, 23546, 26450, 47502, 21724, 21752, 23546, 23546, 23546, 35799, 23546, 23546, 21783, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 20237, 21819, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21551, 21857, 21913, 21913, 21913, 21864, 21908, 21913, 21918, 21967, 21842, 21949, 21880, 21961, 21896, 21934, 21983, 21995, 20967, 23546, 23546, 23546, 26225, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 22023, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 28636, 23546, 23546, 23546, 25912, 50946, 23546, 50080, 50952, 21369, 28635, 23546, 22054, 22060, 22076, 22111, 22121, 22137, 23546, 23546, 23546, 30755, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 22183, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 27655, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 51066, 39748, 22869, 22242, 22228, 22245, 22261, 22277, 22288, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 20285, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 18648, 40763, 24585, 22304, 22324, 22304, 22338, 24585, 22308, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 22361, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 22386, 23546, 23546, 23546, 25841, 18403, 23546, 19576, 22382, 44281, 22402, 22429, 22434, 22434, 22450, 22385, 22413, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22473, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 25653, 22498, 22518, 22498, 22532, 25653, 22502, 22555, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27132, 23546, 42897, 23546, 44844, 38626, 22584, 22361, 37471, 23546, 23546, 23546, 23546, 22587, 47563, 46856, 47563, 47563, 22603, 35356, 22824, 22824, 34828, 22804, 22621, 22804, 22804, 33187, 36943, 23546, 23546, 23546, 23546, 23546, 26071, 23546, 22641, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 43701, 32739, 23546, 23546, 23546, 23546, 23546, 29474, 22702, 23546, 33124, 44563, 47563, 47563, 47563, 47564, 22719, 35350, 22824, 22764, 22824, 22767, 35689, 22783, 22804, 22803, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 27587, 23546, 23546, 47562, 46826, 47563, 47563, 27195, 22821, 42846, 22824, 22824, 22824, 30376, 22804, 22841, 22804, 22804, 29883, 33199, 23546, 23546, 21430, 23546, 49502, 48973, 47563, 47563, 36153, 45209, 22824, 22824, 39816, 27834, 22804, 22804, 43796, 30403, 39964, 23546, 23546, 22861, 23546, 47560, 22885, 47563, 23113, 22903, 22824, 33078, 22920, 22804, 38116, 23546, 23546, 22937, 29174, 22980, 47563, 34384, 42527, 22825, 23019, 22804, 31964, 47447, 46606, 23083, 36624, 23105, 32340, 30673, 23131, 36549, 23164, 40907, 43074, 23200, 23229, 23275, 36645, 36686, 33550, 48975, 23107, 30672, 23141, 39417, 23313, 23334, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 24855, 21369, 23546, 23546, 23546, 23546, 23546, 20980, 20992, 23383, 23546, 23546, 23546, 35799, 23546, 23546, 23420, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 23440, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 18368, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 26071, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23485, 23546, 23546, 23546, 26606, 23546, 23546, 23546, 23546, 21369, 28080, 23505, 23528, 23563, 23575, 28081, 23512, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 30821, 23546, 37478, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23598, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23184, 21369, 23546, 23546, 23546, 23546, 23546, 22653, 22665, 23615, 23546, 23546, 23546, 35799, 23546, 23546, 23644, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 23664, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 23688, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 48779, 23733, 23546, 23546, 23546, 23546, 34921, 23753, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 23777, 48792, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 41753, 22821, 22824, 22824, 22824, 22824, 44122, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 34866, 22821, 22824, 22824, 22824, 22824, 23826, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 39721, 23546, 23546, 23546, 30797, 25982, 23546, 23546, 23849, 21369, 20313, 44188, 23887, 23893, 23909, 23546, 49114, 23932, 23546, 23546, 23546, 36603, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 24187, 24465, 24820, 25200, 24258, 18282, 18849, 18305, 23964, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 23993, 24116, 24017, 24046, 24001, 24088, 25090, 24132, 24812, 24103, 24159, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 24182, 25436, 24884, 24206, 24190, 24890, 24819, 24363, 24227, 24819, 24414, 24143, 25214, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 24243, 24030, 25425, 24281, 24706, 24308, 24337, 24350, 24389, 24405, 24517, 24423, 25208, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 24439, 19364, 24455, 25063, 24489, 24505, 24533, 25266, 24373, 24545, 24561, 24577, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 19809, 24679, 24601, 25048, 19406, 24473, 24617, 25251, 25017, 24736, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 24633, 24673, 24695, 24722, 24779, 24801, 24836, 23977, 20842, 20016, 18679, 20827, 20042, 24871, 24906, 24935, 24951, 25006, 25411, 25295, 20159, 20175, 20206, 25033, 24292, 25079, 25281, 25106, 20376, 20392, 19394, 24919, 24657, 20462, 19676, 24211, 24785, 32258, 19353, 24647, 24966, 20473, 24060, 25136, 20616, 25172, 25188, 25236, 24072, 25311, 25362, 25396, 25452, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 21328, 23546, 23546, 23546, 25841, 25477, 23546, 23546, 25472, 32915, 25493, 25501, 25501, 25501, 25517, 21330, 25540, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 25581, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20499, 25597, 18792, 18808, 18830, 23628, 18814, 25623, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 21016, 25645, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 25669, 25705, 25721, 19477, 25754, 19498, 25737, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 18708, 21452, 19692, 19708, 20143, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 50535, 23259, 25770, 25770, 25770, 25779, 21123, 21135, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 25220, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25802, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21147, 20888, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 22959, 25825, 25825, 25825, 25834, 20891, 22964, 25857, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 27140, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25873, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25552, 25561, 23546, 23546, 23546, 26852, 23546, 23546, 23546, 23546, 21369, 33245, 25896, 25896, 25896, 25905, 36950, 33250, 25928, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 22366, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 25964, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 25998, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26099, 23546, 23546, 23546, 23546, 25841, 21661, 23546, 23546, 21094, 43925, 23546, 23546, 23546, 21665, 26069, 21092, 26087, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 31389, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 26115, 26145, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 43987, 26168, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 26285, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 26302, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 26321, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 19867, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 26341, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 26341, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 29369, 22821, 22824, 22824, 22824, 22824, 28821, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 23049, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26364, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 19293, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 31312, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 37937, 26399, 26410, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 26426, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26445, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 41698, 26466, 26486, 26508, 26520, 41701, 26470, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 38227, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 26543, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 23546, 23424, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 28554, 23546, 26577, 26583, 26599, 47449, 44239, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 26622, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 26638, 20392, 51127, 20418, 50802, 26654, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 27306, 23546, 23546, 23546, 26527, 26683, 26714, 28322, 26699, 26731, 50814, 50823, 26775, 26789, 26801, 26817, 26829, 26204, 26845, 23599, 23546, 25326, 21171, 35898, 34903, 26868, 26909, 26948, 33311, 26979, 26959, 26995, 27011, 45967, 27047, 27063, 27101, 27117, 34536, 27156, 23546, 23546, 44844, 41240, 34846, 23546, 42415, 27173, 27664, 23546, 42356, 28101, 47563, 47563, 47563, 27192, 27418, 22824, 22824, 42533, 43762, 22804, 22804, 22804, 27211, 27231, 36943, 23546, 44839, 40944, 23546, 27267, 27287, 46640, 23546, 27304, 35519, 43402, 27322, 27344, 47563, 47563, 27380, 27403, 27436, 31453, 22824, 33011, 27464, 27493, 27533, 27556, 22804, 38069, 35418, 30315, 27573, 26241, 27609, 23546, 44532, 27629, 39107, 50620, 23546, 45009, 27646, 31107, 27698, 47563, 27746, 27765, 23297, 27785, 27825, 36368, 22824, 27859, 48139, 23833, 27991, 44504, 49256, 22804, 43572, 23672, 27877, 42988, 25683, 23546, 27893, 27913, 46094, 23546, 21213, 44018, 47563, 30489, 32462, 27941, 34820, 22824, 45399, 49012, 28821, 27978, 22804, 22804, 28014, 28034, 49064, 28072, 35792, 28097, 51046, 28117, 50856, 22994, 28137, 47563, 41728, 28206, 28229, 22824, 41433, 28267, 28290, 22804, 34572, 28320, 28338, 23546, 23546, 39715, 47560, 28358, 45550, 23113, 28379, 35308, 33078, 28399, 36714, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 41649, 28419, 28455, 40472, 38341, 28471, 38828, 40452, 28791, 24756, 33030, 27540, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 28526, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 34078, 28545, 23546, 28652, 28658, 28674, 28690, 28701, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 26963, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22605, 35842, 45303, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 46230, 50621, 28718, 23546, 28717, 23546, 48975, 47563, 47563, 47563, 27769, 28735, 22823, 22824, 22824, 22824, 49361, 49439, 22804, 22804, 22804, 22804, 28781, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 23672, 23807, 23546, 18289, 23546, 23546, 44779, 49528, 23546, 36898, 47563, 47563, 47563, 40417, 28807, 22824, 22824, 22824, 50340, 31197, 28844, 22804, 22804, 22804, 28863, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 21205, 28900, 28924, 28940, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 28963, 23546, 23546, 26527, 23546, 28992, 23546, 29010, 36977, 29029, 29038, 29054, 29069, 29081, 29097, 29109, 26204, 23546, 23546, 33645, 49739, 23546, 28529, 23546, 23546, 31365, 23546, 23546, 23546, 35995, 23546, 29125, 31167, 22824, 29149, 40337, 48749, 32108, 23546, 29172, 23546, 44844, 29190, 42384, 23546, 31347, 50774, 29209, 23546, 25948, 29214, 29230, 29291, 47563, 47563, 29309, 29325, 22824, 22824, 45608, 49036, 29349, 22804, 22804, 39677, 36943, 30220, 23546, 23546, 47099, 23546, 22095, 50621, 37205, 27682, 23546, 23546, 48975, 28152, 40051, 47563, 29366, 37135, 45217, 46920, 46953, 36665, 22824, 49439, 49901, 29385, 29404, 34563, 22804, 29885, 40883, 26241, 23546, 23546, 47600, 23546, 23546, 29423, 23546, 29445, 23546, 48976, 47563, 47563, 47563, 44406, 47564, 22821, 22824, 22824, 49328, 42575, 22767, 35849, 22804, 22804, 39288, 28274, 50448, 23672, 29464, 23546, 23546, 23546, 29498, 42828, 23546, 23546, 47562, 47563, 47563, 46820, 29369, 22821, 22824, 22824, 37856, 22824, 28821, 22804, 22804, 30184, 22804, 29883, 33199, 23546, 23546, 29517, 23546, 47519, 29538, 47563, 46768, 47563, 41728, 22824, 49353, 22824, 41433, 22804, 41641, 22804, 27843, 29565, 23546, 23546, 23546, 29581, 33988, 49629, 29610, 50265, 49148, 29627, 30732, 37573, 29644, 31970, 23546, 23546, 28626, 22586, 47563, 47563, 29661, 22824, 47375, 22804, 22804, 29679, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 45087, 23089, 29701, 47077, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 27251, 29717, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 21570, 23546, 23546, 26527, 23546, 29745, 24166, 23546, 32508, 29764, 29773, 29789, 29803, 29812, 29828, 29839, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 34673, 34671, 23546, 38486, 38493, 29855, 28213, 35842, 29875, 43066, 27800, 23546, 40629, 29901, 44844, 23546, 29926, 30774, 23546, 23546, 41541, 20026, 29946, 29989, 29293, 38320, 30005, 40270, 30031, 42116, 30052, 30082, 30100, 49972, 39453, 30135, 41942, 39677, 36943, 23546, 23546, 23546, 42078, 23546, 30162, 50621, 23546, 23546, 23546, 39564, 48975, 47563, 47563, 47563, 48721, 37135, 22823, 22824, 22824, 22824, 42777, 49439, 22804, 22804, 22804, 22804, 30182, 30146, 30200, 30236, 23546, 23546, 23546, 30252, 30271, 50620, 23546, 23546, 45468, 23469, 31420, 34156, 47563, 47563, 45201, 30292, 30331, 30348, 22824, 22824, 30365, 29156, 29407, 22804, 22804, 22804, 30399, 23672, 23807, 23546, 23546, 23546, 23546, 45523, 28572, 23546, 33872, 47563, 47563, 30419, 29369, 30438, 22824, 22824, 48645, 22824, 31904, 22804, 22804, 50360, 22804, 30539, 33199, 49920, 23546, 30462, 23546, 50724, 48973, 36270, 47563, 30480, 41728, 35391, 22824, 30505, 41433, 50493, 22804, 30530, 30403, 47447, 49732, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23251, 23546, 22586, 47563, 47563, 30555, 22824, 36108, 22804, 22804, 30575, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 30597, 46609, 47561, 23111, 30673, 39296, 30622, 30648, 30668, 30689, 19013, 30707, 30727, 30748, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23547, 30771, 23546, 26527, 25156, 30790, 23546, 30813, 24321, 30837, 30846, 30862, 30876, 30888, 30904, 30915, 26204, 22703, 30931, 26561, 35799, 30978, 26921, 26341, 27925, 30994, 31013, 31032, 31061, 31045, 31097, 31131, 31147, 31183, 31227, 31261, 31277, 39237, 39476, 31293, 33748, 31328, 22212, 31363, 31381, 41158, 23546, 23546, 40033, 23546, 22587, 32449, 31405, 47817, 28510, 31441, 31475, 46890, 31498, 30304, 31538, 22625, 36744, 47681, 39677, 36943, 23698, 29973, 31554, 29930, 31590, 23708, 31634, 39997, 31661, 48812, 31689, 31711, 31727, 31763, 31798, 31814, 29245, 31850, 40093, 31890, 34721, 31940, 35662, 31956, 31986, 27076, 32035, 32066, 32093, 32133, 26241, 50755, 23546, 43683, 23546, 32169, 19239, 32192, 32249, 22951, 24750, 43255, 32274, 47563, 32292, 45560, 22821, 32317, 22824, 42593, 48588, 50230, 35849, 32356, 22804, 45665, 32384, 32405, 32421, 23807, 25150, 32478, 32497, 47176, 23546, 32524, 45835, 36145, 40407, 31425, 32550, 44054, 32586, 34739, 22824, 32631, 32657, 30066, 33080, 32683, 47042, 40501, 29883, 33199, 23546, 45717, 33237, 23546, 23546, 32701, 31115, 42955, 32563, 41728, 45894, 41614, 32608, 41433, 33712, 42499, 35727, 30403, 47447, 28590, 32719, 48060, 32755, 32790, 42232, 33671, 32806, 37745, 39609, 32837, 40736, 33730, 32892, 32931, 32953, 19435, 22586, 32974, 48106, 28046, 33009, 33027, 33047, 48381, 35461, 47447, 40617, 22585, 47563, 50257, 22824, 33074, 36473, 36549, 33096, 40786, 36807, 32667, 39296, 33119, 43227, 48451, 49953, 33140, 24763, 23318, 45645, 33156, 33172, 33217, 47559, 33030, 30691, 33266, 33282, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 33306, 23546, 26527, 33327, 33345, 25456, 24849, 33370, 33400, 23546, 33386, 33428, 33437, 33453, 33464, 26204, 23546, 23546, 33480, 35799, 23546, 23546, 23546, 23546, 27288, 23546, 23546, 34477, 23546, 34484, 31605, 33499, 33519, 43660, 33545, 33568, 27800, 23546, 33621, 23546, 44844, 33621, 23546, 23546, 30997, 23546, 33640, 34051, 23546, 22587, 33661, 47563, 47563, 47563, 33687, 22824, 22824, 22824, 43762, 33703, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 50621, 23546, 23546, 23546, 33746, 48975, 47563, 47563, 47563, 43863, 37135, 22823, 22824, 22824, 22824, 34733, 49439, 22804, 22804, 22804, 22804, 33764, 29885, 40883, 26241, 23546, 23546, 23546, 23546, 23546, 50620, 23546, 20258, 23546, 48976, 47563, 47563, 46759, 47563, 47564, 22821, 22824, 22824, 37850, 22824, 22767, 35849, 22804, 22804, 33781, 22804, 29879, 23672, 23807, 23546, 23546, 23546, 23546, 23546, 43159, 23546, 47562, 47563, 47563, 31773, 29369, 22821, 22824, 22824, 49239, 22824, 28821, 22804, 22804, 22804, 33801, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 41728, 22824, 22824, 22824, 41433, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 33820, 23546, 23546, 22586, 44762, 47563, 23109, 33840, 22825, 34299, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 23335, 32233, 42307, 22729, 33859, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 32176, 23546, 23546, 41552, 33893, 33902, 33918, 33924, 33940, 33956, 33967, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 37894, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 28765, 41920, 23546, 23546, 44844, 23546, 23546, 23546, 39585, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 43177, 23546, 23546, 45738, 48975, 47563, 47563, 47563, 47563, 37135, 41960, 22824, 22824, 22824, 22824, 47410, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 20340, 23546, 23178, 20358, 23546, 23546, 20360, 33983, 47563, 47563, 34004, 47563, 47564, 22821, 22824, 36824, 22824, 22824, 22767, 35849, 22804, 33785, 22804, 22804, 29879, 34024, 23546, 23546, 23546, 34050, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 32147, 47539, 23546, 48973, 47563, 47563, 39206, 45209, 22824, 22824, 43898, 27834, 22804, 22804, 34943, 30403, 47447, 34067, 47158, 34094, 23546, 34121, 32984, 34141, 34177, 43533, 34196, 34244, 36447, 34263, 31970, 28608, 23546, 34315, 34336, 34355, 34372, 28875, 33605, 34412, 34436, 34454, 31964, 47447, 46606, 43054, 32993, 34501, 34521, 30673, 34552, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 43326, 34588, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 41690, 23546, 26286, 34628, 23546, 23546, 23546, 34692, 23546, 34693, 23546, 23546, 34656, 34689, 40521, 22887, 37164, 34396, 43815, 34709, 34755, 23546, 23546, 29501, 44844, 26383, 30255, 23546, 23546, 41921, 23546, 23546, 23546, 22587, 47563, 47563, 32276, 47563, 27418, 22824, 22824, 35655, 43762, 22804, 22804, 35850, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 34780, 43953, 48975, 47563, 47563, 47563, 47563, 29859, 22823, 22824, 22824, 22824, 22824, 30446, 22804, 22804, 22804, 22804, 22804, 34799, 33201, 23546, 34844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 42714, 48976, 34862, 47563, 47563, 47563, 47564, 34882, 22824, 22824, 22824, 22824, 22767, 30383, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 34898, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 49594, 27195, 22821, 22824, 22824, 22824, 49007, 30376, 22804, 22804, 22804, 28251, 29883, 33199, 23546, 23546, 45156, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 28617, 23546, 48860, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 48020, 34919, 46606, 50168, 47563, 35289, 22824, 34937, 22804, 34959, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 26217, 23546, 26527, 28994, 29429, 32937, 21397, 21407, 19607, 19616, 34984, 34999, 35011, 35027, 35038, 26204, 23546, 23546, 23546, 21159, 35548, 23546, 23546, 29013, 35054, 32876, 23546, 35263, 35074, 35112, 39498, 35166, 47961, 27448, 49402, 46199, 35202, 23546, 23546, 23546, 38910, 23546, 47123, 35227, 23546, 23546, 23546, 35244, 44990, 22587, 44754, 35279, 47563, 35324, 35372, 48187, 22824, 29333, 35407, 49176, 35434, 22804, 35477, 39677, 36943, 23546, 35515, 50019, 41319, 42187, 35535, 23546, 19253, 43384, 35575, 35592, 35612, 35186, 47563, 42920, 37391, 20600, 22823, 35386, 22824, 40181, 35635, 35678, 29350, 22804, 33765, 35713, 35750, 48433, 33201, 23546, 23546, 23546, 23546, 35766, 20349, 35815, 44388, 23546, 23546, 40380, 47253, 47563, 47563, 41209, 36250, 35833, 43893, 22824, 22824, 48653, 43541, 43789, 35866, 22804, 22804, 31917, 36853, 33195, 23546, 19730, 35885, 35914, 32534, 35930, 35957, 45488, 36011, 28363, 36030, 36050, 36074, 36103, 39870, 50408, 42260, 32597, 45635, 22804, 36124, 36169, 36204, 27085, 31863, 36220, 46659, 44955, 21826, 38142, 32958, 36266, 47872, 36286, 36321, 36366, 36384, 36409, 36435, 36471, 36489, 36514, 36540, 36572, 23546, 23546, 18340, 36595, 30632, 36619, 36640, 39370, 36661, 36681, 36702, 36740, 36760, 31970, 23546, 36781, 18841, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 34034, 46606, 22585, 31741, 36801, 36823, 36840, 38424, 36549, 46609, 36869, 23111, 30673, 39296, 36886, 35338, 36933, 36966, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 42313, 47646, 36993, 39426, 42307, 22729, 23448, 37021, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 39988, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 50028, 21708, 39996, 40225, 24990, 37071, 37082, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 31016, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 27420, 22824, 43762, 22804, 22804, 48012, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 25524, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 37098, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 37115, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 37134, 47563, 47563, 47563, 47564, 37151, 22824, 22824, 22824, 22824, 22767, 28828, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 41164, 23546, 26527, 23546, 34764, 23546, 19155, 37185, 37221, 37234, 37250, 37256, 37272, 37288, 37299, 26204, 23546, 37315, 23546, 35799, 23546, 43426, 26746, 23546, 23546, 37335, 23546, 32153, 42194, 37334, 37351, 37380, 37407, 37443, 40833, 37430, 32821, 37459, 23546, 23546, 34612, 23546, 23546, 40581, 34220, 23546, 41122, 29193, 49795, 34228, 47262, 37494, 29549, 41774, 37514, 42784, 22904, 45886, 37530, 38036, 37570, 36188, 37589, 23034, 37618, 28342, 23546, 23546, 23546, 23546, 50126, 23546, 23546, 23546, 23546, 23546, 48975, 28498, 44484, 47563, 28434, 44023, 37641, 37671, 39810, 30349, 22824, 39853, 47704, 29645, 22804, 49383, 22804, 37657, 33201, 23546, 23546, 50909, 37693, 23546, 32019, 38379, 23546, 23546, 23546, 48976, 47563, 47563, 46474, 32220, 37710, 22821, 22824, 22824, 49321, 37734, 37761, 35849, 22804, 22804, 37788, 37809, 29879, 33195, 23546, 37872, 23546, 23546, 37889, 23546, 23546, 23546, 47562, 27357, 47563, 47563, 27195, 22821, 40293, 22824, 22824, 22824, 30376, 34247, 22804, 22804, 22804, 29883, 33199, 37910, 31075, 23546, 37928, 47744, 48973, 37953, 47563, 47563, 37979, 38003, 22824, 22824, 38027, 38061, 22804, 22804, 38085, 47447, 23404, 23546, 28599, 23546, 47560, 31782, 47563, 23113, 38011, 22824, 33078, 33721, 22804, 31970, 23546, 21592, 23546, 22586, 47563, 50097, 23109, 22824, 40810, 22804, 22804, 38110, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 33290, 45056, 38132, 38158, 38179, 33552, 39426, 27505, 38215, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23648, 23546, 26527, 23546, 26305, 23546, 23546, 29594, 20530, 20539, 38250, 38264, 38273, 38289, 38300, 26364, 23546, 23948, 23546, 35799, 23546, 34320, 23546, 23546, 23546, 23948, 23546, 35554, 36579, 23947, 35559, 38316, 33588, 36393, 38336, 43066, 27800, 23546, 23546, 38357, 44844, 23546, 39344, 42555, 23546, 39071, 23546, 23546, 38375, 41192, 48530, 47563, 47812, 38395, 28750, 22824, 42121, 31482, 43762, 38449, 22804, 38419, 38440, 32050, 38473, 38509, 46688, 34783, 23546, 23546, 23546, 23546, 23546, 38530, 23546, 23546, 48975, 47883, 38550, 42949, 47563, 37135, 22823, 38568, 30084, 22824, 22824, 49439, 42031, 34293, 41837, 22804, 22804, 29885, 33201, 23546, 38929, 23546, 38602, 23546, 44369, 37873, 23791, 38621, 23546, 48976, 27031, 38642, 47563, 38659, 47564, 38683, 47916, 22824, 22824, 38702, 33843, 35849, 39277, 22804, 33804, 38724, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 36556, 23546, 23546, 23546, 23546, 47560, 38744, 47563, 30559, 22824, 22824, 46066, 22804, 22804, 31970, 23546, 23546, 49685, 22586, 47563, 47563, 23109, 47427, 22825, 22804, 35452, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 38761, 47561, 38782, 38802, 43621, 23464, 38824, 38844, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 38045, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23810, 23546, 46101, 23546, 29522, 38860, 33103, 38895, 38945, 38984, 38970, 38989, 38954, 39005, 39016, 26204, 23546, 24981, 39032, 39052, 39135, 26183, 26715, 27157, 23546, 39087, 39123, 35972, 23871, 39151, 32436, 39187, 39222, 39262, 39312, 39360, 27800, 27271, 23546, 23546, 40856, 29748, 35256, 26269, 47340, 39386, 28121, 33483, 41086, 39406, 48539, 39200, 45029, 47563, 29260, 30036, 22824, 47369, 43762, 41883, 39448, 22787, 22804, 32852, 39469, 27673, 33624, 23546, 39492, 23546, 23546, 30166, 23546, 19760, 23546, 25974, 48975, 39514, 47563, 47563, 47563, 37135, 37987, 39541, 30332, 22824, 22824, 49439, 34278, 22804, 48403, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 49277, 23546, 23546, 39561, 44662, 39580, 20000, 47563, 47563, 38745, 47563, 41583, 39601, 22824, 22824, 42751, 22824, 39625, 36344, 22804, 22804, 49650, 22804, 39663, 33195, 39390, 39701, 21803, 40964, 23546, 28563, 39737, 39764, 42864, 39780, 30015, 27711, 27195, 22821, 39796, 39832, 37838, 39869, 30376, 37543, 39886, 39910, 39936, 47724, 39958, 49087, 33227, 48840, 39980, 40013, 20680, 50204, 40049, 40067, 40083, 45419, 22824, 40109, 40125, 36765, 22804, 40151, 40167, 47447, 40217, 23546, 23546, 19121, 40241, 48114, 40263, 48445, 44596, 40286, 40309, 42808, 40330, 30581, 40353, 23546, 23546, 40374, 28485, 40396, 27517, 40433, 40468, 40722, 40488, 31964, 30114, 48477, 40517, 36058, 24761, 45115, 30673, 40537, 36549, 40555, 19020, 29663, 30673, 40603, 40652, 40668, 40708, 40752, 40779, 40802, 40826, 40849, 24756, 33030, 33551, 47559, 33030, 33552, 40872, 40899, 22729, 23448, 40923, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 40939, 26527, 23546, 35150, 40960, 23546, 26932, 40980, 40989, 41005, 41019, 41028, 41044, 41055, 26204, 41071, 27176, 35142, 41110, 22748, 41145, 23546, 41180, 29961, 41225, 35127, 41274, 41299, 41335, 41350, 41366, 41401, 41487, 41458, 41474, 41503, 23546, 18442, 27630, 46235, 23546, 41314, 19147, 41528, 40358, 23546, 23546, 45375, 22587, 47563, 36909, 41568, 47891, 27418, 38686, 27953, 41607, 41630, 22804, 23213, 41665, 46983, 39677, 36943, 23546, 45937, 23546, 37118, 23546, 39337, 41681, 33824, 35058, 38605, 23546, 41717, 41752, 28167, 41769, 47563, 43475, 41790, 42050, 41800, 22824, 22824, 41816, 41853, 50302, 41874, 22804, 49204, 29885, 47656, 41907, 23546, 38879, 36785, 23546, 23546, 23546, 23546, 23546, 39036, 48976, 47563, 46791, 34008, 47563, 47564, 22821, 22824, 44589, 46895, 22824, 22767, 35849, 22804, 41937, 38457, 22804, 29879, 33195, 23546, 23546, 49550, 23546, 45766, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 32301, 41958, 22824, 22824, 22824, 46046, 28243, 22804, 22804, 22804, 22804, 41977, 33199, 20951, 42005, 23546, 23546, 23546, 44350, 47563, 31827, 47563, 41591, 22824, 49433, 22824, 28884, 22804, 42026, 22804, 30403, 31211, 23546, 23546, 23546, 23546, 27328, 40247, 47563, 27241, 38708, 22824, 42285, 31924, 22804, 29685, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 22739, 46606, 49667, 46712, 38403, 42047, 44103, 22804, 44463, 42066, 42221, 42103, 42137, 42175, 42210, 42248, 42276, 42301, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 35697, 39426, 36136, 22729, 23448, 42329, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 26377, 26527, 23546, 23546, 42378, 33354, 42400, 20758, 23546, 26429, 42436, 42448, 42464, 42475, 26204, 23546, 23546, 25120, 35799, 23546, 23546, 23546, 31573, 31305, 23546, 23546, 31567, 25118, 23546, 48973, 37963, 23115, 42491, 47011, 42515, 27800, 23546, 42549, 23546, 44844, 23546, 38766, 18352, 23546, 39064, 23546, 23546, 22159, 22587, 48548, 38163, 45793, 48521, 47316, 42571, 42591, 47404, 42609, 44147, 39942, 22845, 35499, 47057, 42343, 42636, 23546, 42657, 23546, 42010, 42641, 26759, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 36917, 47563, 37135, 22823, 22824, 22824, 42693, 22824, 49439, 22804, 22804, 28847, 22804, 22804, 29885, 45066, 44270, 23546, 42713, 23546, 23546, 26553, 42677, 42730, 31574, 23546, 48976, 47563, 48931, 47563, 47563, 47564, 42748, 22824, 42767, 22824, 22824, 34180, 35849, 22804, 42800, 22804, 22804, 29879, 33195, 23546, 44983, 23546, 23546, 23546, 23546, 42824, 23546, 47562, 47563, 36034, 47563, 27749, 22821, 22824, 22824, 42844, 22824, 48373, 22804, 22804, 38192, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 18259, 23546, 23546, 42862, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 39325, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 48281, 42880, 42913, 28181, 33529, 39296, 42936, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 38514, 23546, 23546, 23546, 44073, 44076, 50916, 44069, 36233, 42971, 33598, 40201, 40539, 43066, 29275, 42987, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 43004, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 43023, 22824, 22824, 22824, 22824, 43497, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 30422, 47563, 23109, 38579, 22825, 32685, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 22195, 38234, 23546, 23546, 22088, 23546, 31645, 43040, 31695, 43090, 43103, 43112, 43128, 43139, 26204, 23546, 31341, 32732, 35799, 43366, 43155, 43175, 36087, 40692, 50768, 31673, 43193, 32904, 31522, 31081, 43243, 43271, 43287, 43315, 43342, 40683, 23546, 23546, 23546, 45381, 43358, 40568, 43382, 43400, 43418, 23546, 23546, 30119, 43208, 47563, 43442, 27364, 43462, 43491, 28908, 22824, 43513, 43557, 22804, 43588, 41858, 43607, 43637, 43676, 23546, 23546, 23546, 18266, 35576, 23546, 23546, 43699, 43717, 43736, 20331, 32703, 47563, 41378, 47563, 46720, 41989, 43754, 29628, 22824, 22824, 43651, 43778, 43812, 46171, 22804, 44212, 43831, 43879, 33201, 23546, 23546, 45346, 23546, 43914, 43941, 23546, 27809, 23863, 43976, 44003, 47563, 48620, 44039, 35181, 49990, 44092, 22824, 45449, 39545, 44119, 42697, 44138, 22804, 44163, 27998, 44211, 35734, 33195, 39171, 23546, 23546, 23067, 44228, 32012, 23546, 44255, 36870, 46433, 23003, 47563, 27195, 22821, 44297, 46134, 22824, 22824, 30376, 39647, 22804, 44322, 22804, 41442, 44340, 23546, 44366, 44385, 23546, 23546, 34339, 44404, 47563, 47563, 44422, 22824, 22824, 22824, 44438, 22804, 22804, 22804, 44454, 47447, 48298, 23546, 23546, 23546, 44479, 47563, 47563, 46130, 22824, 22824, 44500, 22804, 22804, 44520, 23546, 40027, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 38094, 49704, 44555, 44579, 44612, 44650, 23464, 24759, 33031, 33550, 44685, 30652, 34420, 36724, 24756, 33030, 33551, 47559, 33030, 45310, 44716, 44744, 32641, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 25786, 26527, 44778, 28976, 18999, 44795, 44824, 44860, 44808, 44885, 44899, 44911, 44927, 44938, 26204, 44954, 40587, 23546, 44971, 23546, 23546, 43960, 23546, 50132, 23546, 45006, 35089, 26325, 35096, 32207, 45025, 45045, 44306, 45082, 45103, 27800, 35987, 37200, 44669, 44844, 34640, 23546, 23546, 23546, 23546, 45137, 45172, 23546, 19324, 45188, 43446, 47563, 47563, 45233, 45249, 45268, 22824, 43762, 45291, 40314, 22804, 22804, 39677, 36943, 37912, 23546, 23546, 45326, 45362, 23546, 23546, 23546, 23546, 23546, 37055, 48975, 48512, 31834, 47563, 47563, 46028, 22823, 45397, 45415, 22824, 22824, 36333, 38728, 44324, 22804, 22804, 22804, 45435, 33201, 23546, 23546, 26251, 43720, 23546, 45465, 26758, 45484, 45504, 23546, 45539, 47563, 47563, 47285, 43856, 45576, 45600, 22824, 22824, 47994, 48169, 45624, 45661, 22804, 22804, 42152, 45681, 29879, 45697, 45713, 45733, 23546, 25942, 23546, 23546, 30214, 45754, 47562, 47563, 27730, 45789, 27195, 22821, 22824, 47619, 47969, 22824, 30376, 22804, 22804, 45809, 22804, 29883, 33199, 23546, 21039, 23546, 49467, 37049, 48973, 47563, 45851, 48716, 45584, 47934, 22824, 45868, 48003, 35869, 22804, 45910, 30403, 47447, 23546, 48332, 18869, 22345, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 32000, 21288, 23546, 45931, 45953, 47563, 37498, 23109, 22824, 40444, 22804, 34438, 36455, 45997, 44634, 19558, 46021, 50382, 46044, 28056, 22804, 34468, 46609, 35619, 30711, 46062, 46082, 23464, 24759, 33031, 33550, 19538, 36296, 49945, 23141, 46117, 38586, 45823, 48503, 46150, 46187, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23737, 26527, 23546, 23546, 34968, 23546, 46215, 26881, 26893, 46251, 46267, 46279, 46295, 46306, 26204, 46322, 23241, 25565, 35799, 25341, 42889, 46340, 22204, 44869, 46352, 46368, 46377, 46393, 46349, 46420, 46455, 46490, 46547, 46518, 46534, 32867, 46005, 19766, 34600, 44844, 46563, 23546, 26188, 46580, 41258, 46596, 46625, 46675, 46736, 46784, 46807, 46842, 38552, 46877, 45877, 46911, 46944, 36419, 46977, 46999, 47027, 27557, 39677, 37035, 47093, 47115, 35228, 23546, 47139, 47174, 23546, 47766, 23546, 49770, 47192, 20591, 47219, 47244, 47278, 38643, 47301, 41736, 47356, 47391, 47426, 31459, 49439, 36524, 39920, 40135, 22804, 35492, 33058, 47443, 23546, 20251, 43007, 37694, 47465, 46324, 47491, 47518, 23546, 47535, 47555, 39525, 47841, 47563, 34125, 47580, 47616, 47635, 39844, 22824, 37169, 48362, 35849, 47672, 47697, 22804, 41891, 47720, 33195, 23058, 47740, 23546, 45516, 47760, 23546, 47782, 18627, 47798, 50186, 47833, 47857, 27195, 47907, 47932, 47950, 47985, 48036, 39636, 46165, 37602, 50472, 50517, 37554, 27477, 48056, 18311, 23546, 35780, 48076, 48095, 44700, 47563, 47563, 48130, 48155, 37677, 22824, 48203, 48236, 49183, 22804, 48272, 47447, 18372, 48297, 48314, 48330, 41202, 45981, 33877, 34811, 48348, 48040, 48397, 48419, 37793, 31970, 48467, 23546, 23546, 48493, 46466, 31618, 34505, 49612, 47069, 35443, 43299, 48564, 28304, 47475, 19993, 48611, 37364, 48636, 48669, 43591, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 44177, 29729, 48685, 36498, 48701, 45275, 48737, 39426, 42307, 22729, 39685, 48765, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 48828, 23546, 23546, 48856, 23546, 35941, 30944, 30953, 48876, 30953, 30962, 48892, 48903, 26204, 23546, 23546, 23546, 40636, 23546, 26348, 23546, 23546, 23546, 23546, 26345, 23546, 38923, 23546, 48973, 48919, 48178, 48947, 38808, 37005, 31513, 38873, 23546, 23546, 44844, 23546, 23546, 27897, 48963, 23546, 23546, 23546, 23546, 48971, 46750, 47563, 47563, 34356, 48992, 22824, 22824, 22824, 36305, 49028, 22804, 22804, 22804, 49052, 44728, 49080, 23546, 49103, 45341, 23546, 23546, 42732, 48802, 47595, 38359, 35596, 48975, 47563, 49130, 41385, 43221, 47228, 22823, 48595, 46928, 41415, 49146, 49164, 22804, 49199, 49220, 45915, 29388, 37824, 33201, 23546, 25346, 23546, 26261, 23546, 23546, 23546, 49474, 23546, 23546, 48976, 33503, 47563, 47563, 47563, 47564, 49236, 37414, 22824, 22824, 22824, 22767, 49255, 36180, 22804, 22804, 22804, 29879, 33195, 49272, 23546, 49293, 23546, 23546, 23546, 23546, 28581, 36243, 47563, 47563, 47563, 27195, 49311, 22824, 22824, 22824, 22824, 37772, 22804, 22804, 22804, 22804, 29883, 46502, 23546, 23546, 50321, 46564, 23546, 30276, 23289, 47563, 47563, 37718, 49344, 22824, 22824, 30514, 49377, 22804, 22804, 42620, 47447, 39101, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 46439, 24761, 43524, 30673, 49399, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 49418, 45121, 44624, 47559, 33030, 33552, 39426, 32368, 49455, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 49490, 49547, 33412, 49525, 23546, 34105, 23546, 33409, 49544, 42420, 41283, 49566, 49577, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 49593, 35299, 27962, 22805, 43066, 27800, 23546, 33329, 27613, 44844, 23546, 23546, 23546, 23546, 23546, 32481, 23546, 23546, 22587, 32570, 47563, 46861, 47563, 27418, 49610, 22824, 32331, 43762, 42159, 22804, 27215, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 37318, 23546, 23546, 23546, 20322, 23546, 48975, 47563, 47563, 49628, 47563, 37135, 22823, 22824, 32615, 22824, 22824, 49439, 22804, 22804, 49645, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 49666, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 49683, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 49701, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 49720, 23546, 50953, 23546, 25809, 49755, 49786, 23546, 49811, 49825, 49837, 49853, 49864, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 27387, 22824, 49893, 38199, 49880, 34211, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 42672, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 49917, 23546, 23546, 23546, 22167, 47563, 47563, 47563, 47563, 47564, 49936, 22824, 22824, 22824, 22824, 22767, 49969, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 45149, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 49988, 47563, 50006, 22821, 22824, 48578, 22824, 41424, 30376, 22804, 39894, 22804, 32389, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 26445, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 41512, 50052, 50063, 26204, 23546, 23546, 23546, 35799, 50079, 30464, 23546, 23546, 23546, 23546, 32774, 23546, 41129, 32770, 46701, 50096, 40191, 28190, 22805, 43066, 27800, 23546, 23546, 23546, 50113, 28719, 34485, 45773, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 29611, 47563, 27026, 27418, 22824, 35645, 28383, 43762, 22804, 22921, 22804, 48250, 39677, 50148, 50164, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 41250, 23546, 23546, 23546, 48976, 47563, 47563, 50184, 47563, 45852, 22821, 22824, 38786, 22824, 22824, 45252, 35849, 22804, 48256, 22804, 22804, 29879, 33195, 48079, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 50202, 47563, 47563, 27195, 22821, 50220, 22824, 22824, 22824, 30376, 48220, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 21798, 23546, 23546, 35799, 23546, 23546, 46652, 23546, 23546, 23546, 23546, 46656, 23546, 23546, 50246, 28439, 22824, 50294, 36350, 50281, 47331, 23546, 29448, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 35817, 22587, 47563, 47563, 47563, 27723, 27418, 22824, 22824, 27861, 43762, 22804, 22804, 22804, 48212, 39677, 36943, 23546, 50318, 23546, 23546, 23546, 23546, 23546, 23546, 37099, 23546, 23546, 48975, 38667, 47563, 36014, 47563, 37135, 22823, 50337, 22824, 46961, 22824, 49439, 28018, 22804, 22804, 50356, 22804, 29885, 33201, 23546, 43738, 23546, 23546, 23546, 23546, 23546, 38534, 23546, 23546, 48976, 47563, 50376, 47563, 47563, 47564, 50398, 41961, 50424, 22824, 22824, 22767, 50443, 28403, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 21488, 23546, 47562, 47563, 31747, 47563, 34161, 22821, 22824, 43024, 22824, 22824, 50464, 22804, 22804, 50488, 22804, 43844, 33199, 23546, 23546, 18921, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 31241, 23546, 23546, 39165, 23546, 29133, 47563, 47563, 33578, 22824, 22824, 50509, 22804, 22804, 31970, 23546, 49295, 23546, 22586, 47563, 31161, 23109, 50427, 22825, 22804, 41830, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22677, 23546, 23546, 23546, 23546, 26527, 23546, 23546, 23546, 23546, 21369, 21483, 23546, 23546, 23546, 19262, 39432, 32077, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27800, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 27418, 22824, 22824, 22824, 43762, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 46404, 21767, 21765, 32117, 22038, 50563, 21058, 21061, 50533, 22036, 50551, 50579, 50591, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 50607, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50637, 19916, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50655, 18544, 18567, 18590, 19934, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 22150, 23546, 21369, 20766, 50679, 50692, 50708, 50717, 49509, 50740, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 51042, 23546, 23546, 23546, 23761, 23546, 23546, 23758, 25629, 19208, 50639, 19926, 50639, 50790, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 18521, 18544, 18567, 18590, 50663, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 42087, 23546, 23546, 23546, 23546, 22568, 29910, 50839, 50872, 50878, 50849, 23148, 50894, 20967, 23546, 23546, 23546, 35799, 23546, 23546, 50932, 23546, 23546, 22686, 23546, 23546, 23546, 22682, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 18327, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50969, 18544, 18567, 18590, 21689, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 20159, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 20376, 20392, 51127, 20418, 50802, 20462, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 21089, 23546, 23546, 23546, 23546, 25841, 23546, 23546, 23546, 23546, 21369, 23546, 23546, 23546, 23546, 23546, 23546, 23489, 26204, 23546, 23546, 23546, 35799, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 22824, 35842, 22805, 43066, 27132, 23546, 23546, 23546, 44844, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22587, 47563, 47563, 47563, 47563, 22603, 22824, 22824, 22824, 34828, 22804, 22804, 22804, 22804, 39677, 36943, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48975, 47563, 47563, 47563, 47563, 37135, 22823, 22824, 22824, 22824, 22824, 49439, 22804, 22804, 22804, 22804, 22804, 29885, 33201, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 48976, 47563, 47563, 47563, 47563, 47564, 22821, 22824, 22824, 22824, 22824, 22767, 35849, 22804, 22804, 22804, 22804, 29879, 33195, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 47562, 47563, 47563, 47563, 27195, 22821, 22824, 22824, 22824, 22824, 30376, 22804, 22804, 22804, 22804, 29883, 33199, 23546, 23546, 23546, 23546, 23546, 48973, 47563, 47563, 47563, 45209, 22824, 22824, 22824, 27834, 22804, 22804, 22804, 30403, 47447, 23546, 23546, 23546, 23546, 47560, 47563, 47563, 23113, 22824, 22824, 33078, 22804, 22804, 31970, 23546, 23546, 23546, 22586, 47563, 47563, 23109, 22824, 22825, 22804, 22804, 31964, 47447, 46606, 22585, 47563, 24761, 22824, 30673, 22804, 36549, 46609, 47561, 23111, 30673, 39296, 23464, 24759, 33031, 33550, 48975, 23107, 30672, 23141, 24756, 33030, 33551, 47559, 33030, 33552, 39426, 42307, 22729, 23448, 23351, 23363, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 22457, 23546, 23546, 22482, 50993, 50998, 50998, 51019, 22480, 51014, 51035, 23546, 23546, 23546, 23546, 23546, 23546, 51042, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 25629, 19208, 50639, 19926, 50639, 20660, 19723, 18282, 18849, 18305, 51062, 23546, 23546, 18368, 23546, 18915, 18388, 18432, 18458, 18463, 18479, 18968, 18495, 19670, 50655, 18544, 18567, 18590, 19934, 18528, 18551, 18574, 18597, 20868, 18620, 23546, 30606, 23546, 23546, 23546, 23582, 23367, 18643, 23546, 18664, 50036, 18695, 19209, 26024, 18505, 19208, 25377, 18724, 26048, 18745, 18766, 18771, 19889, 50639, 26053, 18750, 50639, 18776, 19839, 20674, 23546, 18792, 18808, 18830, 23628, 18814, 18865, 23546, 44195, 18885, 18937, 18958, 20812, 26011, 20051, 18984, 19036, 19054, 19072, 19090, 26127, 19108, 19038, 19056, 19074, 19092, 26129, 18604, 20668, 23396, 19137, 19171, 19225, 39246, 19278, 47150, 19314, 19340, 26667, 19186, 19380, 19422, 19456, 25721, 19477, 25754, 19498, 19451, 25716, 19472, 25749, 19493, 19514, 19530, 18900, 19554, 23717, 19574, 19592, 19632, 19657, 20190, 20797, 20402, 21452, 19692, 19708, 19964, 21452, 19692, 19708, 20432, 19853, 26492, 19746, 41094, 19782, 18942, 19201, 19798, 19825, 19883, 19905, 19950, 19883, 19905, 19980, 23977, 20842, 20016, 18679, 20827, 20042, 20067, 20090, 20113, 20074, 20097, 20129, 20446, 51082, 20175, 20206, 20222, 51139, 20274, 51143, 20301, 51098, 20392, 51127, 20418, 50802, 51114, 25380, 50639, 18729, 32258, 26037, 20489, 20515, 19641, 20555, 20577, 20616, 20632, 20648, 20696, 20727, 20743, 20782, 20858, 20884, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 23546, 94503, 94503, 90406, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 1, 12290, 3, 0, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 362, 94503, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 0, 94503, 90406, 94503, 94503, 94503, 94503, 94503, 94503, 94503, 69632, 73728, 94503, 94503, 94503, 94503, 94503, 65536, 94503, 0, 2183168, 0, 0, 0, 90406, 94503, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 2985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1631, 0, 0, 0, 0, 0, 1637, 0, 0, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2454, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2904064, 2908160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2751, 0, 0, 0, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 0, 2997, 0, 0, 0, 0, 3001, 0, 0, 0, 0, 0, 0, 1186, 0, 0, 0, 1191, 0, 0, 0, 0, 1107, 0, 0, 0, 2138112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2978, 0, 0, 0, 2424832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2625536, 0, 0, 0, 0, 0, 172032, 0, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 1, 12290, 3, 0, 2699264, 2715648, 0, 0, 2772992, 2805760, 2830336, 0, 2863104, 2920448, 0, 0, 0, 0, 0, 0, 0, 1114, 0, 0, 0, 0, 1118, 0, 0, 1121, 0, 2805760, 2920448, 0, 0, 0, 0, 0, 2920448, 0, 0, 0, 0, 0, 0, 0, 2732032, 0, 2179072, 2179072, 2179072, 2424832, 2433024, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2625536, 2805760, 2179072, 2830336, 2179072, 2179072, 2863104, 2179072, 2179072, 2179072, 2920448, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2801664, 2813952, 2179072, 2838528, 2179072, 2179072, 2179072, 2179072, 2179072, 0, 914, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2625536, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2625536, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2699264, 2125824, 2715648, 2125824, 2723840, 2125824, 2732032, 2772992, 2125824, 2125824, 2125824, 2723840, 2125824, 2732032, 2772992, 2125824, 2125824, 2125824, 2805760, 2125824, 2830336, 2125824, 2125824, 2863104, 2125824, 2125824, 2125824, 2125824, 2920448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2920448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3117056, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3207168, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2125824, 2457600, 2125824, 2125824, 2125824, 2125824, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2375680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 0, 0, 0, 0, 0, 0, 2408448, 0, 0, 2584576, 0, 0, 0, 0, 2838528, 0, 0, 2838528, 0, 0, 0, 0, 0, 2469888, 2506752, 2756608, 0, 0, 2580480, 0, 0, 0, 2396160, 2400256, 2412544, 0, 0, 2838528, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2408448, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 914, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 0, 2125824, 2125824, 2125824, 2408448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2502656, 0, 0, 3010560, 2125824, 2125824, 2125824, 2125824, 2125824, 2662400, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2801664, 2813952, 2125824, 2838528, 2125824, 2801664, 2813952, 2125824, 2838528, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3125248, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2461696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2600960, 0, 2674688, 0, 2768896, 2777088, 2781184, 0, 2822144, 0, 0, 2883584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3055616, 0, 0, 0, 3080192, 3100672, 3104768, 0, 0, 0, 0, 3186688, 0, 0, 0, 0, 0, 0, 0, 3182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2732032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3133440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3003, 3004, 0, 2719744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3014656, 3207168, 0, 2691072, 0, 0, 0, 0, 0, 2818048, 2846720, 0, 2916352, 0, 0, 3002368, 0, 0, 3022848, 0, 0, 0, 0, 0, 2871296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2766, 0, 0, 0, 0, 0, 3215360, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2494464, 2179072, 2179072, 2514944, 2179072, 2179072, 2461696, 2465792, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2523136, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2699264, 2179072, 2715648, 2179072, 2723840, 2179072, 2732032, 2772992, 2179072, 2179072, 3100672, 2179072, 2179072, 3133440, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3207168, 2179072, 0, 0, 0, 0, 391, 392, 0, 393, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 3504, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3399, 540, 540, 0, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2461696, 2465792, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2523136, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2600960, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2641920, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2719744, 2125824, 2125824, 2125824, 2125824, 2125824, 2768896, 2777088, 2768896, 2777088, 2125824, 2797568, 2822144, 2125824, 2125824, 2125824, 2883584, 2125824, 2912256, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3133440, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3207168, 2125824, 0, 0, 0, 0, 0, 0, 3011, 0, 0, 0, 0, 0, 0, 3018, 0, 0, 0, 0, 2605056, 0, 0, 0, 0, 2887680, 0, 2924544, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 0, 0, 0, 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3162112, 3170304, 0, 0, 3219456, 3035136, 0, 0, 0, 0, 0, 3072000, 2650112, 2179072, 2179072, 2179072, 2707456, 2179072, 2736128, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2887680, 2179072, 2179072, 2543616, 2547712, 2179072, 2179072, 2596864, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2584576, 0, 0, 2809856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3088384, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 2112, 0, 0, 0, 0, 0, 1680, 1681, 0, 1683, 0, 0, 0, 0, 0, 0, 0, 540, 561, 540, 561, 540, 540, 561, 540, 585, 0, 0, 2576384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2420736, 0, 0, 0, 0, 429, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 3121152, 3141632, 0, 0, 0, 2924544, 0, 2682880, 0, 0, 0, 0, 0, 0, 0, 1242, 1272, 1273, 0, 1242, 0, 540, 540, 540, 3112960, 2387968, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2453504, 2179072, 2473984, 2482176, 2179072, 2179072, 2179072, 2179072, 2179072, 3010560, 2179072, 2179072, 2126737, 2126737, 2503569, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2532241, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2605969, 2126737, 2924544, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3035136, 2179072, 2179072, 3072000, 2179072, 2179072, 2179072, 3137536, 2126737, 2126737, 2499473, 2126737, 2126737, 2126737, 2556817, 2565009, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3224465, 0, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 2446298, 2126810, 3121152, 2179072, 2179072, 3141632, 2179072, 2179072, 2179072, 3170304, 2179072, 2179072, 3190784, 3194880, 2179072, 0, 0, 0, 0, 0, 0, 3181, 0, 0, 0, 3184, 3185, 3186, 0, 0, 3189, 3194880, 2125824, 0, 0, 0, 0, 0, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2453504, 2125824, 2473984, 2482176, 2125824, 2125824, 2125824, 2605056, 2125824, 2629632, 2125824, 2125824, 2650112, 2125824, 2125824, 2125824, 2707456, 2125824, 2736128, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3035136, 2125824, 2125824, 3072000, 2125824, 2125824, 3121152, 2125824, 2125824, 3141632, 2125824, 2125824, 2125824, 3170304, 2125824, 2125824, 3190784, 2125824, 3170304, 2125824, 2125824, 3190784, 3194880, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 3112960, 3219456, 2125824, 2125824, 3112960, 3219456, 2125824, 2125824, 3112960, 3219456, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3507, 540, 540, 540, 540, 540, 540, 0, 3145728, 0, 3203072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3314, 0, 540, 0, 3067904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 0, 0, 2895872, 0, 0, 0, 2445312, 0, 2842624, 0, 0, 0, 2637824, 0, 0, 0, 0, 432, 0, 0, 0, 329, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 0, 0, 0, 2621440, 0, 3182592, 2899968, 0, 2961408, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2592768, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2445312, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2551808, 2179072, 2179072, 2179072, 2179072, 2179072, 3117056, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2637824, 2125824, 2125824, 2125824, 2125824, 2727936, 2752512, 2125824, 2125824, 2125824, 2125824, 2842624, 2846720, 2125824, 2895872, 2916352, 2125824, 2125824, 2945024, 2125824, 2125824, 2994176, 2125824, 3002368, 2125824, 2125824, 3022848, 2125824, 3067904, 3084288, 3096576, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2442, 2443, 0, 0, 2446, 0, 0, 0, 0, 0, 2928640, 0, 0, 0, 3059712, 0, 2543616, 2666496, 0, 2633728, 0, 0, 0, 0, 0, 1697, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1116, 0, 0, 0, 0, 0, 2494464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3211264, 2179072, 2928640, 2179072, 2179072, 2179072, 2998272, 2179072, 2179072, 2179072, 2179072, 3059712, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 0, 0, 2126737, 2126737, 2126737, 2126737, 2126737, 2446225, 2126737, 2179072, 3178496, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2494464, 2125824, 2125824, 2514944, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 2510848, 2514944, 0, 0, 2547712, 2596864, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 2113, 0, 2125824, 2543616, 2547712, 2125824, 2125824, 2596864, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 2125824, 2125824, 2125824, 2408448, 2125824, 2928640, 2125824, 2125824, 2125824, 2998272, 2125824, 2125824, 2125824, 2125824, 3059712, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2125824, 2126811, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 2125824, 2125824, 2125824, 2125824, 2424832, 2125824, 3178496, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2494464, 2125824, 2125824, 2514944, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 2125824, 3178496, 2125824, 2179072, 2125824, 2125824, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2441216, 0, 0, 0, 0, 0, 0, 3311, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2165, 540, 540, 540, 540, 0, 0, 0, 2740224, 0, 0, 0, 0, 0, 2793472, 0, 0, 0, 0, 0, 0, 0, 1244, 0, 0, 0, 0, 1247, 0, 1194, 0, 2646016, 2179072, 2179072, 2695168, 2756608, 2179072, 2179072, 2179072, 2932736, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3039232, 2179072, 3063808, 2179072, 2179072, 2179072, 2179072, 3129344, 2179072, 2179072, 3153920, 3166208, 3174400, 2396160, 2400256, 2125824, 2125824, 2441216, 2125824, 2469888, 2125824, 2125824, 2125824, 2519040, 2125824, 2125824, 2125824, 2125824, 2588672, 2125824, 2519040, 2125824, 2125824, 2125824, 2125824, 2588672, 2125824, 2613248, 2646016, 2125824, 2125824, 2695168, 2756608, 2125824, 2125824, 2125824, 2125824, 2932736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2932736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3129344, 2125824, 2125824, 3153920, 3166208, 3174400, 2396160, 2125824, 2125824, 3129344, 2125824, 2125824, 3153920, 3166208, 3174400, 2125824, 2506752, 2506752, 2506752, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 987, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 3176, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 3158016, 2437120, 0, 2785280, 0, 0, 0, 2428928, 0, 3018752, 2764800, 2572288, 0, 0, 3051520, 2179072, 2179072, 2637824, 2179072, 2179072, 2179072, 2179072, 2727936, 2752512, 2179072, 2179072, 2179072, 2842624, 2846720, 2179072, 2916352, 2428928, 2437120, 2179072, 2486272, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2654208, 2678784, 2760704, 2764800, 2854912, 2969600, 2179072, 3006464, 2179072, 3018752, 2179072, 2179072, 2179072, 3149824, 2125824, 2428928, 2437120, 2125824, 2486272, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 2043, 2044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2140, 0, 0, 0, 0, 0, 0, 2125824, 3018752, 2125824, 2125824, 2125824, 3149824, 2125824, 2428928, 2437120, 2125824, 2486272, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 24576, 987, 2125824, 2125824, 2125824, 2125824, 2424832, 2125824, 3149824, 2125824, 2179072, 3051520, 2125824, 3051520, 2125824, 3051520, 0, 2490368, 2498560, 0, 0, 0, 0, 0, 0, 304, 0, 204800, 0, 0, 0, 0, 0, 0, 0, 0, 1713, 0, 0, 0, 0, 0, 0, 0, 0, 1727, 0, 0, 0, 0, 0, 0, 0, 0, 2068, 0, 0, 0, 0, 0, 0, 0, 0, 2095, 0, 0, 0, 0, 0, 0, 0, 0, 2107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2875392, 0, 0, 0, 3176, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2940928, 2179072, 2179072, 2498560, 2179072, 2179072, 2179072, 2555904, 2564096, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 3223552, 0, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 2445312, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3137536, 2125824, 2125824, 2498560, 2125824, 2125824, 2125824, 2555904, 2564096, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3223552, 2125824, 2179072, 2416640, 2125824, 2125824, 2179072, 2179072, 2125824, 2125824, 0, 2486272, 0, 0, 0, 0, 0, 2678784, 2854912, 3006464, 0, 3108864, 3198976, 0, 0, 2748416, 2879488, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 2592768, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2125824, 2125824, 2125824, 2125824, 3010560, 2125824, 2125824, 2125824, 2125824, 2502656, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 296, 0, 0, 0, 296, 0, 297, 0, 0, 0, 2125824, 2125824, 2125824, 3010560, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 2592768, 0, 0, 0, 0, 433, 0, 0, 0, 453, 469, 469, 469, 469, 469, 469, 469, 469, 469, 479, 469, 469, 469, 469, 469, 469, 2125824, 2125824, 2125824, 2125824, 2592768, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 1918, 2125824, 2125824, 2125824, 2408448, 2125824, 2592768, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2449408, 0, 2535424, 3031040, 0, 0, 0, 0, 0, 1734, 0, 1736, 1710, 540, 540, 540, 540, 540, 540, 540, 540, 1816, 1818, 540, 540, 540, 540, 540, 1360, 0, 2859008, 0, 0, 2179072, 2449408, 2179072, 2535424, 2179072, 2609152, 2179072, 2859008, 2179072, 2179072, 2179072, 3031040, 2125824, 2449408, 2125824, 2535424, 2125824, 2609152, 2125824, 2859008, 2125824, 2125824, 2125824, 3031040, 2125824, 2449408, 2125824, 2535424, 2125824, 2609152, 2125824, 2859008, 2125824, 2125824, 2125824, 3031040, 2125824, 2527232, 0, 0, 0, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2804, 540, 540, 540, 540, 2527232, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2527232, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2527232, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 1080, 1084, 0, 0, 1088, 2125824, 2125824, 2125824, 2125824, 3092480, 0, 0, 0, 0, 3026944, 2404352, 2179072, 2179072, 2179072, 2179072, 3026944, 2404352, 2125824, 2125824, 2125824, 2125824, 3026944, 2404352, 2125824, 2125824, 2125824, 2125824, 3026944, 2539520, 0, 2949120, 0, 0, 0, 0, 434, 0, 0, 446, 0, 0, 0, 0, 0, 0, 0, 0, 457, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 2179072, 2658304, 2973696, 2179072, 2125824, 2658304, 2973696, 2125824, 2125824, 2658304, 2973696, 2125824, 2711552, 0, 2560000, 2179072, 2179072, 2945024, 2179072, 2179072, 2994176, 2179072, 3002368, 2179072, 2179072, 3022848, 2179072, 3067904, 3084288, 3096576, 2179072, 2179072, 2600960, 2179072, 2179072, 2179072, 2179072, 2641920, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2719744, 2179072, 2179072, 2441216, 2179072, 2469888, 2179072, 2179072, 2179072, 2519040, 2179072, 2179072, 2179072, 2179072, 2588672, 2179072, 2613248, 2703360, 0, 0, 0, 0, 2977792, 0, 0, 3047424, 3129344, 0, 2981888, 2396160, 0, 3153920, 2560000, 2125824, 2560000, 2125824, 0, 2179072, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 0, 2179072, 2125824, 2125824, 2125824, 2457600, 2179072, 2179072, 2179072, 2179072, 2457600, 2125824, 2125824, 2125824, 2985984, 2985984, 2985984, 2985984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249856, 0, 0, 0, 0, 0, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 458, 458, 111050, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 111050, 458, 111050, 111050, 111050, 111050, 111050, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2738, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 184723, 184931, 184931, 184931, 0, 184931, 184931, 184931, 184931, 184931, 0, 0, 0, 0, 0, 184931, 0, 184931, 1, 12290, 3, 78112, 1059, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 296, 0, 297, 0, 2125824, 1059, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2750, 0, 0, 0, 0, 2755, 0, 300, 118784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 300, 300, 300, 300, 0, 0, 0, 0, 0, 300, 0, 300, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 33403, 297, 0, 2134016, 49791, 301, 0, 0, 0, 0, 0, 0, 225889, 225889, 225889, 225889, 225740, 225889, 225889, 225889, 225889, 225889, 225740, 225740, 225740, 225740, 225740, 225906, 225740, 225906, 1, 12290, 3, 0, 0, 0, 0, 249856, 0, 0, 0, 249856, 0, 0, 0, 0, 0, 0, 697, 698, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 296, 0, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 57344, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 540, 540, 540, 540, 540, 540, 540, 2530, 540, 540, 540, 540, 540, 540, 540, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 296, 0, 0, 0, 300, 0, 0, 0, 300, 119195, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 0, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 122880, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3166, 3167, 0, 0, 0, 0, 0, 122880, 0, 122880, 122880, 122880, 0, 0, 0, 0, 0, 122880, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 122880, 122880, 122880, 122880, 0, 122880, 0, 2105629, 12290, 3, 0, 0, 291, 0, 0, 0, 0, 291, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 746, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 69632, 73728, 0, 416, 416, 0, 0, 65536, 416, 1092, 0, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2765, 0, 0, 0, 0, 0, 1824, 2125824, 2125824, 2125824, 2408448, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2551808, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 131072, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2507, 0, 0, 0, 0, 0, 131072, 0, 0, 131072, 131072, 0, 0, 0, 0, 0, 0, 131072, 0, 131072, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 0, 131072, 131072, 131072, 131072, 0, 131072, 131072, 131072, 131072, 131072, 0, 0, 0, 0, 0, 131072, 0, 131072, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 135168, 135168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 320, 321, 0, 0, 0, 135168, 0, 0, 135168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3174, 0, 0, 0, 0, 0, 0, 0, 135168, 135168, 135168, 135168, 135168, 135168, 135168, 0, 135168, 135168, 135168, 135168, 135168, 0, 0, 0, 0, 0, 135168, 0, 135168, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118784, 296, 0, 2183168, 0, 0, 0, 0, 0, 636, 637, 0, 2134016, 640, 641, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 266240, 0, 0, 0, 1361, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 986, 2125824, 2125824, 2125824, 2125824, 2424832, 0, 301, 139264, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 331, 301, 301, 301, 301, 0, 0, 0, 0, 0, 301, 0, 301, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139264, 297, 0, 2183168, 0, 0, 0, 0, 0, 296, 33406, 0, 2134016, 300, 49794, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61440, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2455, 0, 0, 0, 0, 0, 301, 2424832, 2433024, 0, 0, 2457600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2779, 0, 0, 0, 0, 0, 298, 298, 143728, 298, 298, 298, 143728, 69632, 73728, 298, 298, 143658, 298, 298, 65536, 298, 298, 0, 0, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 363, 298, 0, 143658, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 298, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 298, 298, 298, 143658, 368, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143658, 298, 298, 143658, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 298, 0, 298, 0, 298, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143658, 298, 143658, 143658, 143658, 143658, 298, 298, 143658, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 143728, 298, 298, 298, 298, 298, 298, 298, 143658, 143658, 143658, 143658, 143658, 143658, 143728, 143658, 143728, 143728, 143728, 143728, 143728, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 143658, 1, 12290, 3, 0, 0, 0, 0, 0, 0, 0, 90406, 90406, 90406, 90406, 0, 94503, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 2200252, 2200252, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 155648, 155648, 0, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 155648, 0, 0, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 0, 155648, 155648, 0, 155648, 155648, 0, 12290, 3, 0, 0, 2183168, 126976, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 1146880, 0, 1146880, 0, 0, 0, 0, 0, 0, 0, 1107, 0, 0, 0, 0, 0, 0, 0, 0, 540, 2163, 540, 540, 540, 540, 540, 540, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 345, 346, 347, 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, 0, 0, 0, 1156, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 0, 0, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 163840, 159744, 159744, 159744, 163840, 159744, 159744, 159744, 159744, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 25160, 0, 0, 159744, 0, 0, 0, 0, 25160, 25160, 25160, 159744, 25160, 25160, 25160, 25160, 25160, 159744, 159744, 159744, 159744, 25160, 159744, 25160, 1, 12290, 3, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 1, 12290, 3, 0, 167936, 167936, 167936, 0, 0, 167936, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3015, 0, 0, 0, 0, 0, 0, 0, 0, 2138112, 1183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262144, 0, 0, 0, 0, 172032, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172032, 0, 0, 0, 0, 0, 0, 172032, 172032, 0, 172032, 0, 0, 172032, 0, 172032, 0, 172032, 0, 0, 0, 0, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 1, 12290, 3, 0, 172032, 0, 172032, 172032, 0, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 172032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106496, 0, 0, 0, 0, 0, 1, 286, 3, 0, 0, 0, 292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106496, 0, 106496, 0, 0, 0, 0, 106496, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 1, 0, 3, 78112, 176128, 176128, 176128, 0, 0, 176128, 0, 0, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111050, 0, 0, 0, 0, 0, 78112, 290, 0, 634, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 1159168, 414, 414, 0, 0, 0, 0, 0, 414, 0, 1164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 0, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 959, 561, 585, 585, 585, 1490, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1498, 585, 585, 0, 0, 229376, 0, 0, 0, 0, 0, 0, 0, 0, 1686, 0, 0, 0, 0, 0, 0, 404, 404, 404, 404, 0, 404, 404, 404, 404, 404, 0, 0, 0, 0, 0, 404, 0, 404, 1, 12290, 3, 78112, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1155072, 0, 0, 0, 0, 0, 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, 0, 0, 561, 561, 561, 561, 561, 561, 2250, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 3295, 0, 0, 0, 0, 0, 0, 0, 712, 0, 0, 0, 716, 0, 0, 719, 0, 561, 561, 2287, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 585, 585, 585, 2347, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1514, 585, 585, 2372, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 2671, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1515, 585, 585, 0, 0, 0, 2994, 0, 0, 0, 2998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 159744, 159744, 159744, 159744, 159744, 159744, 540, 3035, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 910, 540, 3075, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1417, 3116, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1501, 0, 0, 3178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3187, 0, 0, 0, 0, 0, 2046, 0, 2149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 1, 12290, 3, 0, 540, 540, 540, 3203, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3211, 540, 540, 540, 540, 540, 2813, 540, 540, 2817, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2555, 540, 540, 540, 540, 540, 540, 3255, 585, 585, 585, 3258, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3266, 585, 561, 0, 1287, 585, 1467, 1376, 540, 540, 1339, 540, 540, 561, 561, 1430, 561, 0, 585, 585, 585, 585, 585, 288, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2427, 0, 0, 0, 0, 0, 0, 0, 0, 2465, 0, 0, 2468, 0, 0, 0, 0, 0, 0, 0, 0, 3309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3508, 540, 3509, 540, 540, 540, 3326, 3327, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 961, 561, 585, 585, 585, 3361, 585, 585, 585, 585, 3362, 3363, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 3387, 0, 0, 0, 0, 0, 2092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 561, 3416, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3425, 585, 585, 585, 585, 585, 585, 1492, 585, 585, 585, 585, 585, 585, 585, 1499, 585, 585, 585, 585, 3431, 585, 585, 585, 585, 3435, 540, 561, 585, 0, 0, 0, 0, 0, 0, 665, 0, 0, 668, 0, 0, 0, 0, 0, 0, 0, 3172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 3450, 540, 540, 540, 540, 540, 2814, 540, 2816, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2233, 540, 540, 540, 540, 540, 0, 561, 561, 561, 3573, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3538, 585, 585, 3585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 3627, 561, 561, 585, 585, 0, 540, 561, 585, 0, 540, 561, 585, 0, 540, 561, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2662400, 0, 2813952, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 0, 0, 0, 0, 2473984, 2478080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2134756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 3, 0, 0, 0, 188416, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 540, 540, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 2169, 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 3, 78112, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 192971, 0, 1, 12290, 3, 0, 192971, 192971, 192971, 0, 0, 192971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 192971, 192971, 192971, 192971, 192971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2801664, 0, 0, 0, 0, 2142208, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 299, 300, 301, 0, 0, 0, 0, 0, 0, 2797568, 0, 0, 0, 0, 0, 0, 0, 2850816, 2867200, 0, 0, 740, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 0, 0, 0, 0, 0, 740, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 2029, 0, 2031, 0, 0, 0, 0, 740, 1184, 0, 0, 0, 0, 1188, 0, 0, 0, 0, 0, 0, 0, 1583, 0, 1585, 0, 0, 0, 0, 0, 0, 0, 1661, 1662, 0, 0, 0, 0, 0, 0, 0, 0, 2727936, 0, 0, 0, 3084288, 0, 0, 0, 0, 0, 0, 1577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 351, 352, 353, 354, 0, 0, 0, 1188, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1150976, 0, 0, 0, 0, 0, 0, 561, 561, 585, 585, 585, 585, 1559, 2029, 0, 0, 0, 0, 1565, 2031, 0, 0, 0, 0, 0, 2120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2130, 2033, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 336, 337, 338, 561, 561, 2323, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2339, 585, 585, 2342, 0, 304, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 304, 0, 0, 0, 0, 0, 2136, 0, 2138, 0, 0, 0, 0, 0, 0, 0, 0, 791, 817, 0, 817, 812, 0, 0, 0, 0, 0, 0, 204800, 204800, 0, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 204800, 205104, 204800, 204800, 205103, 205104, 204800, 205103, 205103, 204800, 204800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, 0, 2183801, 0, 0, 0, 0, 0, 296, 297, 151552, 2134016, 300, 301, 0, 212992, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 0, 2200253, 0, 0, 0, 0, 0, 0, 2932736, 2965504, 0, 0, 3076096, 0, 0, 2695168, 3174400, 2646016, 0, 914, 2126737, 2126737, 2126737, 2126737, 2425745, 2433937, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 0, 0, 987, 2126810, 2126810, 2126810, 2126810, 2425818, 2724753, 2126737, 2732945, 2773905, 2126737, 2126737, 2126737, 2806673, 2126737, 2831249, 2126737, 2126737, 2864017, 2126737, 2126737, 2126737, 2126737, 2126737, 2524049, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2601873, 2126737, 2126737, 2921361, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3117969, 2126737, 2126737, 2126737, 2126737, 2593681, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 3093393, 0, 0, 0, 0, 3026944, 2404352, 2179072, 2179072, 2179072, 2179072, 3026944, 2434010, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2626522, 2126810, 2126737, 0, 2179072, 2126810, 2126810, 2126737, 2457600, 2179072, 2179072, 2179072, 2179072, 2458513, 2126737, 2126737, 2126737, 2126737, 2126737, 2626449, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2700177, 2126737, 2716561, 2126737, 2806746, 2126810, 2831322, 2126810, 2126810, 2864090, 2126810, 2126810, 2126810, 2126810, 2921434, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2458586, 2126810, 2126810, 2126810, 2126810, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, 395, 0, 0, 0, 321, 0, 0, 2126737, 2126737, 2126737, 2409361, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3126161, 2126737, 2126737, 2126737, 2802577, 2814865, 2126737, 2839441, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 2126810, 2663386, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2802650, 2814938, 2126810, 2839514, 0, 0, 0, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2462609, 2466705, 2126737, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, 0, 0, 0, 0, 0, 2769809, 2778001, 2126737, 2798481, 2823057, 2126737, 2126737, 2126737, 2884497, 2126737, 2913169, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2655121, 2679697, 2761617, 2765713, 2786193, 2855825, 2970513, 2126737, 3007377, 2126737, 3134353, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3208081, 2126737, 0, 0, 0, 0, 0, 325, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2462682, 2466778, 2126810, 2126810, 2126810, 2524122, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2601946, 2126810, 2126810, 2126810, 2585562, 2126810, 2126810, 2126810, 2126810, 2126810, 2618330, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2888666, 2126810, 2126810, 2925530, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2642906, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2720730, 2126810, 2126810, 2126810, 2126810, 2126810, 2769882, 2778074, 2126810, 2798554, 2823130, 2126810, 2126810, 2126810, 2884570, 2126810, 2913242, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3126234, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3208154, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 0, 0, 0, 2388881, 2126737, 2126737, 2421649, 2126737, 2126737, 2126737, 2126737, 2126737, 2454417, 2126737, 2474897, 2483089, 2630545, 2126737, 2126737, 2651025, 2126737, 2126737, 2126737, 2708369, 2126737, 2737041, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 985, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2552794, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2126737, 3072913, 2126737, 2126737, 3122065, 2126737, 2126737, 3142545, 2126737, 2126737, 2126737, 3171217, 2126737, 2126737, 3191697, 3195793, 2126737, 0, 0, 0, 0, 0, 0, 2388954, 2126810, 2126810, 2421722, 2126810, 2126810, 2126810, 2126810, 2126810, 3040218, 2126810, 3064794, 2126810, 2126810, 2126810, 2126810, 3101658, 2126810, 2126810, 3134426, 2126810, 2454490, 2126810, 2474970, 2483162, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2532314, 2126810, 2126810, 2126810, 2126810, 3036122, 2126810, 2126810, 3072986, 2126810, 2126810, 3122138, 2126810, 2126810, 3142618, 2126810, 2126810, 2126810, 3171290, 2126810, 2126810, 3191770, 3195866, 2126810, 2126737, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 3112960, 3219456, 2126737, 2126737, 3113873, 3220369, 2126810, 2126810, 3113946, 3220442, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167936, 167936, 167936, 167936, 167936, 167936, 167936, 2638737, 2126737, 2126737, 2126737, 2126737, 2728849, 2753425, 2126737, 2126737, 2126737, 2126737, 2843537, 2847633, 2126737, 2896785, 2917265, 2638810, 2126810, 2126810, 2126810, 2126810, 2728922, 2753498, 2126810, 2126810, 2126810, 2126810, 2843610, 2847706, 2126810, 2896858, 2917338, 2179072, 3178496, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2495377, 2126737, 2126737, 2515857, 2126737, 2126737, 2126737, 2126737, 3011473, 2126737, 2126737, 2126810, 2126810, 2503642, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3138522, 2126737, 2940928, 2941841, 2941914, 0, 0, 0, 0, 2126737, 2544529, 2548625, 2126737, 2126737, 2597777, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2552721, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2929553, 2126737, 2126737, 2126737, 2999185, 2126737, 2126737, 2126737, 2126737, 3060625, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3040145, 2126737, 3064721, 2126737, 2126737, 2126737, 2126737, 3101585, 2126737, 2126737, 3179409, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2495450, 2126810, 2126810, 2515930, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 2510848, 2514944, 0, 0, 2547712, 2596864, 0, 0, 0, 0, 0, 2160, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 3525, 561, 2126810, 2544602, 2548698, 2126810, 2126810, 2597850, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 0, 2502656, 0, 0, 3010560, 2126810, 2929626, 2126810, 2126810, 2126810, 2999258, 2126810, 2126810, 2126810, 2126810, 3060698, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3118042, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2126810, 3179482, 2126737, 2179072, 2126810, 2126737, 2179072, 2179072, 2126737, 2126737, 2126810, 2126810, 2441216, 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 0, 3129344, 2179072, 2179072, 3153920, 3166208, 3174400, 2397073, 2401169, 2126737, 2126737, 2442129, 2126737, 2470801, 2126737, 2126737, 2126737, 2126737, 2126737, 2663313, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 0, 0, 2126810, 2126810, 2126810, 2409434, 2519953, 2126737, 2126737, 2126737, 2126737, 2589585, 2126737, 2614161, 2646929, 2126737, 2126737, 2696081, 2757521, 2126737, 2126737, 2126737, 2126737, 2126737, 3138449, 2126810, 2126810, 2499546, 2126810, 2126810, 2126810, 2556890, 2565082, 2126810, 2126810, 2126737, 2933649, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3130257, 2126737, 2126737, 3154833, 3167121, 3175313, 2397146, 2401242, 2126810, 2126810, 2442202, 2126810, 2470874, 2126810, 2126810, 2126810, 2520026, 2126810, 2126810, 2126810, 2126810, 2589658, 2126810, 2126810, 2126810, 3011546, 2126810, 2126810, 2126737, 0, 0, 0, 0, 0, 0, 0, 2592768, 0, 0, 0, 0, 663, 0, 0, 666, 667, 0, 0, 0, 0, 0, 0, 0, 540, 571, 540, 571, 540, 540, 571, 540, 595, 2614234, 2647002, 2126810, 2126810, 2696154, 2757594, 2126810, 2126810, 2126810, 2126810, 2933722, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 3224538, 2126737, 2179072, 2417626, 2126810, 2126737, 2179072, 2179072, 2126737, 2126737, 2854912, 2969600, 2179072, 3006464, 2179072, 3018752, 2179072, 2179072, 2179072, 3149824, 2126737, 2429841, 2438033, 2126737, 2487185, 2126737, 2126737, 2945937, 2126737, 2126737, 2995089, 2126737, 3003281, 2126737, 2126737, 3023761, 2126737, 3068817, 3085201, 3097489, 2126737, 2126737, 2888593, 2126737, 2126737, 2925457, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 3036049, 2126737, 3019665, 2126737, 2126737, 2126737, 3150737, 2126810, 2429914, 2438106, 2126810, 2487258, 2126810, 2126810, 2126810, 2126810, 2126810, 2700250, 2126810, 2716634, 2126810, 2724826, 2126810, 2733018, 2773978, 2126810, 2126810, 2126810, 2126810, 3150810, 2126737, 2179072, 3051520, 2126737, 3052433, 2126810, 3052506, 0, 2490368, 2498560, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2126810, 2593754, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126810, 2126737, 2449408, 0, 2535424, 3031040, 0, 0, 0, 0, 0, 2439, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369, 0, 0, 370, 0, 0, 2126737, 2450321, 2126737, 2536337, 2126737, 2610065, 2126737, 2859921, 2126737, 2126737, 2126737, 3031953, 2126810, 2450394, 2126810, 2536410, 2126810, 2610138, 2126810, 2859994, 2126810, 2126810, 2126810, 3032026, 2126737, 2527232, 0, 0, 0, 0, 0, 2179072, 2126810, 2126810, 2126737, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2126737, 2126737, 2126737, 2126810, 2126810, 2126810, 2126810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237568, 0, 0, 0, 0, 2527232, 2179072, 2179072, 2179072, 2179072, 2179072, 2126737, 2528145, 2126737, 2126737, 2126737, 2126737, 2126737, 2126810, 2528218, 2126810, 2126810, 2946010, 2126810, 2126810, 2995162, 2126810, 3003354, 2126810, 2126810, 3023834, 2126810, 3068890, 3085274, 3097562, 2126810, 2126810, 2126810, 2606042, 2126810, 2630618, 2126810, 2126810, 2651098, 2126810, 2126810, 2126810, 2708442, 2126810, 2737114, 2126810, 2126810, 2126810, 2655194, 2679770, 2761690, 2765786, 2786266, 2855898, 2970586, 2126810, 3007450, 2126810, 3019738, 2126810, 2126810, 0, 2486272, 0, 0, 0, 0, 0, 2678784, 2854912, 3006464, 0, 3108864, 3198976, 0, 2405265, 2126737, 2126737, 2126737, 2126737, 3027857, 2405338, 2126810, 2126810, 2126810, 2126810, 3027930, 2539520, 0, 2949120, 0, 0, 0, 0, 695, 0, 0, 0, 0, 362, 362, 362, 0, 0, 704, 0, 0, 0, 0, 709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2049, 0, 0, 0, 0, 2179072, 2658304, 2973696, 2179072, 2126737, 2659217, 2974609, 2126737, 2126810, 2659290, 2974682, 2126810, 2711552, 0, 2560000, 2179072, 2179072, 3125248, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2560913, 2126737, 2560986, 2126810, 0, 2179072, 2126737, 2126810, 0, 2179072, 2126737, 2126810, 0, 2179072, 2126737, 2126810, 2126810, 3130330, 2126810, 2126810, 3154906, 3167194, 3175386, 2126737, 2506752, 2507738, 2507665, 2179072, 2179072, 2126737, 2126737, 2126737, 2642833, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2720657, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2126737, 2585489, 2126737, 2126737, 2126737, 2126737, 2126737, 2618257, 2126737, 2985984, 2985984, 2986897, 2986970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 221184, 0, 0, 221184, 221184, 221184, 0, 0, 0, 0, 0, 0, 221184, 0, 0, 0, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 221184, 1, 12290, 3, 0, 0, 0, 0, 0, 253952, 0, 0, 0, 253952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 687, 688, 0, 0, 0, 0, 0, 98304, 0, 0, 0, 53248, 0, 0, 0, 0, 0, 2662400, 0, 2813952, 297, 0, 300, 0, 0, 0, 300, 0, 301, 0, 0, 0, 301, 0, 0, 0, 301, 69632, 139679, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 3133440, 0, 98304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2179072, 300, 0, 301, 0, 0, 0, 2473984, 2478080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176128, 176128, 176128, 176128, 176128, 176128, 176128, 3121152, 2179072, 2179072, 3141632, 2179072, 2179072, 2179072, 3170304, 2179072, 2179072, 3190784, 3194880, 2179072, 914, 0, 0, 0, 0, 0, 2451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 301, 0, 0, 0, 0, 0, 914, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2453504, 2125824, 2473984, 2482176, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2531328, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2605056, 2125824, 3194880, 2125824, 987, 0, 0, 0, 987, 0, 2387968, 2125824, 2125824, 2420736, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2887680, 2125824, 2125824, 2924544, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3035136, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 225740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 348, 349, 350, 0, 0, 0, 0, 2125824, 237568, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, 358, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 249856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 296, 297, 0, 2134016, 300, 301, 0, 0, 217088, 2125824, 241664, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 131072, 131072, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 0, 0, 155648, 0, 0, 2183168, 0, 0, 270336, 0, 0, 296, 297, 0, 2134016, 300, 301, 200704, 0, 0, 0, 0, 0, 2462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1261, 0, 0, 0, 0, 0, 2125824, 0, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 180224, 0, 0, 0, 0, 0, 0, 0, 1726, 0, 0, 0, 0, 0, 0, 0, 0, 304, 304, 304, 0, 0, 0, 0, 0, 0, 2748416, 2879488, 0, 20480, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2179072, 2768896, 2777088, 2797568, 2822144, 2179072, 2179072, 2179072, 2883584, 2912256, 2179072, 2179072, 2179072, 2179072, 2179072, 2617344, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2662400, 2179072, 2179072, 2179072, 2179072, 2179072, 3010560, 2179072, 2179072, 2125824, 2125824, 2502656, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2584576, 2125824, 2125824, 2125824, 2125824, 2125824, 2617344, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142208, 0, 0, 0, 266240, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12290, 2113823, 0, 0, 0, 0, 0, 0, 293, 0, 0, 0, 293, 0, 0, 245760, 0, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3039232, 2125824, 3063808, 2125824, 2125824, 2125824, 2125824, 3100672, 2125824, 2125824, 3133440, 2125824, 245760, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 0, 122880, 122880, 0, 0, 274432, 274432, 274432, 274432, 0, 0, 0, 0, 0, 274432, 0, 274432, 1, 12290, 3, 0, 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192, 0, 1195, 0, 0, 78112, 290, 0, 0, 0, 0, 0, 296, 297, 0, 0, 300, 301, 0, 0, 0, 0, 0, 328, 329, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2200252, 2200252, 2200252, 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 0, 0, 2055, 0, 2056, 0, 0, 0, 0, 0, 0, 0, 2067, 0, 0, 0, 0, 0, 0, 0, 0, 1187, 0, 0, 0, 0, 0, 0, 1104, 2483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 690, 0, 0, 2993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 383, 335, 0, 0, 0, 0, 1679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 694, 0, 0, 0, 0, 0, 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, 78456, 290, 0, 0, 0, 0, 0, 296, 297, 0, 0, 300, 301, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1158, 0, 0, 0, 0, 0, 562, 562, 562, 562, 562, 562, 562, 586, 586, 586, 540, 586, 586, 586, 586, 586, 562, 562, 540, 562, 586, 562, 586, 1, 12290, 3, 78112, 0, 0, 2771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 514, 521, 521, 1, 12290, 3, 78113, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 301, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 1, 12290, 3, 0, 282624, 282624, 282624, 0, 0, 282624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3178496, 2670592, 0, 2744320, 0, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 0, 282624, 282624, 282624, 282624, 282624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 3176, 0, 0, 2740224, 0, 0, 0, 0, 0, 2793472, 0, 0, 0, 0, 0, 0, 0, 2094, 0, 0, 0, 0, 0, 0, 0, 0, 683, 684, 685, 0, 0, 0, 689, 0, 0, 0, 0, 286720, 286720, 0, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 286720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 302, 0, 0, 0, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 3301, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 2875392, 0, 0, 0, 3381, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2748416, 2879488, 0, 3381, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 2531328, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2179072, 2605056, 2179072, 2629632, 2179072, 2179072, 0, 0, 0, 306, 0, 0, 0, 0, 0, 305, 0, 305, 306, 0, 305, 305, 0, 0, 0, 305, 305, 306, 306, 0, 0, 0, 0, 0, 0, 305, 405, 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 750, 0, 0, 0, 306, 410, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 742, 0, 0, 0, 0, 742, 0, 748, 0, 0, 0, 0, 0, 0, 1192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 462, 462, 462, 488, 488, 462, 488, 488, 488, 488, 488, 488, 488, 513, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 533, 488, 488, 488, 488, 488, 541, 563, 541, 563, 541, 541, 563, 541, 587, 563, 563, 563, 563, 563, 563, 563, 587, 587, 587, 541, 613, 613, 613, 613, 613, 587, 563, 563, 541, 563, 587, 563, 587, 1, 12290, 3, 78112, 0, 0, 645, 0, 0, 648, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 253952, 0, 0, 0, 0, 0, 645, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 762, 0, 0, 0, 0, 0, 353, 0, 351, 0, 472, 472, 472, 472, 472, 472, 472, 477, 472, 472, 472, 472, 472, 472, 472, 472, 472, 477, 472, 0, 768, 0, 0, 772, 0, 0, 0, 0, 0, 0, 781, 0, 0, 0, 0, 0, 0, 727, 0, 0, 0, 731, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 343, 342, 65536, 341, 0, 788, 0, 0, 0, 0, 792, 0, 0, 0, 0, 0, 0, 0, 796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 782, 0, 0, 0, 0, 736, 0, 796, 0, 0, 0, 0, 648, 0, 0, 0, 0, 0, 0, 820, 0, 0, 648, 0, 0, 0, 0, 0, 837, 792, 0, 0, 0, 0, 0, 841, 842, 792, 792, 0, 0, 0, 0, 792, 736, 792, 0, 540, 540, 851, 855, 540, 540, 540, 540, 1345, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2181, 540, 540, 540, 540, 561, 561, 561, 921, 925, 561, 561, 561, 561, 561, 561, 951, 561, 956, 561, 963, 561, 966, 561, 561, 980, 561, 561, 0, 585, 585, 585, 994, 998, 585, 585, 585, 585, 585, 585, 1963, 1964, 1966, 585, 585, 585, 585, 585, 585, 585, 561, 2713, 585, 2715, 2716, 540, 540, 540, 540, 585, 585, 585, 1024, 585, 1029, 585, 1036, 585, 1039, 585, 585, 1053, 585, 585, 966, 0, 0, 0, 855, 585, 998, 925, 851, 1065, 894, 540, 540, 921, 1070, 966, 561, 0, 585, 585, 585, 585, 585, 78112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114688, 0, 241664, 258048, 0, 0, 0, 1093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 766, 0, 0, 1214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 673, 0, 540, 540, 1342, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 585, 585, 585, 1524, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1517, 585, 585, 585, 1433, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 3070, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 0, 0, 3662, 0, 0, 0, 1641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1103, 1104, 1105, 1106, 1654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, 0, 1693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 305, 306, 0, 1732, 0, 0, 1733, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3030, 540, 540, 540, 540, 540, 540, 540, 1745, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1758, 540, 540, 540, 540, 540, 540, 2540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1329, 540, 540, 540, 540, 540, 540, 540, 540, 1795, 540, 540, 1798, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 900, 540, 540, 540, 540, 540, 540, 1810, 540, 540, 540, 540, 540, 1815, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1416, 561, 1825, 561, 561, 561, 561, 1831, 561, 561, 561, 561, 561, 1837, 561, 561, 561, 561, 561, 983, 561, 0, 585, 585, 585, 585, 585, 1002, 585, 1010, 561, 1892, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1904, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 2726, 0, 0, 2729, 2730, 561, 561, 1909, 561, 561, 561, 561, 561, 561, 561, 26027, 1919, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 3649, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 3231, 3232, 561, 1925, 585, 585, 585, 585, 585, 1931, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3596, 1944, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1540, 561, 561, 2025, 585, 585, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1132, 0, 0, 0, 2075, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1135, 0, 2145, 0, 0, 0, 2143, 0, 0, 2150, 0, 0, 0, 0, 0, 0, 0, 0, 159744, 0, 0, 0, 0, 0, 0, 0, 0, 1234, 0, 0, 0, 0, 0, 0, 0, 0, 1584, 0, 0, 0, 0, 0, 0, 0, 0, 1700, 0, 0, 0, 0, 1705, 0, 0, 540, 540, 2171, 540, 540, 2174, 540, 540, 540, 540, 540, 540, 2182, 540, 540, 540, 540, 540, 540, 2568, 540, 540, 540, 540, 2572, 540, 540, 540, 540, 540, 540, 1347, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2556, 540, 540, 540, 540, 540, 540, 540, 2201, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 2242, 540, 540, 540, 2214, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1805, 540, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2254, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2123, 0, 2125, 2126, 0, 0, 0, 0, 561, 2257, 561, 561, 561, 561, 561, 561, 2265, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 2952, 561, 2954, 561, 2299, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1438, 561, 2033, 0, 2035, 0, 0, 2426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2434, 0, 0, 0, 2475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1193, 0, 0, 0, 0, 2484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2493, 0, 0, 0, 0, 0, 0, 756, 0, 0, 0, 0, 0, 0, 763, 0, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 2592, 561, 561, 561, 561, 561, 1408, 561, 561, 1412, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1008, 585, 2656, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2664, 585, 585, 585, 585, 585, 585, 2350, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2379, 585, 585, 585, 585, 585, 585, 585, 585, 2699, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1940, 585, 585, 2708, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 561, 561, 561, 3229, 561, 561, 561, 561, 561, 561, 585, 585, 585, 3352, 585, 585, 585, 3355, 585, 585, 2731, 0, 0, 0, 0, 0, 0, 2736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 192971, 0, 0, 0, 2759, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1234, 540, 540, 540, 0, 0, 0, 2788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1238, 0, 0, 0, 540, 540, 540, 2826, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2833, 540, 540, 540, 540, 1748, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1760, 540, 540, 540, 540, 1765, 540, 540, 540, 540, 540, 540, 540, 540, 1772, 540, 540, 540, 540, 561, 3406, 561, 561, 3408, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1009, 585, 561, 561, 561, 2860, 561, 561, 2864, 561, 561, 561, 561, 561, 561, 561, 561, 561, 944, 561, 561, 561, 561, 561, 561, 561, 2873, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2881, 561, 561, 0, 0, 0, 2649, 0, 1920, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2703, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2908, 585, 585, 2912, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2393, 2394, 585, 585, 585, 585, 585, 2921, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2929, 585, 585, 0, 0, 0, 3292, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3297, 2955, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 306, 305, 0, 0, 0, 2970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1588, 1589, 0, 0, 540, 540, 540, 540, 3036, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2546, 540, 540, 540, 561, 561, 561, 3076, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1436, 561, 561, 561, 585, 585, 585, 3117, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2356, 585, 2358, 0, 0, 0, 0, 3176, 3442, 0, 3444, 0, 0, 0, 0, 0, 540, 3451, 540, 540, 540, 540, 1796, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 905, 540, 540, 540, 540, 3453, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 3466, 561, 3468, 0, 0, 3501, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 3510, 540, 540, 540, 540, 540, 3204, 3205, 540, 540, 540, 540, 3209, 3210, 540, 540, 540, 540, 540, 1749, 1750, 540, 540, 540, 540, 1757, 540, 540, 540, 540, 540, 540, 1346, 540, 540, 540, 540, 540, 540, 1356, 540, 540, 307, 308, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 0, 0, 0, 0, 0, 0, 0, 0, 2490, 0, 0, 0, 0, 0, 0, 0, 0, 2504, 0, 0, 0, 0, 0, 0, 0, 0, 2517, 0, 0, 0, 0, 0, 0, 0, 0, 2975, 0, 0, 0, 0, 0, 0, 0, 0, 2999, 0, 0, 0, 0, 0, 0, 0, 0, 3164, 0, 0, 0, 0, 0, 0, 0, 0, 3173, 0, 0, 0, 0, 0, 0, 0, 0, 3183, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, 449, 418, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 532, 449, 532, 532, 532, 449, 532, 532, 532, 532, 449, 542, 564, 542, 564, 542, 542, 564, 542, 588, 564, 564, 564, 564, 564, 564, 564, 588, 588, 588, 542, 588, 588, 588, 588, 588, 564, 564, 616, 621, 588, 621, 627, 1, 12290, 3, 78112, 0, 1677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1163, 540, 540, 540, 1811, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1377, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 1082, 1086, 0, 0, 1090, 585, 585, 585, 1993, 585, 585, 585, 585, 585, 1999, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 3551, 0, 3553, 0, 0, 0, 0, 0, 561, 561, 561, 561, 561, 2589, 561, 561, 561, 561, 2593, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2338, 585, 585, 585, 585, 585, 585, 585, 2657, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1971, 585, 585, 585, 2709, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 561, 561, 3228, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 2900, 585, 585, 585, 585, 585, 540, 3514, 540, 3516, 540, 540, 3518, 540, 561, 561, 561, 561, 561, 561, 561, 561, 1396, 1398, 561, 561, 561, 561, 561, 561, 3527, 561, 3529, 561, 561, 3531, 561, 585, 585, 585, 585, 585, 585, 585, 585, 3540, 585, 3542, 585, 585, 3544, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 147456, 0, 0, 0, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 365, 0, 382, 0, 348, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 764, 0, 0, 420, 428, 419, 428, 0, 310, 428, 441, 450, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 484, 489, 489, 500, 489, 489, 489, 489, 489, 489, 489, 489, 515, 515, 528, 528, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 515, 529, 529, 529, 529, 529, 543, 565, 543, 565, 543, 543, 565, 543, 589, 565, 565, 565, 565, 565, 565, 565, 589, 589, 589, 612, 589, 589, 589, 589, 589, 614, 615, 615, 612, 615, 614, 615, 614, 1, 12290, 3, 78112, 0, 702, 0, 0, 0, 0, 0, 702, 0, 0, 0, 540, 540, 540, 540, 540, 3028, 540, 540, 540, 540, 540, 540, 540, 561, 967, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 2337, 585, 585, 585, 585, 2341, 585, 0, 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3200, 0, 1150, 1108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 1228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1240, 0, 0, 540, 540, 1276, 1278, 540, 540, 540, 540, 540, 540, 540, 540, 1292, 540, 1297, 540, 540, 1301, 540, 540, 540, 540, 1812, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1823, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1378, 561, 0, 585, 585, 585, 585, 585, 78112, 1079, 0, 0, 1083, 1087, 0, 0, 1091, 540, 1304, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1302, 540, 1360, 914, 561, 561, 1364, 561, 1367, 561, 561, 561, 561, 561, 561, 561, 561, 1381, 561, 1386, 561, 561, 1390, 561, 561, 1393, 561, 561, 561, 561, 561, 561, 561, 561, 1431, 561, 561, 1435, 561, 561, 561, 561, 1484, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1942, 540, 1793, 1794, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 585, 585, 1946, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2005, 585, 585, 585, 1959, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2357, 585, 2102, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 328, 379, 381, 0, 0, 0, 0, 0, 2133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1119, 0, 0, 2033, 0, 2035, 0, 0, 0, 0, 0, 0, 2428, 0, 0, 0, 0, 0, 0, 0, 2122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122880, 0, 122880, 122880, 122880, 122880, 122880, 0, 0, 2474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1133, 0, 0, 0, 0, 0, 0, 2760, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 380, 0, 0, 0, 384, 0, 0, 2799, 0, 0, 0, 0, 0, 0, 0, 2803, 540, 540, 540, 540, 540, 540, 540, 1326, 540, 540, 540, 540, 540, 540, 540, 1339, 585, 2956, 0, 0, 0, 0, 0, 2962, 0, 0, 0, 0, 0, 0, 0, 2966, 0, 0, 0, 3008, 0, 0, 0, 0, 0, 0, 0, 0, 3017, 0, 0, 0, 0, 0, 383, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 3048, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1320, 3089, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1858, 3130, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1957, 540, 3225, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3414, 585, 585, 585, 3281, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 3157, 3513, 540, 540, 540, 540, 540, 540, 540, 561, 3521, 561, 3522, 561, 561, 561, 3526, 540, 540, 540, 3664, 561, 561, 561, 3666, 585, 585, 585, 3668, 0, 0, 540, 540, 540, 3560, 540, 540, 540, 540, 540, 540, 540, 540, 3568, 561, 321, 321, 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1161, 0, 0, 0, 0, 371, 0, 430, 436, 0, 442, 451, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 490, 490, 501, 490, 490, 490, 490, 490, 490, 490, 490, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 516, 544, 566, 544, 566, 544, 544, 566, 544, 590, 566, 566, 566, 566, 566, 566, 566, 590, 590, 590, 544, 590, 590, 590, 590, 590, 566, 566, 544, 566, 590, 566, 590, 1, 12290, 3, 78112, 540, 540, 540, 874, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1822, 540, 1360, 585, 1017, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 1122, 0, 1124, 1125, 0, 0, 0, 1127, 1128, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 0, 1159168, 0, 0, 0, 0, 1159168, 0, 0, 1166, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1634, 0, 0, 0, 1113, 0, 1253, 0, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 0, 1236, 0, 0, 0, 0, 773, 774, 0, 0, 778, 779, 0, 675, 0, 0, 0, 0, 0, 0, 1598, 0, 0, 0, 0, 0, 0, 0, 0, 1605, 0, 0, 1268, 1127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 1277, 540, 540, 540, 1323, 540, 540, 1325, 540, 540, 1328, 540, 540, 540, 540, 540, 540, 540, 540, 2554, 540, 540, 540, 540, 540, 540, 2560, 1360, 914, 561, 561, 1365, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1400, 561, 561, 561, 561, 561, 561, 1404, 561, 561, 561, 561, 561, 561, 561, 1413, 561, 561, 1415, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 2655, 561, 1419, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1874, 561, 561, 561, 1443, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 1456, 585, 585, 0, 0, 3291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1262, 0, 0, 0, 1266, 585, 585, 585, 1504, 585, 585, 1506, 585, 585, 585, 1510, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 2020, 561, 561, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1675, 0, 0, 0, 585, 1991, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2695, 561, 2024, 585, 585, 585, 2028, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1586, 1587, 0, 0, 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 2035, 0, 0, 0, 0, 0, 2038, 0, 0, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1177, 0, 0, 0, 0, 0, 0, 2091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2807, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 2252, 561, 561, 561, 561, 561, 1447, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2017, 540, 540, 540, 2021, 561, 2256, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1875, 2272, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1890, 561, 561, 561, 2314, 561, 2316, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2340, 585, 585, 585, 2399, 585, 2401, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 540, 540, 2564, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3212, 540, 0, 0, 0, 561, 561, 561, 561, 2588, 561, 561, 561, 561, 561, 561, 561, 561, 1916, 561, 26027, 0, 585, 585, 585, 585, 0, 2757, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 2834, 540, 540, 540, 540, 540, 540, 540, 2840, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2571, 540, 540, 540, 540, 540, 540, 2882, 561, 561, 561, 561, 561, 561, 561, 2888, 561, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 2902, 585, 585, 585, 2930, 585, 585, 585, 585, 585, 585, 585, 2936, 585, 585, 585, 585, 585, 585, 585, 561, 540, 2714, 585, 561, 540, 540, 540, 540, 540, 540, 3226, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3074, 585, 585, 585, 585, 3282, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 3156, 0, 585, 585, 3369, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 2617344, 0, 0, 0, 0, 0, 2789376, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 3445, 0, 0, 0, 0, 540, 540, 540, 540, 3027, 540, 540, 540, 540, 3031, 540, 540, 540, 540, 540, 540, 3456, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3524, 561, 561, 561, 561, 3471, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3486, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3626, 540, 540, 540, 3515, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3413, 561, 561, 3528, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3113, 585, 585, 585, 3541, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 208896, 0, 0, 0, 0, 323, 324, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1194, 1196, 0, 0, 0, 0, 322, 370, 325, 369, 0, 0, 0, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, 0, 0, 322, 0, 0, 369, 369, 399, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, 0, 0, 0, 322, 452, 465, 465, 465, 465, 465, 465, 465, 478, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 465, 491, 491, 465, 491, 491, 506, 508, 491, 491, 506, 491, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 534, 517, 517, 517, 517, 517, 545, 567, 545, 567, 545, 545, 567, 545, 591, 567, 567, 567, 567, 567, 567, 567, 591, 591, 591, 545, 591, 591, 591, 591, 591, 567, 567, 545, 567, 591, 567, 591, 1, 12290, 3, 78112, 659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 670, 671, 0, 0, 0, 0, 0, 439, 0, 0, 0, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 557, 580, 557, 580, 557, 557, 580, 557, 604, 0, 0, 707, 708, 0, 0, 0, 0, 0, 714, 0, 0, 0, 718, 0, 720, 0, 769, 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1209, 0, 0, 787, 0, 789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1224, 0, 0, 0, 801, 0, 806, 0, 809, 0, 0, 0, 0, 806, 809, 0, 0, 0, 809, 0, 707, 0, 0, 826, 0, 0, 0, 0, 0, 826, 826, 829, 809, 806, 0, 0, 0, 0, 0, 0, 0, 789, 0, 801, 0, 818, 0, 0, 0, 0, 0, 2745, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 811, 540, 540, 854, 540, 540, 0, 0, 0, 789, 0, 0, 0, 0, 0, 838, 0, 0, 0, 0, 0, 0, 0, 2142, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2819, 540, 540, 540, 540, 540, 0, 0, 0, 787, 0, 0, 0, 838, 818, 838, 0, 540, 540, 852, 540, 858, 540, 540, 871, 540, 881, 540, 886, 540, 540, 893, 896, 901, 540, 909, 540, 540, 540, 540, 540, 3215, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 895, 540, 540, 540, 540, 540, 561, 561, 561, 922, 561, 928, 561, 561, 941, 561, 561, 952, 561, 957, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 585, 2653, 585, 585, 0, 0, 2959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2965, 0, 965, 968, 973, 561, 981, 561, 561, 0, 585, 585, 585, 995, 585, 1001, 585, 585, 0, 2958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 131072, 131072, 0, 0, 1014, 585, 585, 1025, 585, 1030, 585, 585, 1038, 1041, 1046, 585, 1054, 585, 585, 968, 0, 0, 0, 540, 585, 585, 561, 852, 540, 1066, 901, 540, 922, 561, 1071, 973, 0, 0, 0, 1110, 0, 0, 0, 0, 0, 0, 0, 1117, 0, 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1205, 0, 0, 0, 0, 0, 0, 0, 1137, 1138, 0, 0, 0, 0, 1142, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1206, 0, 0, 0, 0, 0, 0, 1165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 1182, 741, 0, 0, 0, 1134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245760, 0, 0, 0, 0, 0, 0, 1303, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1318, 540, 540, 540, 540, 2173, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2558, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1372, 561, 561, 561, 561, 561, 1850, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1902, 1903, 561, 561, 561, 561, 561, 561, 1387, 561, 561, 561, 1392, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1432, 561, 561, 561, 561, 561, 1439, 561, 561, 561, 1421, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1437, 561, 0, 585, 585, 585, 1049, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 836, 0, 0, 0, 0, 0, 0, 811, 0, 585, 585, 585, 585, 1463, 585, 585, 585, 585, 585, 585, 1478, 585, 585, 585, 1483, 0, 0, 1608, 1609, 1610, 0, 1612, 1613, 0, 0, 0, 0, 1618, 0, 0, 0, 0, 0, 679, 751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2144, 0, 0, 1640, 0, 0, 1643, 0, 1645, 0, 0, 0, 0, 0, 1651, 1652, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 540, 846, 540, 540, 540, 540, 540, 540, 3216, 540, 540, 540, 540, 540, 3221, 540, 3223, 540, 0, 1668, 0, 0, 1670, 0, 0, 0, 0, 1672, 1673, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 347, 345, 65536, 0, 1692, 0, 0, 0, 0, 0, 1698, 1699, 0, 1701, 1702, 1703, 0, 0, 0, 0, 0, 0, 810, 811, 0, 0, 0, 0, 811, 0, 0, 0, 1719, 0, 0, 0, 1723, 1724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 0, 0, 1715, 0, 0, 0, 1735, 1585, 1585, 1737, 540, 1739, 540, 1740, 540, 1742, 540, 540, 540, 1746, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1759, 540, 540, 540, 540, 540, 3318, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2557, 540, 540, 540, 540, 540, 540, 1763, 540, 540, 540, 540, 1767, 540, 1769, 540, 540, 540, 540, 540, 540, 540, 540, 2570, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3041, 540, 540, 540, 540, 540, 540, 540, 540, 1777, 1778, 1780, 540, 540, 540, 540, 540, 540, 1787, 1788, 540, 540, 1791, 1792, 540, 540, 540, 540, 540, 540, 540, 1800, 540, 540, 540, 1804, 540, 540, 540, 540, 540, 540, 2829, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1770, 540, 540, 540, 540, 540, 0, 1828, 561, 1830, 561, 561, 1832, 561, 1834, 561, 561, 561, 1838, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 2725, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 135168, 135168, 0, 0, 65536, 135168, 1859, 561, 1861, 561, 561, 561, 561, 561, 561, 561, 561, 1869, 1870, 1872, 561, 561, 0, 2648, 0, 0, 0, 0, 585, 585, 585, 585, 2652, 585, 585, 585, 585, 585, 585, 2390, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3124, 585, 585, 585, 585, 585, 561, 561, 561, 1894, 561, 561, 561, 1898, 561, 561, 561, 561, 561, 561, 561, 1906, 585, 1926, 585, 1928, 585, 585, 585, 1932, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 585, 1945, 585, 585, 585, 585, 1949, 585, 585, 585, 585, 1953, 585, 1955, 585, 585, 561, 3146, 3147, 3148, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 2488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2096, 0, 0, 0, 0, 0, 0, 1974, 1975, 1976, 585, 585, 1979, 1980, 585, 585, 585, 585, 585, 585, 585, 1988, 585, 561, 0, 1288, 585, 1468, 1377, 540, 540, 540, 1549, 540, 561, 561, 561, 1553, 585, 585, 1992, 585, 585, 585, 585, 585, 585, 585, 2000, 585, 585, 585, 585, 585, 561, 561, 540, 561, 585, 561, 585, 1, 12290, 3, 78112, 585, 585, 585, 585, 2011, 561, 540, 2014, 585, 561, 1792, 540, 2019, 540, 1886, 561, 0, 585, 585, 1040, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 0, 1134592, 0, 0, 0, 0, 2023, 561, 1980, 585, 2027, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 0, 0, 0, 2761, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 2089, 0, 0, 0, 0, 2093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2119, 0, 2121, 0, 0, 0, 0, 0, 0, 0, 2129, 0, 0, 0, 0, 786, 0, 805, 0, 0, 0, 0, 540, 849, 540, 540, 540, 540, 540, 2216, 540, 540, 540, 540, 540, 540, 2221, 540, 540, 540, 540, 540, 540, 3633, 561, 561, 561, 561, 561, 561, 3639, 585, 585, 0, 0, 0, 2134, 0, 0, 0, 0, 2139, 0, 0, 0, 0, 0, 0, 0, 0, 2990080, 2179072, 2179072, 2502656, 2179072, 2179072, 2179072, 2179072, 540, 2187, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1337, 540, 2211, 2212, 540, 540, 540, 540, 540, 540, 2219, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2582, 540, 540, 540, 0, 0, 0, 561, 561, 2258, 561, 2260, 561, 561, 561, 561, 561, 561, 2268, 561, 2270, 561, 561, 561, 561, 1426, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3343, 561, 561, 561, 561, 3344, 3345, 561, 561, 2343, 585, 2345, 585, 585, 585, 585, 585, 585, 2353, 585, 2355, 585, 585, 585, 585, 561, 0, 0, 0, 3648, 0, 540, 540, 540, 540, 3652, 540, 585, 585, 585, 585, 2389, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2705, 585, 585, 585, 585, 585, 585, 585, 2402, 585, 585, 2405, 2406, 585, 585, 561, 2177, 585, 2345, 2260, 540, 2414, 540, 540, 561, 2418, 561, 561, 585, 2422, 585, 585, 2029, 0, 2031, 0, 0, 0, 0, 795, 663, 844, 0, 0, 0, 0, 540, 848, 540, 540, 540, 540, 540, 1283, 540, 540, 540, 540, 540, 540, 1298, 540, 540, 540, 540, 540, 540, 2580, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 0, 0, 2450, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1239, 0, 0, 0, 2459, 0, 0, 0, 0, 0, 2464, 0, 2466, 2467, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 371, 0, 65536, 0, 0, 2498, 0, 0, 0, 0, 0, 0, 0, 2505, 0, 0, 0, 0, 0, 0, 0, 2479, 0, 0, 0, 2481, 0, 0, 0, 0, 2561, 540, 540, 540, 2566, 540, 540, 540, 540, 540, 540, 540, 2573, 540, 540, 540, 540, 540, 540, 2838, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1296, 540, 540, 540, 540, 540, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 2591, 561, 561, 561, 561, 561, 561, 2640, 561, 561, 561, 2643, 561, 561, 561, 561, 561, 561, 2886, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1867, 561, 561, 561, 561, 561, 561, 2621, 561, 561, 561, 561, 2625, 561, 561, 561, 2630, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 0, 3661, 0, 0, 561, 2637, 561, 561, 561, 561, 561, 561, 561, 2642, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3427, 585, 2669, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3267, 2797, 2798, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1741, 540, 0, 0, 2982, 2983, 0, 2984, 0, 2986, 0, 0, 0, 0, 2988, 0, 0, 0, 0, 0, 680, 681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2047, 0, 0, 0, 0, 0, 0, 0, 0, 3007, 0, 0, 2988, 0, 0, 3013, 3014, 0, 3016, 0, 0, 3019, 0, 0, 0, 0, 800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 800, 0, 0, 0, 0, 3022, 540, 540, 540, 540, 540, 540, 3029, 540, 540, 540, 540, 540, 3033, 3062, 540, 561, 561, 561, 561, 561, 561, 3069, 561, 561, 561, 561, 561, 3073, 561, 0, 585, 585, 1042, 585, 585, 288, 1079, 0, 0, 1082, 1086, 0, 0, 1090, 3103, 561, 585, 585, 585, 585, 585, 585, 3110, 585, 585, 585, 585, 585, 3114, 585, 561, 0, 1543, 585, 1545, 1546, 540, 540, 1548, 540, 540, 561, 561, 1552, 561, 0, 585, 585, 1044, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 794, 0, 0, 0, 0, 0, 0, 0, 798, 3144, 585, 561, 540, 585, 561, 540, 3150, 561, 3152, 585, 3154, 0, 0, 0, 0, 0, 0, 825, 0, 819, 0, 664, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 221184, 0, 0, 0, 0, 65536, 0, 0, 0, 3160, 0, 0, 3163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 2806, 540, 540, 540, 3202, 540, 540, 540, 540, 540, 540, 540, 3207, 540, 540, 540, 540, 540, 540, 540, 540, 3040, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3322, 540, 540, 540, 540, 540, 540, 561, 3234, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1889, 561, 3245, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 3257, 585, 585, 585, 585, 585, 585, 585, 3262, 585, 585, 585, 585, 585, 561, 2013, 585, 2015, 2016, 540, 2018, 540, 540, 561, 2022, 561, 561, 561, 3349, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2667, 0, 3378, 3379, 0, 3176, 0, 3383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 0, 0, 0, 384, 0, 0, 0, 3441, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 2167, 540, 540, 0, 0, 0, 0, 3503, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3512, 0, 0, 3557, 3558, 3559, 540, 540, 540, 3562, 540, 3564, 540, 540, 540, 540, 3569, 3570, 3571, 561, 561, 561, 3574, 561, 3576, 561, 561, 561, 561, 3581, 3582, 3583, 585, 561, 1203, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 585, 585, 3586, 585, 3588, 585, 585, 585, 585, 3593, 0, 0, 0, 0, 0, 0, 0, 2747, 2748, 2749, 0, 0, 0, 0, 0, 0, 0, 2763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 254413, 1, 12290, 0, 0, 540, 3628, 540, 540, 540, 3632, 561, 561, 3634, 561, 561, 561, 3638, 585, 585, 3640, 585, 585, 585, 3644, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3563, 540, 3565, 540, 540, 540, 561, 0, 0, 0, 326, 327, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, 0, 366, 0, 0, 0, 374, 376, 0, 0, 0, 0, 0, 0, 0, 344, 0, 402, 0, 0, 0, 0, 0, 402, 0, 0, 409, 0, 0, 0, 409, 69632, 73728, 0, 366, 366, 0, 421, 65536, 366, 0, 0, 366, 421, 498, 502, 498, 498, 507, 498, 498, 498, 507, 498, 421, 421, 327, 421, 0, 0, 421, 0, 421, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 421, 546, 568, 546, 568, 546, 546, 568, 546, 592, 568, 568, 568, 568, 568, 568, 568, 592, 592, 592, 546, 592, 592, 592, 592, 592, 568, 568, 546, 568, 592, 568, 592, 1, 12290, 3, 78112, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1248, 0, 0, 540, 540, 540, 875, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2183, 540, 540, 561, 561, 915, 561, 561, 561, 561, 561, 561, 945, 561, 561, 561, 561, 561, 561, 585, 3421, 585, 585, 3423, 585, 585, 585, 585, 585, 585, 1018, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 0, 0, 0, 540, 988, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3068, 561, 561, 561, 561, 561, 561, 561, 561, 932, 561, 561, 946, 561, 561, 561, 561, 561, 561, 934, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3240, 561, 561, 561, 561, 561, 561, 0, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 0, 0, 0, 1229, 0, 1109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 686, 0, 0, 0, 0, 540, 540, 540, 1281, 540, 540, 540, 540, 540, 1293, 540, 540, 540, 540, 540, 540, 540, 540, 3054, 3056, 540, 540, 540, 3059, 540, 3061, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 1370, 561, 561, 561, 561, 561, 1382, 585, 585, 1461, 585, 585, 585, 585, 585, 1473, 585, 585, 585, 585, 585, 585, 585, 585, 2914, 585, 585, 585, 585, 585, 585, 585, 585, 3122, 585, 585, 585, 585, 585, 585, 585, 585, 3136, 3138, 585, 585, 585, 3141, 585, 3143, 0, 1720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1134, 0, 1990, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1972, 585, 585, 585, 2373, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2370, 585, 585, 585, 585, 2698, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2383, 585, 0, 0, 0, 3161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1688, 0, 0, 0, 561, 561, 3235, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 2325, 0, 3663, 540, 540, 540, 3665, 561, 561, 561, 3667, 585, 585, 585, 0, 0, 540, 540, 540, 2526, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3058, 540, 540, 540, 422, 422, 0, 422, 431, 0, 422, 0, 422, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 492, 492, 466, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 492, 547, 569, 547, 569, 547, 547, 569, 547, 593, 569, 569, 569, 569, 569, 569, 569, 593, 593, 593, 547, 593, 593, 593, 593, 593, 569, 569, 547, 569, 593, 569, 593, 1, 12290, 3, 78112, 0, 0, 0, 0, 2159, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3032, 540, 540, 540, 540, 540, 2202, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2208, 540, 540, 2413, 540, 540, 540, 2417, 561, 561, 561, 2421, 585, 585, 585, 0, 0, 0, 0, 3293, 0, 0, 0, 0, 0, 3296, 0, 0, 0, 2458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1250, 2967, 0, 0, 0, 2971, 0, 0, 0, 0, 0, 2977, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 418, 0, 65536, 0, 0, 2992, 0, 0, 2995, 0, 0, 0, 0, 0, 3000, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 367, 367, 0, 0, 65536, 367, 0, 0, 0, 3023, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2222, 540, 540, 540, 540, 3049, 540, 540, 540, 540, 540, 540, 540, 540, 3057, 540, 540, 3060, 540, 540, 540, 540, 2189, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2583, 0, 0, 0, 540, 540, 3063, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 2326, 0, 561, 561, 3090, 561, 561, 561, 561, 561, 561, 561, 561, 3098, 561, 561, 3101, 561, 0, 585, 585, 1045, 585, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 1102, 1101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 1275, 540, 561, 561, 3104, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2666, 585, 585, 585, 3131, 585, 585, 585, 585, 585, 585, 585, 585, 3139, 585, 585, 3142, 585, 585, 585, 585, 585, 1930, 585, 585, 585, 585, 585, 585, 585, 585, 1941, 585, 585, 585, 585, 585, 1948, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3263, 585, 585, 585, 585, 0, 0, 0, 0, 3179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 0, 0, 0, 0, 0, 0, 3192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 2808, 3201, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1359, 540, 3213, 540, 540, 540, 540, 540, 540, 540, 3218, 540, 3220, 540, 540, 540, 540, 540, 540, 561, 3227, 561, 561, 561, 3230, 561, 561, 561, 561, 561, 982, 561, 0, 585, 585, 585, 585, 999, 585, 585, 585, 561, 561, 3246, 561, 3248, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 3537, 585, 585, 585, 585, 3256, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3278, 585, 585, 3268, 585, 585, 585, 585, 585, 585, 585, 585, 3274, 585, 3276, 585, 585, 561, 3370, 540, 3371, 561, 3372, 585, 0, 0, 0, 0, 0, 0, 0, 785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179, 540, 540, 3328, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3233, 561, 561, 561, 561, 3340, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3346, 561, 0, 994, 1075, 1039, 585, 585, 78112, 1079, 0, 0, 1081, 1085, 0, 0, 1089, 3358, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3364, 585, 585, 585, 585, 585, 585, 585, 1981, 1982, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2951, 540, 2953, 561, 561, 561, 3654, 3655, 561, 561, 585, 585, 3658, 3659, 585, 585, 0, 0, 0, 0, 0, 0, 1126, 0, 0, 0, 1130, 1131, 0, 0, 0, 0, 0, 0, 1141, 0, 1143, 0, 0, 362, 362, 0, 0, 0, 691, 0, 0, 0, 0, 696, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1154, 0, 0, 0, 0, 0, 1160, 0, 1162, 0, 758, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 758, 758, 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 856, 585, 999, 926, 540, 540, 540, 540, 910, 561, 561, 561, 561, 561, 1880, 1881, 1882, 561, 561, 1885, 1886, 561, 561, 561, 561, 561, 1896, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2603, 561, 2605, 561, 561, 561, 982, 0, 585, 585, 585, 585, 1055, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 375, 0, 378, 0, 0, 0, 378, 0, 0, 0, 0, 1709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1619, 0, 0, 585, 585, 585, 2010, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 3066, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2600, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 987, 585, 585, 585, 585, 585, 0, 2039, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1178, 0, 540, 540, 540, 2172, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2238, 2584, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2255, 0, 0, 0, 0, 2461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 747, 0, 0, 0, 0, 3288, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1184, 1184, 561, 561, 561, 561, 3350, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2939, 585, 585, 585, 585, 3368, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 394, 0, 0, 467, 467, 485, 493, 493, 485, 493, 493, 493, 493, 493, 493, 493, 493, 518, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 535, 526, 526, 526, 526, 526, 548, 570, 548, 570, 548, 548, 570, 548, 594, 570, 570, 570, 570, 570, 570, 570, 594, 594, 594, 548, 594, 594, 594, 594, 594, 570, 570, 548, 570, 594, 570, 594, 1, 12290, 3, 78112, 767, 0, 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1704, 0, 0, 0, 821, 0, 0, 0, 798, 0, 0, 821, 0, 0, 0, 0, 0, 821, 821, 0, 0, 0, 0, 805, 0, 0, 786, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 798, 0, 0, 0, 0, 0, 0, 839, 794, 0, 0, 839, 0, 0, 0, 0, 808, 0, 0, 692, 0, 0, 672, 0, 692, 0, 813, 675, 676, 0, 0, 0, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 340, 0, 0, 0, 0, 0, 0, 0, 540, 867, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 911, 540, 540, 540, 540, 2215, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1756, 540, 540, 540, 540, 983, 0, 585, 585, 585, 1077, 1056, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 412, 412, 0, 0, 0, 0, 0, 412, 0, 1180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1621, 0, 0, 1241, 0, 0, 0, 0, 0, 0, 0, 0, 1246, 0, 0, 0, 0, 0, 0, 1170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 816, 0, 0, 0, 0, 0, 0, 540, 1305, 540, 540, 540, 540, 540, 540, 540, 1313, 540, 540, 540, 540, 540, 540, 540, 540, 3332, 540, 561, 561, 561, 561, 561, 561, 935, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3094, 561, 3096, 561, 561, 561, 561, 561, 561, 1340, 540, 540, 1344, 540, 540, 540, 540, 540, 1350, 540, 540, 540, 1357, 540, 540, 540, 540, 540, 3458, 540, 3460, 3461, 540, 3463, 540, 561, 561, 561, 561, 561, 2262, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1399, 561, 561, 561, 561, 561, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1375, 561, 561, 561, 561, 1848, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2868, 561, 561, 561, 561, 561, 1441, 561, 561, 561, 1448, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 1998, 585, 585, 585, 585, 585, 2003, 585, 585, 1485, 585, 585, 585, 585, 585, 585, 585, 1493, 585, 585, 585, 585, 585, 585, 585, 585, 3261, 585, 585, 585, 585, 585, 585, 585, 585, 3272, 585, 585, 585, 585, 585, 585, 585, 585, 3283, 540, 585, 561, 540, 540, 561, 561, 585, 1522, 585, 585, 1526, 585, 585, 585, 585, 585, 1532, 585, 585, 585, 1539, 585, 585, 585, 585, 585, 1996, 1997, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1531, 585, 585, 585, 585, 585, 585, 0, 0, 0, 1595, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1716, 0, 0, 0, 0, 0, 1656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1665, 0, 0, 0, 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1653, 0, 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1729, 0, 0, 0, 0, 0, 0, 1706, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3398, 540, 3400, 540, 561, 561, 1893, 561, 561, 561, 561, 561, 561, 1901, 561, 561, 561, 561, 561, 561, 1410, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1428, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1917, 26027, 0, 1922, 585, 1924, 585, 561, 561, 561, 1910, 1912, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 585, 2335, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 3622, 0, 3624, 0, 0, 540, 585, 585, 585, 585, 1978, 585, 585, 585, 585, 585, 585, 585, 585, 1987, 585, 585, 585, 585, 585, 585, 2934, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2407, 561, 540, 585, 585, 561, 585, 585, 585, 585, 1995, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2004, 2006, 0, 0, 0, 2078, 0, 0, 0, 2081, 0, 0, 0, 0, 0, 2087, 0, 0, 0, 0, 0, 2774, 0, 0, 0, 2778, 0, 2780, 0, 0, 0, 0, 0, 0, 2746, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 2103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1265, 0, 0, 0, 0, 561, 561, 561, 561, 561, 2249, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1519, 585, 585, 2346, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2919, 585, 2448, 0, 0, 0, 0, 0, 0, 0, 0, 2453, 0, 0, 2456, 0, 0, 0, 0, 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 2460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2471, 0, 0, 0, 2485, 2486, 0, 0, 2489, 0, 0, 2492, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 417, 417, 0, 0, 65536, 417, 0, 0, 2499, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510, 0, 0, 0, 0, 815, 0, 812, 795, 0, 0, 817, 0, 667, 0, 791, 0, 0, 0, 0, 1096, 0, 0, 1098, 0, 0, 0, 0, 0, 0, 0, 0, 827, 0, 0, 0, 0, 0, 0, 0, 0, 540, 2524, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1789, 540, 540, 540, 540, 540, 2551, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2559, 540, 540, 2562, 540, 540, 540, 540, 540, 540, 2569, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3323, 540, 540, 540, 540, 540, 540, 2576, 540, 540, 540, 2579, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 0, 755, 0, 0, 0, 0, 0, 0, 0, 0, 765, 0, 0, 0, 0, 561, 2586, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3254, 561, 561, 561, 585, 585, 585, 585, 585, 2672, 585, 585, 585, 585, 585, 585, 2677, 585, 585, 585, 585, 561, 0, 3646, 0, 0, 0, 540, 540, 540, 540, 540, 540, 2529, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2842, 540, 540, 540, 540, 540, 585, 585, 585, 2683, 585, 585, 585, 585, 585, 585, 2690, 585, 585, 585, 585, 585, 585, 585, 2351, 585, 585, 585, 585, 585, 585, 585, 585, 1508, 585, 585, 585, 585, 585, 585, 585, 585, 2697, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2704, 585, 585, 585, 2707, 0, 0, 0, 0, 2735, 0, 0, 0, 0, 0, 0, 0, 2739, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 2528, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2234, 540, 540, 540, 540, 0, 540, 540, 540, 2811, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2821, 540, 540, 540, 540, 540, 2836, 540, 540, 540, 2839, 540, 2841, 540, 540, 540, 540, 540, 540, 540, 540, 3520, 561, 561, 561, 561, 561, 561, 561, 1450, 26027, 1360, 987, 585, 585, 585, 585, 585, 2845, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 2853, 561, 561, 561, 561, 561, 1913, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 2333, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1050, 585, 585, 585, 585, 561, 561, 2858, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2284, 561, 561, 561, 2874, 2875, 561, 561, 561, 561, 2878, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 1005, 585, 561, 561, 561, 2884, 561, 561, 561, 2887, 561, 2889, 561, 561, 561, 561, 561, 561, 1449, 561, 26027, 1360, 987, 1453, 585, 585, 585, 585, 2893, 561, 561, 561, 561, 561, 561, 0, 0, 585, 585, 2901, 585, 585, 585, 585, 585, 585, 585, 3121, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 3285, 561, 3287, 585, 2906, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3367, 585, 585, 2922, 2923, 585, 585, 585, 585, 2926, 585, 585, 585, 585, 585, 585, 585, 585, 3592, 561, 0, 0, 0, 0, 3595, 0, 585, 585, 585, 2932, 585, 585, 585, 2935, 585, 2937, 585, 585, 585, 585, 585, 585, 585, 1933, 585, 585, 585, 585, 1939, 585, 585, 585, 2941, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 2963, 0, 0, 0, 0, 0, 585, 585, 2957, 0, 0, 2960, 2961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 662, 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, 3009, 0, 0, 3012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2200253, 151552, 2200253, 0, 0, 0, 151552, 540, 540, 540, 540, 3037, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3325, 540, 540, 540, 540, 540, 540, 540, 3051, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3465, 561, 561, 561, 561, 561, 561, 3077, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1887, 1888, 561, 561, 561, 561, 561, 561, 3092, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3480, 585, 585, 585, 585, 561, 561, 585, 585, 585, 585, 3108, 585, 585, 585, 585, 3112, 585, 585, 585, 585, 585, 585, 585, 3135, 585, 3137, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 3552, 0, 0, 0, 585, 585, 585, 3118, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1512, 585, 585, 585, 585, 585, 585, 585, 3133, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2917, 585, 585, 2920, 0, 0, 3168, 3169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2071, 0, 0, 0, 540, 540, 540, 540, 3329, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3412, 561, 561, 3336, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2285, 3347, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 3354, 585, 585, 585, 585, 585, 585, 2404, 585, 585, 585, 585, 561, 2178, 585, 2346, 2261, 3389, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2534, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 3447, 3448, 0, 540, 540, 540, 540, 2527, 540, 540, 540, 540, 2531, 540, 540, 540, 540, 540, 540, 540, 1312, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1784, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3473, 561, 3475, 3476, 561, 3478, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 254413, 0, 0, 0, 0, 0, 585, 585, 585, 3488, 585, 3490, 3491, 585, 3493, 585, 3495, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 313, 314, 314, 419, 420, 65536, 427, 585, 585, 3617, 585, 3618, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 904, 540, 561, 561, 561, 976, 561, 561, 585, 585, 3673, 3674, 3675, 3676, 0, 540, 561, 585, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 1563, 0, 0, 0, 1569, 0, 0, 0, 0, 0, 2789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1591, 0, 0, 0, 0, 0, 571, 571, 571, 571, 571, 571, 571, 595, 595, 595, 540, 595, 595, 595, 595, 595, 571, 571, 540, 571, 595, 571, 595, 1, 12290, 3, 78112, 737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1707, 0, 0, 2040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1635, 0, 0, 2170, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 0, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2253, 561, 561, 561, 561, 926, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2307, 561, 561, 561, 2310, 400, 0, 0, 0, 0, 378, 0, 69632, 73728, 0, 0, 0, 0, 423, 65536, 0, 0, 0, 0, 1111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1687, 0, 1689, 0, 0, 423, 423, 0, 423, 0, 437, 423, 0, 423, 468, 468, 468, 475, 468, 468, 468, 468, 468, 468, 468, 468, 475, 468, 468, 468, 468, 468, 468, 468, 468, 482, 468, 494, 494, 468, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 494, 537, 549, 572, 549, 572, 549, 549, 572, 549, 596, 572, 572, 572, 572, 572, 572, 572, 596, 596, 596, 549, 596, 596, 596, 596, 596, 572, 572, 549, 572, 596, 572, 596, 1, 12290, 3, 78112, 0, 660, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1666, 0, 0, 830, 0, 0, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 742, 661, 0, 0, 0, 0, 0, 540, 847, 540, 540, 540, 540, 540, 540, 3330, 540, 540, 540, 561, 561, 561, 561, 561, 3335, 861, 540, 540, 540, 540, 540, 540, 540, 540, 540, 897, 540, 540, 540, 540, 540, 540, 540, 1799, 540, 540, 540, 540, 540, 540, 1807, 540, 561, 561, 916, 561, 561, 561, 931, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2266, 561, 561, 561, 561, 561, 561, 0, 0, 0, 540, 989, 585, 561, 540, 540, 897, 540, 540, 561, 561, 969, 561, 561, 561, 561, 561, 0, 585, 585, 989, 585, 585, 585, 1004, 585, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1101, 1102, 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196608, 0, 0, 0, 0, 0, 540, 540, 540, 1308, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3222, 540, 540, 1360, 914, 561, 1363, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1376, 1383, 561, 561, 561, 1444, 561, 561, 561, 561, 26027, 1360, 987, 585, 1454, 585, 585, 585, 585, 585, 585, 2659, 585, 585, 2662, 2663, 585, 585, 585, 585, 585, 585, 585, 2712, 540, 585, 585, 561, 540, 540, 540, 540, 585, 585, 1488, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3128, 585, 1521, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1535, 585, 585, 585, 585, 585, 585, 2673, 585, 585, 585, 2676, 585, 585, 2678, 585, 2679, 561, 585, 585, 1521, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, 0, 0, 0, 0, 0, 0, 1826, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1841, 1842, 585, 585, 2009, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 1849, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2880, 561, 561, 561, 561, 561, 2063, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2074, 540, 540, 2226, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 2854, 561, 561, 561, 561, 561, 561, 2301, 561, 561, 561, 561, 561, 561, 2306, 561, 561, 561, 561, 561, 561, 3079, 561, 561, 561, 561, 561, 3085, 561, 561, 3088, 2311, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 2654, 585, 585, 585, 585, 585, 2374, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3140, 585, 585, 585, 585, 2386, 585, 585, 585, 585, 585, 585, 2391, 585, 585, 585, 585, 585, 2396, 585, 585, 585, 585, 585, 2012, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 2624, 561, 561, 561, 561, 561, 561, 2632, 561, 561, 561, 561, 561, 2288, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2631, 561, 561, 561, 561, 561, 2435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2114, 0, 0, 0, 0, 2476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 2732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1590, 1591, 0, 0, 0, 2772, 0, 0, 0, 0, 2777, 0, 0, 0, 0, 0, 0, 0, 540, 562, 540, 562, 540, 540, 562, 540, 586, 540, 540, 2810, 540, 540, 540, 540, 540, 540, 2818, 540, 540, 540, 540, 540, 540, 540, 889, 540, 540, 540, 540, 907, 540, 540, 540, 540, 540, 540, 540, 2849, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1836, 561, 561, 561, 561, 561, 2857, 561, 561, 561, 561, 561, 561, 2865, 561, 561, 561, 561, 561, 561, 561, 561, 3081, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2897, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 1467, 1474, 585, 585, 585, 585, 585, 585, 585, 585, 3621, 0, 0, 0, 0, 0, 0, 540, 2905, 585, 585, 585, 585, 585, 585, 2913, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1983, 585, 585, 1986, 585, 585, 585, 585, 585, 585, 585, 2945, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 3376, 0, 585, 3280, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 3155, 0, 0, 585, 585, 585, 3587, 585, 3589, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 2791, 0, 0, 0, 2793, 0, 0, 0, 0, 0, 0, 0, 0, 3600, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1314, 540, 540, 540, 540, 3607, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3614, 585, 585, 585, 585, 585, 585, 2686, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1045, 585, 585, 585, 585, 585, 972, 561, 3653, 561, 561, 561, 561, 585, 3657, 585, 585, 585, 585, 0, 0, 0, 0, 0, 0, 1204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 345, 469, 469, 469, 453, 453, 469, 453, 453, 453, 453, 453, 453, 453, 453, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 550, 573, 550, 573, 550, 550, 573, 550, 597, 573, 573, 573, 573, 573, 573, 573, 597, 597, 597, 550, 597, 597, 597, 597, 597, 573, 573, 550, 573, 597, 573, 597, 1, 12290, 3, 78112, 862, 540, 540, 876, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1315, 540, 540, 540, 585, 1019, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 3498, 0, 0, 1123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 0, 0, 0, 0, 1254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2111, 0, 0, 0, 540, 1341, 540, 540, 540, 540, 540, 1348, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3333, 561, 561, 561, 561, 561, 585, 585, 585, 585, 1505, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3365, 585, 585, 585, 585, 585, 1523, 585, 585, 585, 585, 585, 1530, 585, 585, 585, 585, 585, 585, 585, 1468, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2378, 585, 585, 585, 585, 585, 585, 561, 585, 585, 585, 1557, 585, 1079, 0, 1561, 0, 0, 0, 1567, 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 0, 0, 0, 803, 0, 0, 0, 0, 540, 540, 540, 540, 540, 1573, 0, 0, 0, 1579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, 1695, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2127, 0, 0, 0, 540, 1762, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1358, 540, 1843, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1854, 561, 561, 561, 561, 561, 561, 3239, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3578, 561, 561, 585, 585, 585, 585, 0, 2064, 2065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1717, 0, 0, 0, 0, 0, 0, 2135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, 0, 0, 2186, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1808, 540, 540, 2213, 540, 540, 540, 540, 2218, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1754, 540, 540, 540, 540, 540, 540, 2240, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1401, 561, 561, 2298, 561, 561, 561, 561, 2303, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3083, 561, 561, 561, 561, 561, 585, 585, 585, 2388, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1938, 585, 585, 585, 3034, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2210, 0, 0, 0, 3380, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1175, 0, 0, 0, 0, 540, 540, 3404, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2282, 561, 561, 561, 561, 561, 561, 561, 3419, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1049, 585, 585, 585, 585, 561, 540, 3454, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3523, 561, 561, 561, 3469, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 3484, 385, 387, 337, 0, 0, 0, 0, 0, 0, 336, 0, 0, 337, 0, 0, 0, 0, 0, 1097, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2057, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1139, 1140, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2048, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 438, 0, 444, 0, 470, 470, 470, 470, 470, 470, 470, 551, 574, 551, 574, 551, 551, 574, 551, 598, 480, 470, 470, 470, 499, 476, 499, 499, 499, 499, 499, 499, 499, 499, 470, 470, 476, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 480, 470, 481, 480, 470, 470, 470, 470, 574, 574, 574, 574, 574, 574, 574, 598, 598, 598, 551, 598, 598, 598, 598, 598, 574, 574, 551, 574, 598, 574, 598, 1, 12290, 3, 78112, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2153, 0, 0, 0, 0, 0, 693, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1220, 0, 0, 1223, 0, 0, 0, 0, 0, 0, 663, 0, 791, 0, 0, 0, 0, 0, 0, 0, 795, 0, 0, 0, 0, 0, 2972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2097, 0, 2099, 0, 0, 0, 0, 0, 804, 0, 0, 0, 0, 0, 812, 0, 0, 0, 0, 706, 0, 0, 0, 0, 0, 0, 0, 0, 715, 0, 717, 0, 0, 0, 831, 0, 0, 0, 663, 834, 0, 791, 0, 0, 0, 0, 0, 840, 0, 0, 0, 0, 0, 2996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2429, 2430, 0, 0, 0, 0, 863, 540, 540, 877, 540, 540, 540, 888, 540, 540, 540, 540, 906, 540, 540, 540, 540, 540, 1311, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2843, 540, 540, 540, 540, 561, 561, 917, 561, 561, 561, 933, 561, 561, 947, 561, 561, 561, 561, 960, 561, 0, 995, 585, 1076, 1046, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 2686976, 2736128, 0, 0, 2531328, 2707456, 0, 3190784, 561, 561, 561, 978, 561, 561, 561, 0, 585, 585, 990, 585, 585, 585, 1006, 585, 585, 585, 585, 585, 2349, 585, 585, 585, 585, 2354, 585, 585, 585, 585, 585, 585, 585, 2377, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 585, 1020, 585, 585, 585, 585, 1033, 585, 585, 585, 585, 1051, 585, 585, 585, 561, 540, 585, 561, 3149, 540, 3151, 561, 3153, 585, 0, 0, 0, 0, 0, 0, 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 990, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 3067, 561, 561, 561, 561, 3071, 561, 561, 561, 561, 0, 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2431, 0, 2433, 0, 1238, 0, 0, 0, 0, 1270, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 3561, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 540, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1491, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1495, 585, 585, 585, 585, 561, 585, 585, 1556, 585, 585, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0, 0, 0, 1622, 0, 0, 1625, 0, 1627, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 839, 540, 540, 540, 540, 859, 540, 1744, 540, 540, 540, 540, 540, 540, 540, 540, 1755, 540, 540, 540, 540, 540, 540, 540, 2176, 540, 540, 2180, 540, 540, 540, 2184, 540, 561, 561, 561, 1847, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2294, 561, 561, 561, 0, 0, 2117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1730, 0, 0, 0, 0, 0, 0, 2148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1207, 0, 0, 0, 0, 0, 0, 0, 561, 561, 561, 561, 2248, 561, 561, 561, 561, 561, 561, 561, 561, 3095, 3097, 561, 561, 561, 3100, 561, 3102, 561, 561, 2313, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 585, 2651, 585, 585, 585, 585, 585, 585, 585, 2660, 585, 585, 585, 585, 585, 2665, 585, 585, 2398, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 2410, 585, 561, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 3669, 540, 3670, 0, 2436, 0, 0, 0, 0, 0, 0, 2441, 0, 0, 0, 2444, 2445, 0, 0, 0, 0, 0, 3010, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 304, 0, 0, 0, 0, 2497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2506, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 163840, 0, 0, 0, 0, 65536, 0, 2512, 0, 0, 0, 0, 2515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2523, 540, 2536, 2537, 540, 540, 540, 540, 540, 2542, 540, 2544, 540, 540, 540, 540, 2548, 561, 2595, 561, 561, 2598, 2599, 561, 561, 561, 561, 561, 2604, 561, 2606, 561, 561, 561, 561, 1863, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2890, 561, 561, 561, 561, 561, 561, 561, 2610, 561, 561, 561, 561, 561, 561, 561, 561, 2616, 561, 561, 561, 561, 561, 2276, 561, 561, 2279, 561, 561, 561, 561, 561, 561, 561, 1915, 561, 561, 26027, 1920, 585, 585, 585, 585, 2636, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2608, 2668, 585, 2670, 585, 585, 585, 585, 2674, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2675, 585, 585, 585, 585, 585, 585, 2680, 585, 585, 585, 585, 585, 585, 585, 585, 2688, 585, 585, 585, 585, 585, 585, 585, 1950, 585, 585, 585, 585, 1954, 585, 585, 585, 2696, 585, 585, 585, 585, 2700, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1494, 585, 585, 585, 585, 585, 561, 2720, 561, 561, 585, 2722, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2964, 0, 0, 0, 0, 2770, 0, 0, 0, 2773, 0, 0, 2776, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1691, 0, 2786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2795, 0, 0, 0, 0, 0, 3171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1245, 0, 0, 0, 0, 0, 540, 2825, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1773, 540, 540, 2835, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2844, 540, 540, 2847, 540, 540, 2850, 540, 0, 0, 2851, 561, 561, 561, 561, 561, 561, 1851, 561, 561, 561, 561, 1855, 561, 561, 561, 561, 561, 2883, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2892, 561, 561, 2895, 561, 561, 2898, 561, 0, 0, 2899, 585, 585, 585, 585, 585, 585, 585, 1965, 585, 585, 585, 1970, 585, 585, 585, 585, 585, 2931, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2940, 585, 585, 2943, 585, 585, 2946, 585, 561, 2948, 585, 2949, 2950, 540, 540, 561, 561, 561, 561, 1878, 561, 561, 561, 561, 1884, 561, 561, 561, 561, 561, 561, 936, 561, 561, 561, 561, 561, 561, 561, 561, 561, 984, 0, 585, 585, 585, 585, 585, 585, 1007, 585, 0, 2968, 2969, 0, 0, 0, 0, 2974, 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, 331, 331, 0, 0, 0, 0, 3020, 0, 0, 540, 540, 3025, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3043, 540, 540, 540, 540, 540, 540, 540, 3050, 540, 540, 3052, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1352, 540, 540, 540, 540, 540, 561, 561, 561, 3091, 561, 561, 3093, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2602, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 3106, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1496, 585, 585, 585, 1500, 585, 585, 585, 3132, 585, 585, 3134, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1040, 585, 585, 585, 585, 585, 967, 3158, 0, 0, 0, 3162, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1222, 0, 0, 1225, 0, 3190, 0, 0, 3193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 2166, 540, 540, 540, 540, 540, 3214, 540, 540, 540, 540, 540, 540, 540, 3219, 540, 540, 540, 540, 540, 540, 540, 2541, 540, 2543, 540, 540, 540, 540, 540, 540, 540, 540, 2581, 540, 540, 540, 540, 0, 2584, 0, 561, 561, 561, 3236, 3237, 561, 561, 561, 561, 561, 3241, 561, 561, 561, 561, 561, 561, 3250, 561, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 3536, 585, 585, 585, 585, 561, 561, 561, 3247, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 585, 3481, 585, 3483, 585, 585, 585, 585, 3269, 585, 585, 585, 585, 585, 585, 585, 585, 3275, 585, 585, 585, 585, 585, 585, 2701, 585, 585, 585, 585, 585, 585, 585, 2706, 585, 0, 0, 3308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 856, 540, 585, 3359, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1057, 561, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 3386, 0, 0, 0, 0, 0, 1169, 0, 1171, 0, 0, 0, 0, 1176, 0, 0, 0, 0, 0, 1185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 669, 0, 0, 0, 0, 0, 585, 3429, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 3437, 0, 0, 0, 0, 0, 3300, 0, 3176, 3302, 0, 0, 3305, 0, 0, 0, 0, 0, 0, 1113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 0, 703, 0, 0, 3440, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 3452, 540, 540, 540, 540, 3457, 540, 540, 540, 540, 3462, 540, 540, 561, 561, 3467, 561, 0, 997, 1037, 585, 1048, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, 0, 0, 783, 0, 0, 561, 561, 561, 3472, 561, 561, 561, 561, 3477, 561, 561, 585, 585, 3482, 585, 585, 585, 585, 585, 585, 3259, 3260, 585, 585, 585, 585, 3264, 3265, 585, 585, 585, 585, 585, 585, 3120, 585, 585, 585, 585, 585, 3126, 585, 585, 3129, 585, 585, 3487, 585, 585, 585, 585, 3492, 585, 585, 561, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 167936, 0, 0, 0, 0, 65536, 0, 3499, 0, 0, 0, 0, 0, 3505, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3397, 540, 540, 540, 540, 540, 540, 540, 540, 3517, 540, 540, 3519, 561, 561, 561, 561, 561, 561, 561, 561, 3252, 561, 561, 561, 561, 561, 561, 585, 561, 561, 561, 3530, 561, 561, 3532, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1042, 585, 585, 585, 585, 585, 969, 585, 585, 3543, 585, 585, 3545, 561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1144, 0, 362, 362, 0, 1147, 0, 540, 540, 3629, 3630, 540, 540, 561, 561, 561, 3635, 3636, 561, 561, 585, 585, 585, 585, 0, 2029, 0, 0, 0, 0, 0, 2031, 0, 0, 3641, 3642, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3395, 540, 540, 540, 540, 540, 540, 3401, 561, 561, 585, 585, 0, 540, 561, 585, 0, 540, 561, 585, 3681, 3682, 3683, 3684, 339, 340, 341, 342, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1617, 0, 0, 0, 0, 0, 0, 0, 388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2469, 0, 2470, 0, 342, 342, 343, 342, 0, 341, 342, 445, 454, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 486, 495, 495, 503, 495, 505, 495, 495, 505, 505, 495, 505, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 552, 575, 552, 575, 552, 552, 575, 552, 599, 575, 575, 575, 575, 575, 575, 575, 599, 599, 599, 552, 599, 599, 599, 599, 599, 575, 575, 552, 575, 599, 575, 599, 1, 12290, 3, 78112, 0, 0, 0, 646, 0, 0, 0, 0, 651, 652, 653, 654, 655, 656, 657, 0, 0, 0, 0, 1144, 0, 0, 1259, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2957312, 0, 0, 0, 0, 0, 0, 0, 692, 0, 0, 0, 0, 0, 0, 699, 362, 362, 362, 0, 0, 0, 0, 0, 0, 1232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 800, 0, 0, 0, 0, 721, 0, 723, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733, 0, 0, 0, 0, 0, 1202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 333, 334, 0, 0, 0, 0, 0, 646, 752, 753, 754, 0, 0, 0, 0, 0, 760, 761, 0, 0, 0, 0, 0, 0, 1271, 0, 0, 0, 0, 0, 0, 540, 540, 540, 3026, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2220, 540, 540, 540, 540, 540, 0, 761, 0, 0, 790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 797, 0, 0, 0, 0, 1152, 0, 0, 0, 0, 1157, 0, 0, 0, 0, 0, 0, 0, 2106, 0, 0, 0, 0, 0, 0, 0, 0, 1219, 0, 0, 0, 0, 0, 0, 0, 723, 0, 692, 814, 0, 0, 0, 0, 761, 0, 0, 0, 0, 0, 0, 0, 558, 581, 558, 581, 558, 558, 581, 558, 605, 0, 754, 823, 824, 0, 0, 0, 0, 0, 0, 754, 0, 0, 828, 699, 0, 0, 0, 0, 1168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1633, 0, 0, 0, 0, 0, 0, 833, 0, 0, 0, 835, 0, 0, 0, 692, 699, 0, 0, 692, 833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 692, 540, 540, 853, 857, 860, 540, 868, 540, 540, 882, 884, 887, 540, 540, 540, 898, 902, 540, 540, 540, 540, 540, 540, 1766, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1786, 540, 540, 540, 540, 540, 561, 561, 561, 923, 927, 930, 561, 938, 561, 561, 561, 953, 955, 958, 561, 561, 561, 561, 1879, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2641, 561, 561, 561, 561, 561, 561, 561, 561, 2648, 0, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 2717, 540, 540, 540, 585, 585, 585, 1026, 1028, 1031, 585, 585, 585, 1043, 1047, 585, 585, 585, 585, 970, 0, 0, 0, 1060, 585, 1062, 1063, 853, 540, 898, 902, 1068, 923, 561, 970, 974, 561, 561, 561, 561, 0, 585, 585, 585, 996, 1000, 1003, 585, 1011, 1073, 0, 996, 585, 1043, 1047, 1078, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 560, 583, 560, 583, 560, 560, 583, 560, 607, 0, 0, 1199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1208, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 0, 1236, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 422, 65536, 0, 540, 1322, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1331, 540, 540, 1338, 540, 540, 540, 540, 2228, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 2852, 561, 561, 561, 561, 561, 561, 561, 561, 1422, 561, 561, 1429, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2879, 561, 561, 561, 561, 561, 561, 561, 1442, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 2925, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 561, 585, 3436, 0, 3438, 0, 585, 1503, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1513, 585, 585, 1520, 1667, 0, 1669, 0, 0, 0, 1671, 0, 748, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 282624, 0, 0, 1602, 0, 0, 0, 0, 0, 0, 540, 1738, 540, 540, 540, 540, 540, 540, 540, 2584, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1839, 561, 561, 561, 1743, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2238, 540, 1776, 540, 540, 1781, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1353, 540, 540, 540, 540, 0, 561, 1829, 561, 561, 561, 561, 561, 561, 1835, 561, 561, 561, 561, 561, 561, 1864, 561, 561, 561, 1868, 561, 561, 1873, 561, 561, 1907, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 1923, 585, 585, 585, 585, 585, 585, 3270, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1968, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1929, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1511, 585, 585, 585, 585, 585, 1958, 585, 585, 585, 1962, 585, 585, 1967, 585, 585, 585, 585, 585, 585, 585, 1469, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2392, 585, 585, 585, 2395, 585, 585, 0, 1086, 0, 0, 0, 2034, 0, 1090, 0, 0, 0, 2036, 0, 1094, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1226, 585, 585, 585, 585, 2362, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1534, 585, 585, 585, 585, 2585, 0, 1826, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2271, 585, 585, 585, 2710, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 1814, 540, 540, 540, 540, 1820, 540, 540, 540, 1360, 0, 0, 0, 0, 2744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0, 0, 585, 585, 585, 585, 2924, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1937, 585, 585, 585, 585, 561, 561, 3338, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1857, 561, 561, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 3385, 0, 0, 0, 0, 0, 0, 1628, 1629, 1630, 0, 0, 0, 0, 0, 0, 0, 0, 1159168, 362, 0, 0, 0, 0, 0, 0, 3402, 540, 540, 540, 561, 561, 561, 3407, 561, 561, 561, 561, 3411, 561, 561, 561, 561, 1391, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1414, 561, 561, 561, 561, 561, 561, 3417, 561, 561, 561, 585, 585, 585, 3422, 585, 585, 585, 585, 3426, 585, 585, 585, 585, 585, 2375, 2376, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1476, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3432, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 1644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 661, 0, 661, 0, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 3446, 0, 0, 0, 540, 540, 540, 3392, 540, 540, 540, 540, 3396, 540, 540, 540, 540, 540, 540, 540, 3039, 540, 540, 540, 540, 540, 3045, 540, 540, 540, 540, 3455, 540, 540, 540, 3459, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 2626, 561, 561, 561, 561, 561, 561, 2633, 561, 561, 561, 561, 3470, 561, 561, 561, 3474, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 3111, 585, 585, 585, 585, 585, 585, 3485, 585, 585, 585, 3489, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 3603, 540, 3604, 540, 540, 540, 561, 561, 585, 585, 0, 540, 561, 585, 3677, 3678, 3679, 3680, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 0, 1562, 0, 0, 0, 1568, 0, 0, 0, 0, 0, 1256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 300, 0, 0, 0, 0, 386, 0, 0, 0, 390, 386, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1174, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 344, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 521, 521, 521, 521, 0, 0, 0, 0, 0, 0, 0, 0, 521, 521, 521, 521, 521, 521, 521, 553, 576, 553, 576, 553, 553, 576, 553, 600, 576, 576, 576, 576, 576, 576, 576, 600, 600, 600, 553, 600, 600, 600, 600, 600, 576, 576, 617, 622, 600, 622, 628, 1, 12290, 3, 78112, 561, 561, 561, 979, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2927, 585, 585, 585, 585, 585, 585, 0, 0, 0, 540, 1061, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3238, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1433, 561, 561, 561, 561, 561, 1107, 0, 0, 0, 0, 1112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1190, 0, 0, 0, 0, 0, 561, 561, 561, 1389, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2308, 2309, 561, 561, 561, 1403, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2296, 2297, 1440, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 585, 585, 2947, 540, 585, 585, 561, 540, 540, 561, 561, 1574, 0, 0, 0, 1580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, 0, 0, 0, 0, 1606, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1620, 0, 0, 0, 0, 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2110, 0, 0, 0, 0, 561, 561, 561, 1877, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2322, 0, 0, 0, 2052, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2155, 0, 2116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1676, 0, 2241, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2295, 561, 561, 561, 561, 2274, 561, 561, 561, 561, 2278, 561, 2280, 561, 561, 561, 561, 561, 561, 1897, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1397, 561, 561, 561, 561, 561, 561, 2359, 585, 585, 585, 585, 2363, 585, 2365, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3123, 585, 3125, 585, 585, 585, 585, 0, 0, 0, 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2494, 2495, 0, 0, 561, 2622, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2607, 561, 0, 3021, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2533, 540, 0, 0, 0, 0, 3176, 3382, 0, 0, 3384, 0, 0, 0, 0, 0, 0, 0, 728, 0, 0, 0, 0, 0, 0, 0, 0, 1115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 3391, 540, 540, 3393, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1785, 540, 540, 540, 1790, 540, 0, 0, 0, 0, 3176, 0, 3443, 0, 0, 0, 0, 0, 3449, 540, 540, 540, 540, 540, 1782, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2832, 540, 540, 540, 540, 864, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 912, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447, 0, 0, 1624, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2060, 0, 0, 1827, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2620, 345, 345, 347, 345, 0, 0, 345, 0, 345, 0, 0, 0, 0, 346, 0, 0, 0, 0, 0, 3310, 0, 0, 3312, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 561, 3410, 561, 561, 561, 561, 561, 0, 0, 0, 345, 345, 347, 345, 345, 345, 345, 345, 345, 512, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, 554, 577, 554, 577, 554, 554, 577, 554, 601, 577, 577, 577, 577, 577, 577, 577, 601, 601, 601, 554, 601, 601, 601, 601, 601, 577, 577, 554, 577, 601, 577, 601, 1, 12290, 3, 78112, 0, 722, 0, 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2508, 0, 0, 0, 0, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1690, 0, 0, 0, 811, 0, 0, 810, 0, 0, 0, 0, 0, 755, 0, 0, 819, 0, 0, 0, 0, 1269, 0, 0, 0, 0, 0, 0, 0, 1181, 540, 540, 540, 540, 540, 1797, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3464, 561, 561, 561, 561, 540, 540, 872, 540, 540, 540, 540, 890, 892, 540, 540, 903, 540, 540, 540, 540, 540, 540, 2175, 540, 2177, 540, 540, 540, 540, 540, 540, 2185, 561, 561, 918, 924, 561, 561, 561, 561, 942, 561, 561, 561, 561, 561, 962, 964, 561, 561, 975, 561, 561, 561, 561, 0, 585, 585, 991, 997, 585, 585, 585, 585, 585, 585, 585, 3271, 585, 585, 585, 585, 585, 585, 3277, 585, 1015, 585, 585, 585, 585, 585, 1035, 1037, 585, 585, 1048, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 540, 540, 3650, 3651, 540, 540, 0, 0, 0, 540, 991, 585, 561, 854, 892, 540, 903, 540, 924, 964, 561, 975, 0, 0, 0, 1151, 0, 1153, 0, 1155, 0, 0, 0, 0, 0, 0, 0, 0, 713, 0, 0, 0, 0, 0, 0, 0, 0, 1181, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1706, 0, 0, 1198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1731, 0, 1212, 1213, 0, 0, 0, 0, 0, 1218, 0, 0, 0, 0, 0, 0, 0, 0, 729, 0, 0, 0, 0, 0, 0, 0, 540, 540, 1307, 1309, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1316, 540, 540, 1319, 540, 540, 1343, 540, 540, 540, 540, 540, 540, 540, 540, 1354, 1355, 540, 540, 540, 540, 540, 1813, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 1360, 914, 561, 561, 561, 1366, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1921, 585, 585, 585, 585, 561, 561, 1420, 561, 561, 561, 561, 561, 561, 561, 1434, 561, 561, 561, 561, 561, 561, 3342, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3080, 561, 561, 561, 561, 561, 561, 561, 561, 2319, 561, 561, 561, 561, 0, 0, 0, 561, 561, 561, 1445, 1446, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 1457, 585, 585, 585, 585, 585, 2403, 585, 585, 585, 585, 585, 561, 2409, 585, 2411, 2412, 585, 1487, 1489, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3366, 585, 585, 585, 585, 1525, 585, 585, 585, 585, 585, 585, 585, 585, 1536, 1537, 585, 585, 585, 585, 585, 585, 3434, 585, 561, 540, 561, 585, 0, 0, 0, 3439, 585, 1542, 0, 540, 585, 585, 561, 540, 1547, 540, 540, 1550, 561, 1551, 561, 561, 561, 561, 1895, 561, 561, 561, 1900, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 988, 585, 585, 585, 585, 585, 1554, 585, 1555, 585, 585, 1558, 1079, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0, 0, 0, 0, 2073, 0, 0, 1678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2037, 0, 0, 0, 1694, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2072, 0, 0, 0, 1637, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 0, 0, 561, 561, 561, 561, 561, 561, 1833, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 585, 585, 585, 561, 1908, 561, 561, 561, 561, 1914, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 2334, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2938, 585, 585, 585, 585, 585, 585, 585, 1927, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1055, 585, 561, 585, 585, 585, 1994, 585, 585, 585, 585, 585, 585, 585, 585, 2002, 585, 585, 585, 585, 585, 585, 2711, 561, 540, 585, 585, 561, 540, 540, 540, 540, 540, 540, 2217, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1802, 540, 540, 540, 540, 540, 585, 2008, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 561, 561, 2261, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2891, 561, 561, 561, 561, 0, 2076, 0, 0, 0, 0, 0, 0, 0, 0, 2084, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 266240, 0, 0, 0, 0, 65536, 0, 2088, 0, 0, 2090, 0, 0, 0, 0, 0, 0, 0, 2098, 0, 0, 0, 0, 0, 0, 1725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 643, 0, 0, 0, 0, 0, 0, 0, 0, 2146, 0, 0, 0, 2146, 0, 0, 2151, 2152, 0, 0, 0, 0, 0, 0, 0, 274432, 274432, 274432, 0, 274432, 274432, 274432, 274432, 274432, 2156, 0, 0, 0, 0, 0, 0, 0, 2162, 540, 540, 540, 540, 540, 2168, 540, 540, 540, 540, 2538, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1821, 540, 540, 1360, 540, 2200, 540, 2203, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2209, 540, 540, 540, 540, 2578, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2584, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 0, 0, 0, 0, 0, 0, 0, 2244, 561, 561, 561, 561, 561, 561, 2251, 561, 561, 561, 561, 561, 561, 3351, 585, 585, 585, 585, 585, 585, 585, 3356, 585, 561, 561, 2300, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2323, 0, 0, 0, 2329, 585, 585, 585, 585, 585, 585, 2336, 585, 585, 585, 585, 585, 585, 585, 1470, 585, 585, 585, 585, 1480, 585, 585, 585, 585, 585, 2360, 585, 585, 585, 585, 585, 585, 2366, 585, 2368, 585, 2371, 585, 585, 585, 585, 585, 585, 3546, 0, 0, 3549, 3550, 0, 0, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2912256, 0, 3207168, 2465792, 0, 0, 2385, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1989, 2472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2480, 0, 0, 0, 0, 0, 0, 0, 286720, 286720, 0, 286720, 286720, 1, 12290, 3, 0, 0, 0, 0, 0, 2514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2522, 0, 0, 0, 0, 1575, 0, 0, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 69632, 73728, 172032, 0, 0, 0, 0, 65536, 0, 561, 561, 2596, 561, 561, 561, 561, 561, 2601, 561, 561, 561, 561, 561, 561, 561, 0, 585, 585, 992, 585, 585, 585, 585, 585, 585, 2681, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1956, 585, 2719, 561, 561, 561, 2721, 585, 585, 585, 2723, 2724, 0, 0, 0, 0, 0, 0, 0, 2801, 0, 0, 0, 540, 2805, 540, 540, 540, 2742, 0, 2743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2100, 0, 0, 0, 0, 2758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2128, 0, 0, 540, 2809, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2223, 2224, 540, 2846, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 561, 2855, 561, 2856, 561, 2894, 561, 561, 561, 561, 561, 0, 0, 585, 585, 585, 585, 2903, 585, 2904, 585, 2942, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 3374, 0, 0, 3377, 0, 0, 0, 540, 3024, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1771, 540, 540, 540, 540, 561, 561, 585, 3105, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2369, 585, 585, 585, 585, 585, 3145, 540, 585, 561, 540, 540, 561, 561, 585, 585, 0, 0, 0, 0, 0, 0, 2066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 297, 0, 0, 0, 0, 0, 0, 0, 3390, 540, 540, 540, 540, 3394, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2179, 540, 540, 540, 540, 540, 540, 540, 3403, 540, 540, 3405, 561, 561, 561, 561, 3409, 561, 561, 561, 561, 561, 561, 2277, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3082, 561, 3084, 561, 561, 561, 561, 561, 561, 561, 3418, 561, 561, 3420, 585, 585, 585, 585, 3424, 585, 585, 585, 585, 585, 585, 585, 3591, 585, 561, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 3303, 0, 0, 0, 0, 3307, 0, 585, 585, 585, 585, 585, 3433, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 2137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1129, 0, 0, 0, 0, 0, 0, 0, 3500, 0, 3502, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 3511, 540, 540, 540, 540, 2812, 540, 2815, 540, 540, 540, 540, 2820, 540, 540, 540, 2823, 540, 540, 540, 540, 3631, 540, 561, 561, 561, 561, 561, 3637, 561, 585, 585, 585, 585, 585, 1079, 0, 0, 0, 1564, 0, 0, 0, 1570, 0, 585, 585, 3643, 585, 561, 3645, 0, 3647, 0, 0, 540, 540, 540, 540, 540, 540, 540, 1286, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3208, 540, 540, 540, 540, 540, 365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2496, 398, 0, 0, 0, 0, 0, 365, 373, 401, 0, 0, 0, 0, 0, 365, 0, 0, 393, 0, 0, 0, 0, 348, 0, 0, 365, 0, 393, 0, 406, 408, 0, 0, 365, 373, 0, 69632, 73728, 0, 0, 0, 0, 424, 65536, 0, 0, 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 424, 424, 0, 424, 0, 408, 424, 447, 455, 0, 0, 0, 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, 0, 0, 644, 0, 406, 0, 496, 496, 0, 496, 496, 496, 496, 496, 496, 496, 496, 522, 522, 522, 522, 455, 455, 455, 530, 455, 531, 455, 455, 522, 536, 522, 522, 522, 522, 538, 555, 578, 555, 578, 555, 555, 578, 555, 602, 578, 578, 578, 608, 608, 608, 578, 602, 602, 602, 555, 602, 602, 602, 602, 602, 578, 578, 618, 623, 602, 623, 629, 1, 12290, 3, 78112, 643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2769, 0, 0, 0, 694, 0, 0, 0, 0, 0, 362, 362, 362, 0, 0, 0, 0, 0, 0, 2440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1260, 0, 0, 0, 0, 0, 0, 0, 0, 805, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2142, 2143, 0, 540, 540, 540, 878, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1332, 540, 540, 540, 561, 561, 919, 561, 561, 561, 561, 561, 561, 948, 950, 561, 561, 561, 561, 561, 561, 3575, 561, 3577, 561, 561, 561, 585, 585, 585, 585, 0, 0, 1563, 0, 0, 0, 0, 0, 1569, 0, 585, 1021, 1023, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 561, 3496, 0, 3497, 0, 0, 0, 0, 0, 540, 992, 585, 561, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3341, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3579, 561, 585, 585, 585, 585, 0, 0, 0, 1098, 1230, 0, 0, 0, 0, 0, 0, 1237, 0, 0, 0, 0, 0, 0, 2452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1242, 1251, 540, 540, 1280, 540, 540, 540, 1284, 540, 540, 1295, 540, 540, 1299, 540, 540, 540, 540, 540, 2229, 540, 2231, 540, 540, 540, 540, 540, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1840, 561, 561, 1360, 914, 561, 561, 561, 561, 561, 561, 1369, 561, 561, 561, 1373, 561, 561, 1384, 561, 561, 1388, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2324, 0, 0, 561, 561, 1405, 561, 561, 561, 1409, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3612, 3613, 561, 585, 585, 585, 585, 585, 1460, 585, 585, 585, 1464, 585, 585, 1475, 585, 585, 1479, 585, 585, 585, 585, 585, 585, 1032, 585, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 3625, 0, 540, 0, 1623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1636, 0, 0, 0, 0, 1626, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2058, 2059, 0, 2061, 2062, 1638, 0, 0, 0, 1642, 0, 0, 0, 1646, 0, 0, 0, 1650, 0, 0, 0, 0, 0, 1257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1145, 362, 362, 0, 0, 1148, 561, 1844, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2635, 561, 561, 561, 561, 1862, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2869, 561, 561, 2872, 2007, 585, 585, 585, 585, 561, 1752, 585, 1938, 1844, 540, 540, 540, 540, 561, 561, 561, 561, 2275, 561, 561, 561, 561, 561, 561, 2281, 561, 2283, 561, 2286, 0, 0, 2056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2154, 0, 0, 0, 0, 0, 2118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2520, 0, 0, 0, 0, 2132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2141, 0, 0, 0, 0, 0, 0, 2463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158, 0, 0, 2161, 0, 540, 540, 2164, 540, 540, 540, 540, 540, 540, 540, 3053, 540, 3055, 540, 540, 540, 540, 540, 540, 540, 540, 2232, 540, 540, 2235, 2236, 540, 540, 0, 540, 540, 540, 2227, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 2242, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 561, 561, 2246, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1360, 987, 585, 585, 1455, 585, 1458, 561, 2312, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 0, 0, 0, 0, 585, 2650, 585, 585, 585, 585, 585, 585, 561, 3547, 3548, 0, 0, 0, 0, 0, 0, 3554, 0, 585, 585, 2331, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2381, 2382, 585, 585, 585, 585, 2387, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2397, 540, 540, 2415, 2416, 561, 561, 2419, 2420, 585, 585, 2423, 2424, 0, 1563, 0, 1569, 0, 1575, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2752, 0, 0, 0, 0, 0, 0, 0, 2438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1728, 0, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2519, 0, 0, 0, 0, 0, 0, 2478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1189, 0, 0, 0, 0, 0, 0, 540, 540, 540, 2565, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1333, 540, 540, 540, 585, 585, 2682, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2693, 585, 585, 585, 585, 585, 585, 3590, 585, 585, 561, 0, 3594, 0, 0, 0, 0, 0, 0, 2516, 2466, 0, 0, 0, 0, 0, 2521, 0, 0, 2824, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2239, 561, 561, 561, 561, 2885, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1395, 561, 561, 561, 561, 561, 561, 561, 561, 1430, 561, 561, 561, 561, 561, 561, 561, 561, 2866, 561, 561, 561, 561, 561, 561, 561, 585, 585, 585, 585, 2933, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1985, 585, 585, 585, 585, 0, 3177, 0, 0, 0, 3180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1601, 1602, 0, 0, 0, 0, 0, 0, 0, 0, 3194, 0, 0, 0, 0, 0, 0, 3197, 0, 3199, 540, 540, 540, 540, 880, 540, 885, 540, 891, 540, 894, 540, 540, 908, 540, 540, 540, 540, 540, 3038, 540, 540, 540, 540, 540, 540, 540, 540, 3046, 540, 585, 3289, 3290, 0, 0, 0, 0, 3294, 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0, 0, 540, 540, 3316, 540, 540, 540, 3319, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1819, 540, 540, 540, 540, 1360, 561, 3337, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2646, 561, 3415, 561, 561, 561, 561, 561, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3115, 3428, 585, 3430, 585, 585, 585, 585, 585, 561, 540, 561, 585, 0, 0, 0, 0, 0, 0, 2503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 336, 290, 0, 0, 0, 0, 3555, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3566, 540, 540, 561, 3064, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2617, 561, 561, 561, 561, 561, 3608, 561, 3609, 561, 561, 561, 561, 561, 561, 561, 585, 585, 3615, 585, 585, 585, 585, 585, 2658, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1952, 585, 585, 585, 585, 585, 3616, 585, 585, 585, 585, 585, 585, 585, 561, 0, 0, 0, 0, 0, 0, 540, 585, 585, 561, 540, 540, 540, 1067, 911, 561, 561, 561, 1072, 407, 353, 0, 0, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 1658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 1146, 0, 0, 472, 483, 472, 0, 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, 523, 523, 527, 527, 527, 527, 472, 472, 472, 472, 472, 477, 472, 472, 527, 523, 527, 527, 527, 527, 539, 556, 579, 556, 579, 556, 556, 579, 556, 603, 579, 579, 579, 579, 579, 579, 579, 603, 603, 603, 556, 603, 603, 603, 603, 603, 579, 579, 619, 624, 603, 624, 630, 1, 12290, 3, 78112, 0, 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2101, 0, 738, 0, 0, 0, 644, 738, 0, 744, 745, 644, 0, 0, 0, 0, 0, 0, 0, 0, 793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 802, 0, 807, 0, 0, 0, 0, 0, 0, 807, 0, 0, 0, 0, 0, 644, 0, 0, 0, 802, 0, 807, 0, 793, 0, 822, 0, 0, 0, 665, 0, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 1134592, 0, 362, 0, 0, 0, 1134592, 0, 0, 0, 793, 793, 0, 644, 0, 0, 793, 807, 845, 0, 540, 850, 540, 540, 540, 540, 540, 2539, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3324, 540, 540, 540, 540, 540, 869, 873, 879, 883, 540, 540, 540, 540, 540, 899, 540, 540, 540, 540, 540, 540, 540, 3206, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2205, 540, 540, 540, 540, 540, 540, 561, 561, 920, 561, 561, 561, 561, 939, 943, 949, 561, 954, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 0, 2728, 0, 0, 1016, 1022, 585, 1027, 585, 585, 585, 585, 585, 1044, 585, 585, 585, 585, 585, 1058, 0, 0, 0, 540, 993, 585, 561, 540, 540, 899, 540, 540, 561, 561, 971, 561, 561, 561, 561, 561, 0, 585, 585, 993, 585, 585, 585, 585, 1012, 1149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2784, 0, 0, 0, 1200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1211, 1227, 0, 0, 1099, 0, 0, 0, 1233, 0, 1235, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1249, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 1674, 0, 0, 0, 0, 0, 0, 743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2753, 2754, 0, 1252, 1200, 0, 1233, 1255, 0, 1258, 0, 0, 0, 0, 0, 1130, 0, 0, 0, 0, 0, 1597, 0, 0, 0, 1600, 0, 0, 1603, 0, 0, 0, 0, 0, 843, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3320, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1801, 540, 540, 540, 1806, 540, 540, 0, 1267, 0, 0, 0, 0, 0, 1267, 0, 0, 1149, 1267, 0, 1274, 540, 540, 540, 540, 1282, 540, 540, 540, 1291, 540, 540, 540, 540, 540, 540, 540, 540, 2204, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2830, 540, 540, 540, 540, 540, 540, 540, 1279, 540, 540, 540, 540, 1285, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2194, 540, 540, 540, 540, 540, 540, 1306, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1317, 540, 540, 540, 540, 540, 2567, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2545, 540, 540, 540, 540, 1321, 540, 540, 540, 540, 540, 540, 540, 1327, 540, 540, 540, 1334, 1336, 540, 540, 540, 540, 1310, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1335, 540, 540, 540, 1360, 914, 1362, 561, 561, 561, 561, 1368, 561, 561, 561, 561, 1374, 561, 561, 561, 561, 1407, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2293, 561, 561, 561, 561, 561, 561, 1406, 561, 561, 561, 561, 1411, 561, 561, 561, 561, 561, 561, 561, 561, 1852, 561, 561, 561, 561, 561, 561, 561, 561, 1866, 561, 561, 561, 561, 561, 561, 561, 1418, 561, 561, 561, 1425, 1427, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1865, 561, 561, 561, 561, 561, 561, 561, 561, 1883, 561, 561, 561, 561, 561, 561, 561, 1459, 585, 585, 585, 585, 1465, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1533, 585, 585, 585, 585, 585, 1486, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1497, 585, 585, 585, 585, 585, 585, 1034, 585, 585, 585, 585, 1052, 585, 585, 585, 561, 1502, 585, 585, 585, 585, 585, 585, 585, 585, 1509, 585, 585, 585, 1516, 1518, 585, 585, 585, 585, 585, 2685, 585, 585, 585, 585, 2689, 585, 585, 585, 2694, 585, 561, 0, 1290, 1544, 1470, 1379, 540, 540, 540, 540, 540, 561, 561, 561, 561, 561, 3249, 561, 3251, 561, 561, 561, 561, 561, 561, 561, 585, 3534, 585, 3535, 585, 585, 585, 3539, 585, 0, 1575, 0, 0, 0, 1581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, 0, 0, 0, 1592, 1593, 0, 0, 0, 0, 0, 1599, 0, 0, 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 1639, 0, 0, 0, 0, 0, 0, 0, 1647, 1648, 0, 0, 0, 0, 0, 0, 0, 2387968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2987, 0, 0, 0, 0, 0, 2990, 0, 1655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2482, 0, 0, 0, 1721, 0, 0, 0, 0, 0, 0, 0, 1718, 0, 0, 0, 0, 0, 0, 300, 300, 300, 300, 0, 300, 300, 300, 300, 300, 540, 540, 540, 1747, 540, 540, 540, 540, 1753, 540, 540, 540, 540, 540, 540, 540, 540, 1817, 540, 540, 540, 540, 540, 540, 1360, 540, 540, 540, 1764, 540, 540, 540, 540, 1768, 540, 540, 540, 540, 540, 540, 540, 540, 2178, 540, 540, 540, 540, 540, 540, 540, 540, 1287, 1294, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1779, 540, 540, 1783, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2206, 2207, 540, 540, 540, 540, 1809, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1379, 561, 0, 1074, 585, 585, 1050, 585, 78112, 1079, 0, 0, 0, 0, 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, 1210, 0, 561, 1845, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1856, 561, 561, 561, 561, 1423, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3253, 561, 561, 561, 561, 585, 561, 1860, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1871, 561, 561, 561, 561, 1424, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 1920, 585, 585, 585, 585, 1876, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3244, 561, 561, 585, 2026, 585, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 286720, 0, 0, 0, 0, 2079, 2080, 0, 0, 2082, 2083, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 3306, 0, 0, 0, 0, 0, 0, 2105, 0, 0, 0, 0, 2108, 2109, 0, 0, 0, 0, 0, 0, 301, 301, 301, 301, 0, 301, 301, 301, 301, 301, 2115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2796, 0, 0, 0, 2147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2781, 0, 0, 0, 0, 0, 2157, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 540, 2225, 540, 540, 540, 540, 2230, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 1696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2070, 0, 0, 0, 0, 0, 2242, 0, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2618, 561, 561, 561, 561, 561, 2259, 561, 561, 2263, 561, 561, 561, 2267, 561, 561, 561, 561, 561, 561, 3610, 561, 3611, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 2030, 0, 1082, 0, 0, 0, 2032, 585, 2344, 585, 585, 2348, 585, 585, 585, 2352, 585, 585, 585, 585, 585, 585, 585, 1528, 585, 585, 585, 585, 585, 585, 1538, 585, 585, 585, 585, 2361, 585, 585, 2364, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1935, 1936, 585, 585, 585, 585, 1943, 585, 585, 2400, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 585, 561, 540, 2718, 540, 540, 0, 0, 0, 2437, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2794, 0, 0, 0, 0, 2473, 0, 0, 0, 2477, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2511, 0, 540, 540, 2525, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2532, 540, 540, 540, 540, 1324, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1330, 540, 540, 540, 540, 540, 540, 2550, 540, 540, 2552, 540, 2553, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2193, 540, 540, 2196, 540, 540, 540, 540, 2563, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2574, 540, 540, 540, 540, 2827, 2828, 540, 540, 540, 540, 2831, 540, 540, 540, 540, 540, 540, 540, 1751, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1351, 540, 540, 540, 540, 540, 540, 0, 0, 0, 561, 561, 2587, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2264, 561, 561, 561, 561, 2269, 561, 561, 561, 2594, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2871, 561, 561, 2609, 561, 561, 561, 2612, 561, 561, 2614, 561, 2615, 561, 561, 561, 561, 561, 929, 561, 937, 561, 561, 561, 561, 561, 561, 561, 561, 2629, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2623, 561, 561, 2627, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2290, 2291, 561, 561, 561, 561, 561, 561, 561, 0, 2327, 585, 585, 585, 585, 585, 585, 585, 1507, 585, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 3284, 540, 3286, 561, 561, 561, 561, 2638, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3099, 561, 561, 561, 0, 0, 2733, 2734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3002, 0, 0, 0, 2785, 0, 2787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2432, 0, 0, 0, 0, 0, 0, 2800, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 3217, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3042, 540, 3044, 540, 540, 540, 540, 540, 540, 2848, 540, 540, 540, 0, 0, 561, 561, 561, 561, 561, 561, 561, 2318, 561, 561, 561, 561, 561, 0, 0, 0, 561, 561, 2859, 561, 2862, 561, 561, 561, 561, 2867, 561, 561, 561, 2870, 561, 561, 561, 561, 2302, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 940, 561, 561, 561, 561, 561, 561, 561, 561, 1394, 561, 561, 561, 561, 561, 561, 561, 1402, 561, 561, 561, 2896, 561, 561, 561, 0, 0, 585, 585, 585, 585, 585, 585, 585, 1529, 585, 585, 585, 585, 585, 585, 585, 585, 2661, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2907, 585, 2910, 585, 585, 585, 585, 2915, 585, 585, 585, 2918, 585, 585, 585, 585, 585, 1527, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2367, 585, 585, 585, 585, 585, 585, 585, 585, 2944, 585, 585, 585, 561, 540, 585, 585, 561, 540, 540, 561, 561, 585, 585, 3373, 0, 0, 0, 3375, 0, 0, 2980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2979, 2991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3005, 0, 3006, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2989, 0, 561, 561, 561, 561, 3078, 561, 561, 561, 561, 561, 561, 561, 561, 3086, 561, 561, 561, 561, 2315, 561, 561, 561, 561, 561, 561, 561, 561, 0, 0, 2327, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3273, 585, 585, 585, 585, 585, 585, 561, 561, 585, 585, 585, 3107, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1969, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3119, 585, 585, 585, 585, 585, 585, 585, 585, 3127, 585, 585, 585, 585, 585, 1901, 540, 585, 585, 561, 540, 540, 540, 540, 561, 561, 3065, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3479, 585, 585, 585, 585, 585, 0, 3159, 0, 0, 0, 0, 0, 0, 0, 3165, 0, 0, 0, 0, 0, 0, 0, 3176, 0, 0, 3304, 0, 0, 0, 0, 0, 0, 3191, 0, 0, 0, 0, 0, 0, 3195, 3196, 0, 0, 0, 0, 540, 540, 3601, 540, 3602, 540, 540, 540, 540, 540, 540, 540, 540, 1752, 540, 540, 540, 540, 540, 540, 540, 540, 1349, 540, 540, 540, 540, 540, 540, 540, 540, 1288, 540, 540, 540, 540, 540, 540, 540, 540, 1289, 540, 540, 540, 540, 540, 540, 540, 540, 1290, 540, 540, 540, 540, 1300, 540, 540, 3279, 585, 585, 585, 585, 585, 585, 585, 561, 540, 585, 561, 540, 540, 561, 561, 561, 561, 2611, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2304, 561, 561, 561, 561, 561, 561, 561, 561, 561, 1853, 561, 561, 561, 561, 561, 561, 540, 540, 540, 540, 3317, 540, 540, 540, 3321, 540, 540, 540, 540, 540, 540, 540, 540, 2192, 540, 540, 540, 540, 540, 540, 2198, 561, 561, 561, 3339, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2628, 561, 561, 561, 561, 561, 561, 561, 561, 2305, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3348, 561, 561, 561, 585, 585, 585, 585, 585, 3353, 585, 585, 585, 3357, 561, 561, 3572, 561, 561, 561, 561, 561, 561, 561, 561, 3580, 585, 585, 585, 3584, 3597, 0, 3598, 3599, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3605, 3606, 540, 540, 540, 540, 2837, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1803, 540, 540, 540, 540, 585, 585, 585, 585, 585, 3619, 3620, 585, 561, 0, 0, 3623, 0, 0, 0, 540, 585, 585, 561, 540, 540, 895, 540, 540, 561, 561, 967, 561, 561, 3671, 585, 3672, 0, 540, 561, 585, 0, 540, 561, 585, 0, 540, 561, 585, 585, 585, 585, 585, 1079, 1559, 0, 0, 0, 1565, 0, 0, 0, 1571, 2033, 0, 0, 0, 0, 1577, 2035, 0, 0, 0, 0, 0, 0, 0, 1682, 0, 1684, 0, 0, 0, 0, 0, 0, 0, 1712, 0, 0, 1715, 0, 0, 0, 0, 0, 355, 356, 0, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 0, 0, 0, 2768, 0, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3198, 0, 540, 540, 473, 473, 487, 0, 0, 487, 356, 356, 356, 509, 356, 356, 356, 356, 473, 473, 580, 580, 580, 580, 580, 580, 580, 604, 604, 604, 557, 604, 604, 604, 604, 604, 580, 580, 557, 580, 604, 580, 604, 1, 12290, 3, 78112, 540, 870, 540, 540, 540, 540, 540, 540, 540, 540, 540, 904, 540, 540, 540, 540, 540, 540, 2191, 540, 540, 540, 540, 2195, 540, 2197, 540, 540, 561, 561, 976, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 1013, 1197, 0, 0, 0, 0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 540, 540, 540, 540, 540, 540, 540, 1360, 914, 561, 561, 561, 561, 561, 561, 561, 561, 1371, 561, 561, 561, 1380, 561, 561, 561, 561, 2639, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2644, 561, 561, 561, 561, 585, 585, 585, 1462, 585, 585, 585, 1471, 585, 585, 585, 585, 585, 585, 585, 585, 1472, 585, 1477, 585, 585, 1481, 585, 585, 1541, 561, 0, 1291, 585, 1471, 1380, 540, 540, 540, 540, 540, 561, 561, 561, 561, 585, 585, 585, 585, 0, 0, 0, 0, 2727, 0, 0, 0, 0, 0, 1576, 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2737, 0, 0, 0, 0, 0, 2741, 0, 1607, 0, 0, 0, 0, 0, 0, 0, 1615, 1616, 0, 0, 0, 0, 0, 0, 303, 204800, 204800, 0, 205103, 204800, 1, 12290, 3, 0, 1761, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 1774, 1891, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3087, 561, 561, 561, 561, 1911, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 585, 585, 1466, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2928, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1947, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2001, 585, 585, 585, 585, 585, 585, 585, 1960, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1973, 0, 0, 2243, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2634, 561, 561, 2328, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2384, 0, 0, 0, 0, 2425, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2085, 2086, 0, 0, 0, 0, 2449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3175, 0, 0, 0, 0, 561, 561, 561, 561, 561, 561, 2590, 561, 561, 561, 561, 561, 561, 2289, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2292, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2861, 561, 2863, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2877, 561, 561, 561, 561, 561, 561, 561, 561, 1899, 561, 561, 561, 561, 561, 1905, 561, 585, 585, 585, 2909, 585, 2911, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1984, 585, 585, 585, 585, 585, 585, 585, 3360, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1056, 585, 561, 0, 3556, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3567, 540, 561, 561, 561, 561, 2876, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 26027, 0, 585, 585, 585, 585, 561, 561, 561, 561, 3656, 561, 585, 585, 585, 585, 3660, 585, 0, 0, 0, 0, 0, 0, 2775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2124, 0, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1147354, 0, 0, 0, 0, 0, 0, 0, 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2509, 0, 0, 357, 0, 367, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2457, 0, 0, 581, 581, 581, 581, 581, 581, 581, 605, 605, 605, 558, 605, 605, 605, 605, 605, 581, 581, 558, 581, 605, 581, 605, 1, 12290, 3, 78112, 865, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2575, 1385, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3243, 561, 1775, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3047, 585, 585, 585, 585, 1961, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2380, 585, 585, 585, 585, 2756, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3315, 0, 2981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3188, 0, 3298, 0, 3299, 0, 0, 0, 0, 3176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3388, 0, 0, 0, 0, 358, 359, 360, 361, 0, 0, 362, 0, 290, 0, 0, 0, 0, 0, 0, 2973, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 362, 702, 0, 0, 0, 0, 359, 0, 358, 0, 0, 0, 69632, 73728, 0, 0, 0, 0, 425, 65536, 0, 0, 0, 0, 1710, 1711, 0, 0, 0, 1714, 0, 0, 0, 0, 0, 1718, 425, 425, 0, 425, 0, 359, 425, 0, 456, 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 0, 1263, 1264, 0, 0, 0, 0, 0, 497, 497, 0, 504, 504, 504, 504, 510, 511, 504, 504, 524, 524, 524, 524, 456, 456, 456, 456, 456, 456, 456, 456, 524, 524, 524, 524, 524, 524, 524, 559, 582, 559, 582, 559, 559, 582, 559, 606, 582, 582, 582, 582, 582, 582, 582, 606, 606, 606, 559, 606, 606, 606, 606, 606, 582, 582, 620, 625, 606, 625, 631, 1, 12290, 3, 78112, 0, 0, 0, 540, 585, 585, 561, 540, 540, 900, 540, 540, 561, 561, 972, 561, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 1934, 585, 585, 585, 585, 585, 585, 585, 0, 0, 2104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2740, 0, 0, 0, 0, 0, 561, 2245, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3533, 585, 585, 585, 585, 585, 585, 585, 585, 585, 3494, 561, 0, 0, 0, 0, 0, 0, 585, 2330, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 1482, 585, 585, 540, 2549, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2237, 0, 540, 540, 2577, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 0, 0, 0, 0, 0, 1611, 0, 0, 1614, 0, 0, 0, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2891776, 0, 0, 0, 0, 0, 2392064, 583, 583, 583, 583, 583, 583, 583, 607, 607, 607, 560, 607, 607, 607, 607, 607, 583, 583, 560, 583, 607, 583, 607, 1, 12290, 3, 78112, 705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155648, 866, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 3224, 1136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, 362, 0, 0, 0, 0, 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 780, 0, 0, 0, 0, 786, 561, 585, 585, 585, 585, 585, 1079, 1560, 0, 0, 0, 1566, 0, 0, 0, 1572, 0, 0, 0, 1578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3313, 0, 0, 540, 2199, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2547, 540, 2535, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 2822, 540, 561, 561, 561, 2597, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2317, 561, 561, 2320, 2321, 561, 561, 0, 0, 0, 0, 0, 0, 647, 0, 0, 0, 0, 0, 0, 743, 540, 540, 540, 540, 540, 540, 540, 3331, 540, 540, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3072, 561, 561, 561, 0, 0, 0, 540, 585, 585, 561, 1064, 540, 540, 905, 540, 1069, 561, 561, 977, 561, 561, 561, 561, 0, 585, 585, 585, 585, 585, 585, 585, 585, 1951, 585, 585, 585, 585, 585, 585, 585, 0, 0, 1594, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2767, 0, 0, 561, 561, 1846, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2645, 561, 561, 585, 585, 585, 1977, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2692, 585, 585, 585, 540, 540, 540, 2188, 540, 2190, 540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 561, 561, 561, 3334, 561, 561, 0, 0, 0, 561, 561, 561, 2247, 561, 561, 561, 561, 561, 561, 561, 561, 561, 2613, 561, 561, 561, 561, 561, 561, 561, 2619, 561, 561, 2273, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 3242, 561, 561, 0, 585, 585, 585, 2332, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2408, 540, 585, 585, 561, 561, 2647, 0, 0, 0, 0, 0, 0, 585, 585, 585, 585, 585, 585, 585, 585, 2687, 585, 585, 2691, 585, 585, 585, 585, 585, 585, 585, 585, 2684, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 585, 2916, 585, 585, 585, 585, 561, 561, 585, 585, 585, 585, 585, 3109, 585, 585, 585, 585, 585, 585, 585, 585, 2702, 585, 585, 585, 585, 585, 585, 585, 0, 1134592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225706, 0, 0, 1134592, 0, 0, 0, 1134592, 1134592, 0, 0, 1134592, 0, 0, 1134592, 0, 1134592, 0, 0, 0, 1134592, 1135005, 1135005, 0, 0, 0, 0, 0, 1135005, 0, 1134592, 1134592, 0, 0, 0, 0, 1135202, 1135202, 1135202, 1135202, 1134592, 1135202, 1135202, 1135202, 1135202, 1135202, 0, 1134592, 1134592, 1134592, 1134592, 1135202, 1134592, 1135202, 1, 12290, 3, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 1138688, 0, 0, 0, 0, 0, 1670, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2125824, 2126738, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 987, 2125824, 2125824, 2125824, 2125824, 2424832, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 1147354, 457, 457, 1147354, 457, 457, 457, 457, 457, 457, 457, 457, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 1147405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2792, 0, 0, 0, 0, 0, 0, 457, 0, 0, 0, 1147354, 1147354, 1147354, 1147405, 1147405, 1147354, 1147405, 1147405, 1, 12290, 3, 0, 0, 0, 0, 2042, 0, 0, 2045, 2046, 0, 0, 0, 2050, 0, 0, 0, 0, 0, 680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1221, 0, 0, 0, 0, 0, 0, 1142784, 0, 2179072, 2125824, 2125824, 2125824, 2179072, 2179072, 2179072, 2179072, 2179072, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 3137536, 2125824, 2940928, 2940928, 2940928, 0, 0, 0, 0, 0, 0, 305, 440, 448, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 462, 1159168, 0, 0, 1159168, 0, 1159168, 1159168, 0, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2802, 0, 540, 540, 540, 540, 540, 1159168, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 0, 1159168, 1159168, 0, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1159168, 1, 12290, 3, 0, 0, 0, 0, 2053, 0, 2054, 0, 0, 0, 0, 0, 0, 0, 0, 0, 799, 0, 799, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1163264, 0, 0, 0, 0, 0, 155648, 155648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 913, 2125824, 2125824, 2125824, 2125824, 2424832, 2433024, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 0, 0, 1452, 2125824, 2125824, 2125824, 2125824, 2424832, 106496, 0, 106496, 106496, 0, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 0, 0, 106496, 0, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 106496, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 0, 0, 0, 0, 2134016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2782, 2783, 0, 0, 0, 0, 3117056, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163840, 0, 0, 0, 0, 3043328, 0, 3149824, 2936832, 0, 2760704, 0, 0, 0, 0, 0, 2953216, 0, 0, 2826240, 2875392, 0, 0, 0, 0, 0, 0, 2834432, 0, 3227648, 2568192, 0, 0, 0, 0, 2564096, 0, 2748416, 2879488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2179072, 2179072, 2179072, 3137536, 2125824, 2125824, 2498560, 2125824, 2125824, 2125824, 2555904, 2564096, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2125824, 2654208, 2678784, 2760704, 2764800, 2785280, 2854912, 2969600, 2125824, 3006464, 2125824, 3018752, 2125824, 2125824
-];
-
-XQueryParser.EXPECTED =
-[ 260, 268, 276, 283, 296, 304, 881, 312, 318, 331, 366, 339, 350, 361, 369, 342, 288, 886, 1555, 1545, 377, 384, 1551, 392, 400, 415, 423, 431, 439, 447, 455, 463, 486, 553, 490, 500, 500, 499, 498, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 353, 1871, 509, 517, 525, 1149, 688, 533, 1759, 407, 548, 949, 561, 323, 569, 1480, 1303, 866, 577, 1034, 592, 596, 1439, 1444, 604, 1857, 628, 636, 644, 1919, 1049, 652, 673, 660, 668, 681, 696, 995, 710, 718, 731, 1324, 739, 761, 1116, 776, 784, 792, 1170, 1200, 1204, 807, 843, 851, 859, 894, 902, 910, 723, 918, 926, 934, 942, 753, 957, 1568, 965, 980, 611, 988, 1738, 1003, 1011, 616, 1185, 1827, 871, 1539, 1029, 1042, 1418, 584, 1424, 972, 1057, 1065, 1073, 1598, 1087, 1095, 1103, 1111, 1134, 1142, 768, 478, 1163, 1289, 620, 1155, 1178, 876, 1620, 1643, 1193, 702, 1812, 799, 1789, 1212, 1753, 1218, 1226, 1234, 1242, 500, 1250, 1258, 828, 1266, 1274, 1282, 1297, 1850, 1311, 1319, 1332, 1079, 540, 1345, 1017, 1337, 1359, 1021, 1367, 1375, 1390, 1398, 1403, 1411, 1432, 1452, 1460, 1468, 1476, 1488, 1496, 1382, 1516, 1524, 1532, 1563, 1576, 746, 1584, 1592, 1502, 1606, 1614, 814, 1628, 1636, 469, 821, 1661, 1665, 1673, 1678, 1686, 1694, 1702, 1710, 1718, 501, 1726, 1734, 1746, 1767, 1775, 1783, 1351, 1126, 1797, 1805, 1121, 835, 1820, 474, 1835, 1843, 1865, 1508, 1879, 1649, 1653, 1887, 1892, 1900, 1908, 1916, 500, 500, 1927, 1975, 1928, 1939, 1939, 1939, 1934, 1938, 1939, 1930, 1943, 1950, 1946, 1954, 1958, 1961, 1964, 1968, 1972, 1979, 2007, 2007, 2007, 3094, 2007, 1983, 3521, 2007, 2812, 2007, 2007, 2007, 2007, 2779, 2007, 2007, 2132, 2007, 4152, 3820, 3824, 1987, 2098, 1994, 2000, 2006, 2007, 2007, 3996, 2007, 2007, 2012, 4079, 3820, 3824, 3824, 3824, 3824, 2019, 2097, 2097, 2026, 2170, 2032, 2007, 2007, 2007, 2007, 2919, 2007, 2428, 3887, 2007, 3734, 2038, 2089, 2007, 2007, 2007, 3390, 3824, 3824, 2045, 2097, 2097, 2097, 2097, 2097, 2099, 1996, 2067, 2059, 2063, 2003, 2007, 2007, 2007, 2007, 2007, 2259, 3005, 2007, 3049, 2007, 2007, 2007, 3818, 3820, 3820, 3820, 3820, 2133, 3824, 3824, 3824, 3824, 3824, 2055, 3820, 2139, 3824, 3824, 3824, 3827, 2097, 2097, 2022, 2072, 2007, 2007, 4080, 2007, 2162, 2077, 2007, 2007, 2779, 3400, 3820, 3820, 2053, 3824, 3825, 2097, 2097, 2084, 2072, 2088, 4151, 2385, 2007, 2007, 2007, 2007, 3112, 2752, 3820, 2052, 3824, 2095, 2097, 2104, 2778, 2050, 3823, 2095, 2115, 2129, 3821, 3826, 1989, 3390, 3822, 3827, 1990, 2137, 2141, 2149, 3819, 2141, 2159, 2167, 2048, 2174, 2028, 2181, 2184, 2188, 2192, 2202, 2202, 2193, 2197, 2201, 2203, 2207, 2211, 2215, 2219, 2222, 2226, 2230, 2234, 2238, 2732, 2242, 2007, 2007, 2737, 2247, 2007, 2007, 2007, 3028, 4134, 2007, 2007, 2007, 3213, 2007, 2007, 2007, 2007, 2702, 3310, 2007, 3694, 2243, 2007, 4531, 2253, 2007, 2007, 2007, 2007, 2007, 4488, 2007, 2007, 2007, 4489, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 4297, 2280, 2282, 2286, 2289, 2293, 2297, 2301, 2662, 2386, 2007, 2007, 2007, 2007, 2387, 2307, 2314, 2318, 4376, 4208, 2325, 2681, 3075, 3584, 2645, 2353, 2359, 2620, 2007, 2007, 2381, 2363, 2007, 2007, 3675, 2007, 3534, 4411, 3291, 4070, 3348, 2391, 2007, 2395, 2399, 2007, 2007, 2007, 2007, 3092, 3298, 2007, 2007, 2402, 2007, 2007, 2007, 3382, 2007, 2007, 2418, 3423, 2432, 2007, 2007, 2007, 2007, 2797, 2433, 2797, 2457, 2007, 2007, 2007, 2007, 2463, 2007, 2007, 3716, 3131, 2917, 2007, 2007, 3777, 4457, 4344, 2470, 2007, 2007, 2007, 2477, 2007, 2007, 2007, 2484, 2007, 2107, 3702, 2007, 3700, 2493, 2007, 2111, 2007, 2007, 3723, 3037, 2007, 2007, 2007, 2090, 3072, 2007, 2007, 2007, 2007, 2261, 3346, 2007, 2007, 2500, 2007, 2505, 4255, 4115, 4254, 2007, 4238, 2510, 4117, 3651, 3491, 2511, 4118, 4239, 4255, 3650, 4117, 2516, 4116, 4117, 3593, 3670, 3596, 2528, 2531, 2535, 2538, 2542, 2007, 3509, 2620, 4365, 4173, 2562, 2566, 2570, 2007, 2674, 2672, 3782, 2574, 2007, 3457, 2579, 2007, 2501, 2007, 4424, 3255, 2555, 2588, 4214, 4424, 4450, 2584, 2592, 2599, 3102, 4176, 2007, 2007, 3778, 2008, 2342, 4482, 2348, 4126, 4353, 2007, 2007, 2007, 2721, 2607, 2007, 2007, 2007, 3379, 2007, 2007, 2007, 3480, 2619, 2007, 4362, 2007, 4150, 4231, 2625, 4223, 2632, 2636, 2007, 4444, 2654, 2007, 2007, 2007, 2007, 3897, 2007, 2007, 4225, 2675, 2642, 2007, 2007, 2007, 2007, 4443, 2653, 4024, 2007, 4424, 4341, 2118, 4304, 2679, 2007, 2007, 3794, 2734, 2268, 4056, 2403, 2007, 2007, 3896, 2007, 2655, 2910, 4541, 3011, 2685, 2775, 2007, 2007, 2007, 3576, 2686, 2007, 2007, 4010, 3290, 2007, 2007, 3151, 3295, 3238, 2007, 2697, 2007, 3451, 2403, 4245, 2586, 4285, 2701, 3577, 2715, 2007, 2007, 2007, 3620, 2706, 2007, 2007, 2007, 2007, 2713, 2775, 2007, 2007, 4082, 3399, 2007, 2007, 4082, 3399, 2741, 2769, 2855, 2774, 2007, 3410, 2751, 2007, 2007, 4104, 2007, 2007, 2007, 2007, 2506, 4140, 4109, 4114, 3788, 2803, 4147, 2007, 2007, 4385, 3699, 2007, 3534, 4411, 2007, 2041, 4469, 4448, 2007, 2007, 2007, 2709, 3410, 2751, 2702, 2784, 3450, 4048, 2121, 2770, 3436, 2007, 3434, 3438, 2007, 2791, 2007, 2795, 2801, 2328, 2810, 2787, 2452, 2816, 2453, 2007, 2443, 2450, 2424, 2465, 2007, 2007, 2007, 2007, 3098, 2007, 2007, 2007, 2007, 3372, 2007, 2007, 2007, 2007, 3389, 3820, 3820, 3820, 2163, 3824, 3824, 3824, 3824, 4039, 2821, 2787, 2832, 2786, 3985, 2838, 2843, 4030, 3312, 2839, 2844, 4031, 4431, 2848, 2834, 2852, 2859, 2860, 2177, 2864, 3301, 4460, 4463, 2871, 4547, 2875, 2879, 2883, 2886, 2890, 2894, 2897, 2899, 2900, 2007, 2007, 2904, 2007, 3808, 2910, 4541, 3081, 2914, 2007, 2007, 2924, 2928, 2937, 2944, 2952, 2961, 2968, 3274, 2970, 2007, 2473, 2408, 2007, 2007, 2007, 2007, 2414, 3024, 2007, 2495, 2976, 2980, 4495, 4081, 2986, 2999, 2007, 2007, 2007, 2007, 2007, 3335, 2007, 2489, 2007, 3285, 2007, 3286, 2007, 3109, 2656, 3009, 3015, 3021, 3139, 2007, 4251, 2344, 3032, 2007, 2007, 2007, 2007, 3722, 3036, 2007, 2612, 2007, 2007, 3782, 2574, 2007, 3508, 4541, 3046, 3053, 2702, 3058, 2007, 2007, 3062, 3067, 2007, 2007, 2007, 2007, 3063, 2007, 2007, 2007, 3691, 2007, 2007, 2007, 2007, 2338, 3741, 2007, 2007, 3119, 2007, 2007, 2007, 3125, 2007, 2007, 2007, 2550, 4047, 2007, 2007, 2920, 3125, 2007, 2007, 3428, 4501, 2355, 3026, 2007, 2615, 2654, 4143, 3807, 3464, 2520, 2524, 3111, 2918, 2007, 3114, 3109, 3780, 3113, 3150, 3110, 3781, 3147, 4236, 3779, 2920, 3137, 2919, 2920, 3489, 4183, 3144, 3155, 2155, 2007, 2007, 2007, 4522, 3741, 2007, 3667, 2007, 3121, 3163, 3167, 3171, 3175, 3179, 3183, 3187, 3191, 2007, 2007, 2817, 3354, 2007, 2765, 3195, 3974, 3201, 3218, 4237, 3222, 3226, 3236, 4136, 3242, 3713, 3038, 3248, 3246, 2007, 2007, 2007, 2575, 2690, 2007, 2007, 2007, 2007, 4428, 2007, 2007, 2007, 2249, 4402, 4409, 2007, 2007, 3231, 3253, 2007, 2765, 3195, 3974, 3259, 3475, 4398, 3265, 3269, 3278, 2007, 2007, 3282, 2007, 2647, 2638, 3815, 3004, 2336, 2007, 2007, 2007, 3352, 2007, 2765, 3195, 2780, 3316, 2068, 3260, 3320, 3417, 3327, 3333, 2007, 2719, 3457, 2007, 2725, 2730, 2741, 4471, 3360, 3364, 3407, 2007, 2007, 2007, 3368, 2007, 2736, 3608, 3079, 3085, 3140, 2702, 4437, 3054, 3399, 2007, 2007, 2007, 4081, 3398, 2007, 2745, 2007, 2007, 3576, 2749, 2007, 2007, 2719, 2756, 2763, 3971, 3448, 2007, 2007, 3455, 2007, 2007, 3455, 2007, 2255, 2007, 3975, 3472, 3484, 2007, 3497, 2971, 3449, 2972, 2007, 3503, 3273, 4555, 4530, 4554, 3513, 4094, 4553, 3271, 4553, 4095, 4554, 3272, 4093, 4528, 3271, 3515, 4528, 4529, 2007, 4379, 2620, 3519, 2007, 3525, 4151, 3529, 3538, 3542, 3546, 3550, 3554, 3558, 3562, 3566, 2828, 3729, 2918, 2410, 4192, 3571, 3230, 4556, 3575, 3581, 3356, 3619, 3590, 2007, 2007, 4378, 3676, 2007, 3534, 4488, 2007, 2948, 3600, 2007, 2867, 3355, 2007, 2007, 2007, 2007, 3339, 4185, 3612, 2007, 2007, 2580, 3618, 2007, 2007, 2549, 2551, 2386, 2007, 2007, 3132, 3630, 2007, 2007, 2608, 3641, 2007, 3647, 4412, 2007, 3655, 3866, 3249, 3663, 2007, 2007, 2007, 2660, 2007, 2007, 2666, 2007, 4405, 2007, 2007, 2007, 2007, 2337, 3687, 2007, 2594, 3230, 4081, 3698, 2007, 2805, 3682, 2007, 2007, 2007, 3686, 2007, 2007, 2824, 2007, 2007, 2007, 2007, 2826, 4487, 2995, 2957, 2349, 3606, 2007, 2007, 3706, 2007, 4081, 3710, 2007, 2595, 2007, 3720, 4485, 2946, 3727, 3068, 3733, 2007, 3738, 2620, 2007, 2940, 2777, 3753, 3945, 3949, 3954, 3868, 2007, 3747, 2620, 2007, 2007, 3747, 2620, 3751, 2378, 2034, 3757, 3764, 3636, 2007, 4288, 2007, 2007, 4288, 3428, 3769, 2466, 2015, 3765, 3773, 2007, 3786, 2007, 3127, 2007, 2954, 2007, 2007, 3775, 2007, 2007, 3775, 2007, 2007, 2956, 2007, 2548, 2459, 2007, 3792, 3751, 3798, 3760, 3637, 2602, 2007, 3149, 4508, 2110, 2488, 2007, 3701, 2494, 2007, 2007, 4046, 2007, 3780, 2603, 2007, 3802, 3806, 3812, 3837, 4356, 3836, 3831, 2331, 3835, 3677, 3841, 2332, 3836, 3678, 4221, 3854, 3848, 4359, 3847, 3845, 3852, 3877, 3863, 3874, 3881, 3884, 2007, 2007, 2007, 2007, 2480, 2437, 2007, 2007, 2964, 2776, 2007, 3893, 3901, 3905, 3909, 3913, 3917, 3921, 3925, 3929, 3933, 3937, 2007, 2007, 2982, 4068, 4074, 4253, 2007, 2007, 3212, 4493, 2007, 2007, 2007, 2248, 3959, 3964, 3968, 4202, 3979, 3983, 3989, 3950, 2007, 4000, 4007, 4014, 2007, 2007, 2963, 2421, 3753, 4019, 4023, 2040, 3626, 4028, 4035, 2007, 3229, 3106, 3743, 3026, 2726, 2007, 2007, 2007, 4080, 2007, 4152, 3820, 3820, 2054, 3824, 3824, 2096, 2097, 2097, 2097, 2097, 2100, 2143, 4043, 2007, 2007, 3205, 3209, 2007, 2007, 2007, 2990, 2994, 2007, 2007, 2248, 3207, 2007, 2007, 2007, 3197, 4052, 2310, 4253, 4060, 2669, 2007, 4114, 2007, 2007, 2007, 2628, 3210, 2007, 2007, 2007, 2506, 4064, 2007, 2007, 3232, 3254, 3975, 2007, 4119, 3159, 2962, 4078, 3753, 4086, 2404, 2007, 4090, 2620, 4114, 2007, 2007, 2007, 4099, 2620, 2007, 2007, 3376, 2007, 2007, 2007, 2007, 2933, 4100, 4108, 4113, 2007, 2439, 4123, 3603, 4423, 2007, 3870, 3133, 2007, 2007, 2007, 4130, 2007, 3386, 2068, 4158, 3394, 3506, 2007, 2007, 2007, 4526, 2007, 2007, 2007, 4526, 2007, 3992, 2370, 4535, 4156, 2920, 2007, 2007, 4162, 2007, 2007, 2007, 4162, 2558, 2007, 4166, 4170, 2007, 4180, 2007, 2007, 4189, 2007, 2007, 4196, 4200, 4206, 4212, 3859, 4218, 2007, 2693, 2007, 2007, 4229, 2007, 3586, 2152, 2145, 4235, 3487, 2007, 4243, 3642, 2775, 3643, 4249, 4440, 2806, 3659, 4259, 4264, 3657, 3857, 3940, 2080, 3658, 3858, 3941, 4274, 3939, 3857, 4278, 3856, 3857, 4282, 3017, 4292, 4293, 4270, 2321, 4301, 4003, 4311, 4315, 4319, 4323, 4327, 4330, 4334, 4338, 2007, 2007, 2007, 2007, 2621, 3230, 3492, 3042, 4267, 3478, 2931, 3955, 4350, 4514, 4396, 3306, 3462, 3468, 3444, 2007, 4516, 2007, 2007, 2446, 2007, 2007, 2007, 2759, 2375, 3002, 4369, 4307, 2007, 4015, 2007, 2546, 2544, 4373, 4383, 2007, 2007, 2007, 4389, 3478, 2931, 2068, 3670, 3532, 4437, 2007, 4393, 2007, 2007, 3427, 3432, 2303, 3443, 3422, 2007, 2007, 4416, 4081, 2007, 2091, 3671, 3422, 3203, 4420, 2007, 2007, 2007, 2007, 2007, 3342, 2007, 3388, 3404, 3414, 3421, 2007, 2254, 3381, 3994, 2931, 4346, 4454, 4260, 3567, 3304, 2007, 3439, 3100, 2007, 2007, 2007, 2007, 3089, 2007, 4467, 2007, 2007, 2007, 2007, 2007, 3214, 2124, 2007, 2007, 4475, 2365, 3889, 3499, 2007, 3616, 2007, 2007, 2007, 2337, 3624, 2007, 2906, 2007, 3329, 3633, 2007, 2499, 3960, 4434, 2007, 2007, 2007, 2007, 4479, 2007, 2007, 3493, 2265, 2007, 2272, 3323, 2276, 4499, 2125, 2007, 4505, 2367, 4512, 2007, 4520, 2512, 2007, 2007, 3211, 4539, 2007, 3211, 4539, 2073, 4037, 4454, 2007, 2007, 2007, 4545, 2007, 2649, 2007, 2007, 4551, 3115, 4157, 3422, 2007, 2369, 2007, 2370, 2007, 2371, 3261, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 3458, 2007, 2007, 2080, 4576, 4599, 4601, 4601, 4596, 4590, 4601, 4601, 5213, 4588, 4600, 4601, 4601, 4601, 4601, 4601, 4601, 4605, 4601, 4601, 4624, 4632, 4592, 4611, 4609, 4615, 4626, 4639, 4641, 4646, 4628, 4651, 4653, 4653, 4647, 4635, 4657, 4642, 4661, 4665, 4669, 4673, 4676, 4680, 4682, 4686, 4690, 4560, 6008, 4569, 4572, 6007, 4694, 4697, 4751, 6953, 4752, 5681, 6931, 4707, 6326, 4735, 4735, 4712, 4752, 4752, 5273, 4792, 6322, 4707, 4735, 5096, 4719, 4736, 5094, 5098, 4748, 4748, 4750, 4752, 4752, 4752, 4752, 4564, 5125, 5113, 4729, 5190, 6233, 4752, 5981, 4707, 4707, 4734, 4735, 4711, 4791, 6324, 5279, 4792, 6322, 4707, 4735, 6320, 4748, 4749, 4752, 4752, 4582, 6339, 6230, 4730, 5190, 4752, 4752, 4752, 6892, 4707, 4707, 6327, 4735, 4714, 6320, 6322, 6322, 6322, 6324, 4707, 4707, 4707, 4710, 4735, 4793, 4788, 6324, 4709, 4765, 5096, 5096, 4748, 4752, 4752, 4752, 4758, 4721, 4752, 4752, 4752, 4777, 4792, 4788, 4709, 4752, 4561, 4752, 5750, 4735, 4735, 4794, 6324, 4752, 5743, 4752, 4752, 4752, 4757, 4752, 4707, 4709, 4735, 4735, 4735, 4735, 4711, 4791, 6322, 4792, 5276, 4722, 4752, 4563, 5399, 6420, 4752, 6238, 5201, 5242, 4735, 4735, 4785, 4752, 4563, 5663, 4752, 4563, 6254, 5386, 5386, 5386, 4752, 4752, 4752, 5746, 4752, 6321, 6322, 6322, 6322, 6323, 6320, 6322, 6322, 6323, 4707, 4707, 4707, 4735, 4752, 4752, 4584, 5193, 4735, 4735, 4713, 4752, 4563, 6913, 6240, 6240, 6240, 6929, 4735, 4735, 4714, 5739, 6322, 6322, 6322, 6325, 6322, 6324, 4707, 4710, 4740, 5096, 5097, 4707, 4709, 4735, 4752, 4698, 4752, 6653, 4709, 5467, 5467, 5467, 4752, 5513, 5517, 5483, 4804, 4818, 4798, 4802, 4844, 4844, 4844, 4808, 4815, 4812, 4828, 4832, 4842, 4844, 4844, 4844, 4844, 4845, 4838, 4926, 4844, 4852, 4850, 4913, 4853, 4857, 4861, 4865, 4835, 4869, 4872, 4879, 4876, 4881, 4883, 4887, 4889, 4891, 4893, 4900, 4900, 4897, 4907, 4910, 4923, 4846, 4916, 4919, 4930, 4933, 4935, 4939, 4903, 4943, 4752, 4752, 4752, 4948, 4715, 4752, 4752, 4752, 4977, 6877, 4954, 4752, 4752, 4752, 4978, 6115, 4759, 4759, 4752, 4752, 4753, 6060, 5603, 6128, 4975, 4752, 4714, 4752, 6620, 4752, 6554, 6723, 6126, 4984, 5424, 5283, 4988, 4992, 4993, 4993, 4993, 4997, 5000, 5002, 5006, 5009, 5013, 5017, 5017, 5019, 5023, 5024, 5028, 5030, 5034, 5038, 5037, 5042, 5046, 4752, 4752, 4760, 5740, 4752, 5065, 4752, 5423, 4752, 4725, 4724, 4723, 4565, 5750, 4752, 5657, 4752, 5671, 5072, 4752, 4743, 4752, 5390, 5082, 4752, 6010, 4752, 4751, 5572, 6253, 5505, 4752, 5971, 6389, 5056, 4752, 4752, 4752, 5074, 5535, 6350, 4752, 4752, 6930, 5401, 4752, 5494, 4752, 4752, 4752, 5125, 4752, 6136, 6009, 4752, 5110, 6936, 6567, 5134, 5141, 5150, 5143, 5152, 4752, 4752, 4754, 4752, 4752, 4752, 4755, 4752, 4752, 4752, 4752, 6233, 6232, 4752, 4752, 6347, 4752, 4752, 6356, 5137, 5161, 5250, 4752, 4752, 4752, 5060, 6584, 5222, 5223, 5186, 4752, 6234, 5190, 6523, 5174, 5165, 5171, 5181, 4752, 4752, 4752, 5190, 4752, 5143, 5180, 4752, 4752, 4756, 6223, 4752, 6358, 5781, 5171, 4752, 6600, 5055, 5251, 4752, 5745, 4752, 4752, 6357, 5166, 4752, 5700, 4752, 6585, 5199, 5167, 5205, 5153, 4752, 5211, 5207, 4752, 4752, 4757, 5714, 4752, 5698, 4752, 5191, 5136, 5142, 5151, 5221, 6420, 4752, 4752, 4757, 5946, 5568, 5167, 6098, 6009, 4752, 5973, 4752, 5175, 5166, 6097, 5153, 4752, 4752, 4583, 6238, 5201, 5241, 4752, 4752, 6357, 5780, 6547, 5167, 5243, 4752, 4752, 6357, 5781, 4960, 4752, 6600, 5250, 5242, 4752, 4752, 4752, 5291, 5782, 5243, 4752, 4752, 4752, 5293, 6836, 6078, 4752, 4752, 4752, 5346, 5256, 4752, 4752, 4752, 5355, 4752, 6927, 4752, 4752, 4752, 5377, 5972, 4752, 4752, 6928, 5301, 5305, 5306, 5306, 5307, 5306, 5306, 5311, 5314, 5316, 5318, 5320, 5320, 5320, 5320, 5321, 5325, 5325, 5325, 5327, 5325, 5325, 5331, 5331, 4752, 4752, 4761, 6855, 4752, 4752, 4960, 4752, 4752, 4752, 5217, 4752, 6405, 5353, 5571, 4752, 6913, 6240, 5376, 5259, 4752, 5068, 5397, 4752, 5067, 5385, 5396, 4752, 6696, 6700, 5406, 4752, 4752, 4752, 5471, 5263, 4752, 4752, 4752, 5531, 6256, 5416, 4752, 5572, 4752, 5665, 4752, 5365, 4752, 5664, 4752, 4752, 4961, 4961, 4961, 5670, 4752, 6018, 4752, 4752, 6375, 6009, 4752, 6535, 4752, 4752, 4752, 5581, 5083, 5429, 6534, 4752, 4752, 6428, 6383, 5341, 6009, 4752, 4752, 4752, 5187, 5417, 4752, 5573, 4753, 5358, 6639, 6644, 6017, 4752, 6260, 6601, 4752, 6413, 4752, 4752, 4968, 5118, 5439, 5444, 5449, 4752, 4752, 6578, 5109, 4752, 4752, 4753, 6958, 5445, 5153, 4752, 4752, 4752, 5387, 6259, 6593, 5458, 4752, 4752, 5050, 5054, 5721, 5336, 5342, 4752, 4752, 6591, 4752, 4752, 6698, 4752, 4752, 4752, 5434, 5465, 6603, 4752, 4752, 5080, 4752, 6569, 5473, 5477, 5445, 6429, 5475, 5869, 5481, 4752, 4752, 6717, 6721, 4752, 5720, 5335, 5491, 6602, 4752, 4752, 4752, 5747, 5525, 5477, 5500, 4752, 4752, 6740, 6908, 6569, 5524, 5476, 5499, 6429, 4752, 4752, 6712, 4752, 4752, 5084, 5430, 6860, 4752, 4752, 4752, 5748, 5187, 4752, 4752, 5223, 4752, 5745, 6422, 4752, 4752, 4752, 6219, 4752, 5571, 4752, 5665, 6571, 5548, 5869, 5516, 5812, 5477, 5871, 4752, 4752, 4752, 5750, 5720, 5335, 5504, 4752, 4752, 6868, 5157, 4752, 6861, 4752, 4752, 5111, 6426, 5386, 5748, 5510, 4752, 4752, 5870, 6429, 4752, 4752, 4752, 5746, 4752, 4752, 4752, 4760, 5529, 4752, 4752, 5560, 5567, 4752, 4752, 4757, 5546, 5554, 6429, 4752, 6713, 4752, 4752, 5191, 5176, 5559, 5113, 4752, 4752, 5192, 4752, 4752, 4752, 6727, 4752, 6319, 4752, 4752, 5228, 4752, 5568, 4752, 4752, 4752, 5811, 5225, 6277, 5386, 4752, 4752, 6874, 6878, 4752, 4752, 6206, 4752, 5720, 5814, 5569, 4752, 5687, 5691, 5225, 6255, 6934, 5689, 5570, 5570, 4752, 5944, 5690, 4752, 5689, 5570, 4752, 5688, 4752, 6238, 5563, 4752, 4753, 5522, 5548, 5687, 5577, 4752, 5687, 5577, 6238, 5401, 6651, 4752, 4753, 6054, 6070, 5386, 6364, 5586, 6009, 6256, 5600, 4752, 6419, 5378, 5602, 5607, 5620, 5611, 5619, 5614, 5615, 5615, 5615, 5615, 5624, 5631, 5628, 5635, 5637, 5637, 5637, 5642, 5638, 5646, 5646, 5646, 5646, 4752, 4752, 6449, 4752, 4752, 5247, 5251, 6259, 4778, 5412, 6009, 4752, 5705, 4752, 6945, 4752, 4752, 4752, 6239, 4752, 4752, 5678, 4752, 4752, 5650, 4752, 5656, 5652, 4752, 4756, 4752, 4752, 6103, 4752, 5661, 5669, 5675, 4752, 4757, 5847, 5927, 4752, 5685, 4752, 6232, 4752, 5377, 6310, 4752, 4752, 5695, 4752, 4752, 5289, 5389, 4752, 4752, 5957, 6439, 4752, 4752, 4752, 5845, 5211, 5251, 4752, 6437, 6441, 4752, 4752, 4752, 5860, 4581, 5709, 4752, 4752, 5227, 4752, 5718, 4752, 4752, 5356, 6055, 5761, 5726, 5732, 5738, 4752, 5759, 5763, 5728, 5734, 4752, 4752, 4752, 5980, 5762, 5727, 5733, 4752, 4758, 4752, 4752, 6124, 5052, 5056, 4779, 6862, 4752, 4752, 5380, 5228, 4752, 5767, 6936, 4752, 6937, 6934, 5378, 4752, 5228, 5704, 4752, 4752, 6947, 4752, 4752, 5356, 5549, 5774, 5786, 6683, 5251, 5787, 6684, 4752, 4752, 4752, 5990, 6258, 4778, 5412, 6009, 4752, 6557, 5986, 4752, 4775, 4752, 5744, 6946, 4752, 4752, 4752, 6094, 6233, 4752, 4752, 5791, 4752, 5805, 6900, 6682, 6686, 6686, 4752, 4752, 4752, 6117, 5774, 6902, 6684, 4752, 4950, 5088, 5102, 5411, 6870, 4752, 4752, 5380, 6635, 5768, 6937, 5802, 4744, 5810, 6902, 6685, 4752, 4959, 4752, 4752, 4702, 4752, 4752, 5809, 6901, 5818, 4752, 4752, 5421, 4954, 4752, 5798, 4780, 6870, 5972, 4752, 4752, 4752, 6241, 4752, 4752, 4752, 5188, 6000, 5824, 5251, 4752, 4752, 5842, 5822, 5828, 4752, 4752, 5453, 5153, 5281, 4752, 4752, 4752, 6238, 6233, 6238, 4752, 4752, 5971, 5570, 4752, 4752, 6241, 5972, 4752, 6241, 4752, 4752, 6238, 4752, 4752, 4752, 5230, 6239, 4752, 6241, 5973, 5838, 5237, 4752, 6254, 6635, 5226, 5851, 6443, 5858, 5866, 5875, 5879, 5884, 5886, 5880, 5890, 5893, 5896, 5899, 5901, 5903, 5907, 5907, 5913, 5907, 5907, 5909, 5920, 5921, 5917, 5917, 5919, 5917, 5917, 5918, 5917, 5931, 5265, 4752, 4752, 5460, 5360, 4757, 4752, 6931, 4752, 4752, 4752, 5461, 5361, 6613, 5542, 4752, 4752, 4752, 6896, 5776, 6882, 4752, 4752, 5742, 5936, 5195, 4752, 6225, 5942, 6564, 5950, 5953, 5961, 4752, 4961, 4752, 4752, 4752, 6000, 6367, 5966, 6419, 4752, 4752, 5487, 4752, 6294, 4752, 6293, 5985, 4752, 5990, 5994, 4752, 4752, 4752, 6298, 6367, 5927, 4752, 4752, 4752, 6243, 4759, 6930, 4752, 4752, 5741, 4752, 4752, 6938, 6005, 6421, 6050, 6014, 4752, 4752, 5505, 4752, 4752, 4752, 6437, 4752, 6209, 5755, 5755, 6022, 6026, 6110, 4752, 4962, 4961, 4752, 4752, 6111, 4752, 4752, 4752, 6317, 6031, 6026, 6110, 4752, 4966, 4752, 5225, 5398, 4752, 5400, 4752, 4752, 4752, 6254, 4752, 6366, 5926, 4752, 4752, 5561, 5225, 5266, 4752, 4752, 5224, 6352, 4752, 6628, 4752, 4972, 5386, 5066, 6048, 5970, 4752, 4752, 5573, 5398, 4752, 6208, 4752, 4752, 5596, 4752, 6059, 5779, 6064, 4752, 4977, 4821, 6882, 6069, 6065, 4752, 4752, 5699, 4752, 4752, 6001, 5925, 5251, 4752, 4752, 4752, 6247, 4752, 5739, 4752, 6353, 4752, 6629, 4752, 5973, 4752, 6569, 6074, 6089, 6569, 6084, 6088, 5251, 6082, 6086, 6090, 4752, 4979, 4579, 4752, 4752, 4752, 6422, 4752, 6423, 6722, 4752, 4752, 4752, 6321, 6322, 5389, 6627, 4752, 5971, 4980, 4580, 4752, 4752, 4752, 6320, 4757, 4752, 5740, 4752, 5075, 5968, 4752, 4977, 5523, 6665, 6354, 6627, 4752, 5972, 4752, 4752, 6036, 4753, 6937, 4752, 4752, 4752, 6418, 6252, 4752, 4752, 4752, 6423, 6860, 6869, 4752, 4752, 5720, 5813, 5555, 4752, 4752, 4752, 5809, 6354, 6627, 4752, 4753, 6937, 4978, 4581, 4752, 4752, 4752, 6429, 4752, 4979, 4581, 4752, 4752, 5722, 5337, 5263, 4752, 6861, 6870, 4752, 5287, 5297, 4758, 4752, 5742, 6353, 6860, 6869, 4758, 5740, 5390, 5998, 6234, 4752, 4752, 4752, 6102, 4752, 5386, 6234, 5505, 6935, 4755, 6239, 4752, 5971, 4752, 4752, 4752, 5386, 4754, 5720, 4581, 4752, 4752, 5741, 6936, 4752, 6863, 5739, 4752, 5076, 4752, 4752, 5720, 5335, 5341, 4752, 6869, 4752, 6313, 4752, 6311, 4752, 6608, 4752, 4752, 5745, 4752, 6259, 4752, 4618, 6121, 6232, 6230, 6230, 5741, 6935, 4752, 4752, 6201, 5189, 4752, 6134, 6132, 6140, 6144, 6151, 6145, 6145, 6150, 6146, 6155, 6159, 6163, 6167, 6169, 6174, 6176, 6169, 6169, 6170, 6186, 6187, 6180, 6180, 6185, 6180, 6180, 6181, 6191, 4752, 4752, 4752, 6545, 6229, 6841, 5573, 5061, 6250, 4752, 4752, 4752, 6569, 5524, 4752, 6247, 6251, 4752, 5107, 4752, 4752, 4753, 6719, 6266, 6265, 6267, 4752, 5110, 4752, 5111, 4752, 5113, 5111, 4752, 5956, 4752, 5192, 4752, 6621, 5747, 6333, 4752, 4752, 5797, 5191, 6271, 6276, 5252, 4961, 4752, 6281, 6287, 6251, 4752, 4752, 4752, 6570, 6286, 6291, 4752, 4752, 5751, 4752, 5833, 5832, 5831, 4752, 5110, 6077, 4752, 4752, 6362, 4752, 4752, 4770, 4752, 4752, 4752, 6717, 5589, 4752, 6202, 5190, 4752, 5110, 6929, 4752, 4752, 6307, 4752, 4752, 6934, 4752, 4752, 4752, 6934, 4759, 6304, 5573, 4961, 5831, 5831, 5831, 4752, 5112, 4752, 4752, 5742, 5580, 4769, 6009, 4752, 4752, 6387, 4752, 5126, 4752, 6331, 4961, 4753, 5534, 5538, 5542, 4752, 6282, 5536, 5540, 4752, 5112, 6427, 5932, 5582, 4771, 4752, 4752, 4752, 6546, 5782, 5243, 4752, 5579, 5536, 5540, 5862, 5538, 5542, 4752, 5114, 5993, 4752, 4961, 4752, 5797, 4768, 5153, 4752, 4752, 5804, 6899, 5787, 6318, 4752, 4752, 5957, 4752, 6213, 6334, 4752, 4752, 4752, 6731, 4752, 6234, 6343, 5539, 6009, 4752, 4752, 5769, 4752, 4752, 5938, 6343, 5539, 4752, 6425, 4961, 4752, 5193, 4752, 4752, 6231, 4752, 5377, 5401, 4752, 6254, 6318, 4752, 4752, 6255, 4752, 6425, 4752, 4752, 5409, 6311, 4961, 4752, 4752, 5823, 4752, 4752, 4752, 6240, 4752, 4752, 4752, 5103, 5454, 6009, 4752, 4752, 5844, 5146, 5452, 6377, 4752, 4752, 5846, 5145, 6860, 6009, 4752, 5190, 6375, 6009, 6422, 6424, 4752, 6868, 4752, 4752, 4752, 5388, 5380, 6254, 6362, 4752, 5124, 5122, 4752, 4752, 6322, 6322, 6322, 6322, 4707, 4707, 4707, 4707, 4708, 4735, 4735, 6381, 4752, 6009, 5377, 6389, 4752, 4752, 6885, 6009, 4752, 4752, 6868, 5377, 6253, 6887, 4752, 4752, 6887, 4752, 4752, 6886, 4752, 6403, 5971, 6255, 4752, 4752, 5853, 4752, 4752, 4752, 6936, 6255, 6886, 5971, 6255, 5191, 4752, 4752, 5752, 4752, 4756, 6589, 6886, 6401, 6885, 6885, 4752, 6886, 5377, 6885, 6394, 6394, 4703, 4703, 4703, 4752, 5185, 4752, 4752, 4757, 5110, 4960, 5744, 6398, 4752, 5187, 6451, 4752, 4752, 6409, 4752, 6411, 5750, 6215, 6417, 5744, 6435, 6217, 4752, 5189, 6447, 6457, 6461, 6462, 6466, 6486, 6469, 6484, 6472, 6478, 6475, 6480, 6498, 6492, 6490, 6496, 6496, 6500, 6506, 6506, 6507, 6504, 6506, 6506, 6506, 6511, 6514, 4752, 4752, 5854, 4752, 4752, 4752, 6619, 4824, 5749, 6417, 6518, 4752, 4752, 4752, 6756, 5187, 4752, 4752, 4752, 6834, 6431, 4752, 4752, 4752, 6836, 5834, 6009, 6522, 6527, 6869, 4752, 6430, 4752, 5188, 4752, 5223, 4752, 4752, 4752, 6253, 4752, 6540, 6551, 6561, 5402, 6575, 4752, 4752, 5945, 4752, 4752, 6755, 6009, 4752, 5188, 5194, 4752, 4752, 4752, 6252, 6255, 4752, 6756, 5962, 4752, 5222, 5392, 5390, 4752, 6849, 6848, 4752, 5231, 6032, 6027, 6850, 4752, 4752, 4752, 6854, 6619, 4824, 5749, 6582, 5518, 4752, 4752, 4752, 6861, 4753, 6634, 4752, 4752, 5945, 5691, 4752, 4752, 6589, 4752, 4753, 4752, 4757, 5561, 4752, 6597, 4752, 6607, 4752, 5235, 4752, 4752, 4752, 5225, 6612, 5541, 4752, 6617, 5229, 6351, 5401, 6625, 4752, 5753, 4752, 6633, 5359, 6640, 6645, 6009, 4944, 5540, 4752, 4752, 5955, 4752, 6649, 6238, 5686, 5686, 5144, 4752, 5744, 4752, 4752, 4752, 4753, 4980, 6619, 4824, 6272, 6654, 5754, 4753, 4752, 6311, 4752, 4752, 6312, 4752, 4752, 5355, 5359, 5550, 6658, 6009, 5357, 6678, 4944, 5541, 4752, 5571, 4752, 6597, 6597, 6597, 6597, 4752, 4752, 4752, 6928, 4752, 4752, 5110, 6426, 4752, 5746, 6423, 4752, 5266, 4752, 4564, 4752, 6662, 5550, 6671, 6670, 6009, 4752, 4752, 5977, 4752, 6664, 6669, 5153, 4752, 5270, 6423, 5505, 4823, 5748, 5401, 5189, 4752, 4752, 4752, 5739, 6322, 5752, 4753, 4752, 4752, 5741, 5390, 4752, 6675, 6690, 6429, 6694, 4752, 4752, 5193, 6234, 4824, 5750, 4752, 5369, 4752, 4955, 4752, 4752, 5385, 5753, 4756, 4752, 6239, 4752, 6240, 4752, 5349, 4758, 4752, 6705, 6429, 4752, 5372, 4758, 5592, 4752, 6705, 6429, 5572, 6238, 6913, 4752, 4752, 6009, 4752, 4752, 5712, 4752, 4752, 6010, 6536, 4714, 6709, 4752, 4752, 6016, 4752, 4756, 4752, 6240, 4752, 5379, 6255, 4752, 5388, 4752, 6257, 6419, 5074, 6720, 4752, 4752, 6042, 4752, 5749, 4752, 4752, 4752, 6929, 4752, 4752, 5971, 6717, 6429, 4752, 4752, 6042, 5417, 6914, 6241, 4752, 5747, 6233, 4752, 4752, 4752, 6926, 4752, 6729, 4752, 4752, 4752, 6933, 6727, 4563, 4752, 5747, 6741, 5389, 5192, 5222, 4752, 5986, 4561, 5748, 4752, 6936, 6934, 4562, 5749, 6934, 5853, 4563, 6935, 4752, 5387, 5748, 4752, 4752, 6735, 6371, 4563, 6936, 6934, 4752, 4752, 6739, 6680, 6421, 4744, 6300, 6231, 5091, 4752, 5389, 5748, 4752, 4752, 6701, 4581, 6039, 6745, 6748, 4620, 6733, 6752, 6760, 6768, 6762, 6764, 6771, 6775, 6779, 6782, 6784, 6788, 6790, 6794, 6797, 6801, 6804, 6809, 6808, 6813, 6815, 6819, 6817, 6823, 6827, 6830, 4752, 5391, 5223, 5222, 6421, 4752, 4752, 4759, 5112, 4760, 4752, 5113, 4752, 5428, 6533, 4752, 4752, 6388, 4752, 4752, 6393, 4752, 4752, 6428, 4752, 4752, 6428, 6260, 6840, 5381, 4752, 6845, 4584, 4752, 6043, 4752, 5495, 4752, 4752, 4753, 6197, 4769, 6859, 6044, 4752, 4752, 6195, 5582, 4752, 6739, 6907, 5191, 4752, 6867, 6915, 4752, 5506, 5505, 4752, 5973, 4752, 4563, 4752, 5386, 4752, 5533, 5537, 5541, 5389, 5388, 4752, 4752, 6232, 4752, 4752, 5747, 6741, 6355, 6235, 4752, 6543, 6238, 5400, 4752, 5188, 4752, 4752, 6891, 5777, 5700, 4752, 5562, 6253, 4752, 4752, 6912, 4752, 4752, 6932, 4752, 4752, 6935, 4752, 4753, 5435, 5440, 5445, 5388, 5388, 4752, 4752, 6242, 6042, 4752, 5739, 6934, 4752, 5571, 4752, 5398, 4752, 4751, 5401, 5401, 5399, 5793, 4753, 6898, 5778, 4563, 4752, 5388, 5749, 6601, 5747, 6906, 5192, 6236, 4752, 6897, 5777, 4563, 4752, 5130, 4752, 4752, 6338, 4752, 4752, 6231, 4752, 4752, 6920, 4752, 4752, 4752, 6261, 4752, 5775, 6919, 4752, 5386, 6258, 4781, 5595, 5193, 6237, 4752, 5571, 4752, 5399, 4760, 4752, 5740, 6935, 4752, 4752, 6107, 4752, 4752, 6924, 4752, 4752, 6281, 5535, 6896, 6942, 4752, 4752, 6311, 4752, 4752, 4752, 6530, 4759, 4752, 5740, 6935, 6951, 4752, 4752, 4752, 6311, 5770, 4977, 6959, 4752, 4752, 6312, 5113, 4752, 6957, 4752, 4752, 6313, 4752, 4752, 4752, 6453, 2, 4, 8, 262144, 0, 0, 0, 0x80000000, 1073741824, 0, 0, 1075838976, 2097152, 2097152, 268435456, 4194432, 4194560, 4196352, 270532608, 2097152, 4194304, 50331648, 0, 0, 0, 4194304, 0, 0, 541065216, 541065216, -2143289344, -2143289344, 4194304, 4194304, 4196352, -2143289344, 4194304, 4194432, 37748736, 541065216, -2143289344, 4194304, 4194304, 4194304, 4194304, 4194304, 4194304, 4198144, 4196352, 8540160, 4194304, 4194304, 4194304, 4196352, 276901888, 4194304, 4194304, 8425488, 4194304, 1, 0, 1024, 137363456, 66, 37748736, 742391808, 239075328, -1405091840, 775946240, 775946240, 775946240, 171966464, 742391808, 742391808, 742391808, 775946240, -1371537408, 775946240, 775946240, -1405091840, -1371537408, 775946240, 775946240, 775946240, 775946240, 4718592, -1371537408, 775946240, -1371537408, 775946240, -1371537408, 171966464, 775946240, 171966464, 171966464, 171966464, 171966464, 239075328, 171966464, 775946240, 239075328, 64, 4718592, 2097216, 4720640, 541589504, 4194368, 541589504, 4194400, 4194368, 541065280, 4194368, 4194368, -2143289280, 4194368, -2143285440, -2143285408, -2143285408, 776470528, -2143285408, -2109730976, -2143285408, -2143285408, -2143285408, -2109730976, -2143285408, 775946336, 775946304, 775946304, 776470528, 775946304, -1908404384, 775946304, -1908404384, 0, 2097152, 4194304, 128, 0, 256, 2048, 0, 0, 16777216, 16777216, 16777216, 16777216, 64, 64, 64, 64, 96, 96, 96, 64, 0, 0, 0, 24, 64, 0, 96, 96, 0, 0, 0, 288, 8388608, 0, 0, 8388608, 4096, 4096, 4096, 32, 96, 96, 96, 96, 262144, 96, 96, 1048576, 128, 0, 1048576, 0, 0, 2048, 2048, 2048, 2048, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 96, 96, 128, 128, 2048, 524288, 268435456, 536870912, 1073741824, 0, 0, 8388608, 4096, 0, 64, 0, 2048, 524288, 536870912, 0, 64, 524288, 64, 96, 64, 524288, 524288, 96, 96, 64, 524288, 96, 64, 80, 528, 524304, 1048592, 2097168, 268435472, 16, 16, 2, 536936448, 16, 262160, 16, 536936448, 16, 17, 17, 20, 16, 48, 16, 16, 20, 48, 64, 128, 1024, 134217728, 0, 0, 24, 560, 48, 2097680, 3145744, 1048592, 1048592, 2097168, 16, 1049104, 16, 16, 20, 560, 2097168, 2097168, 16, 16, 16, 16, 20, 16, 2097552, 3146256, 16, 16, 16, 28, 0, 2, 2098064, 17, 21, 16, 16, 163577856, 17, 528, 528, 16, 528, 2228784, -161430188, -161429680, -161430188, -161430188, -161430188, -161429680, -161430188, -161429676, -160905388, -161429676, -161430188, -161429676, -161429676, -161429676, -161429676, -161429675, -161349072, -161349072, -161429675, -161349072, -161349072, -161349072, -161349072, -161347728, -161347728, -161347728, -161347728, -161298576, -160299088, -161298576, -161298572, -161298572, -161298572, -161298572, -18860267, -160774284, -18729163, -160774288, -160299084, -161298572, -160774284, -161298572, -161298572, 16, 16, 28, 16, 16, 112, 21, 53, 146804757, 146812949, 0, 16, 0, 48, 3146256, 2097680, 1048592, 146862101, 146863389, -161429676, 146863389, 146863421, 146863389, 146863389, 146863389, 146863421, -161429740, -161429676, -160905388, -161298572, 0, 65536, 524288, 1048576, 33554432, 0, 159383552, 0, 0, 0, 1157627904, -1073741824, 0, 0, 0, 300, 142606336, 0, 8192, 0, 0, 0, 384, 0, 243269632, 0, 0, 0, 1862270976, 1, 32768, 131328, 131072, 16777216, 0, 0, 1, 2, 4, 128, 2097152, 0, 1073741825, 0x80000000, 0x80000000, 8, 16777216, 1073774592, 278528, 1226014816, 100665360, 100665360, 100665360, 100665360, 100665360, 100665360, -2046818288, 1091799136, -2044196848, 1091799136, 1091799136, 1091799136, 1091799136, 1091799136, 1091803360, 1091799136, 1091799136, 1158908000, 1158908001, 1192462432, 1192462448, 1192462448, 1192462448, 1192462448, 1200851056, 1091799393, 1200851056, 1200851056, 1192462448, 1870630720, 1870647104, 1870630720, 1870647104, 1870630720, 1870647104, 1870647104, 1870647104, 1870647104, 1870647104, 1870647120, 1870647124, 1870647124, 1870647124, 1870630736, 1870655316, 1870655316, 1870655316, 1870655317, 1870655348, 1870647120, 1870647120, 1870647120, 1879019376, 1879035760, 1870647124, 1879035760, 1879035764, 32768, 131072, 524288, 2097152, 8388608, 16777216, 134217728, 268435456, 1073741824, 0x80000000, 131328, 0, 0, 0, 832, 0, 164096, 0, 0, 0, 520, 4333568, 1048576, 1224736768, 0, 0, 1, 4, 0, 0, 235712, 0, 1090519040, 0, 0, 0, 999, 259072, 1191182336, 0, 0, 9437184, 0, 0, 1048576, 0, 128, 128, 128, 128, 2048, 2048, 231744, 0, 0, 0, 1007, 495424, 7864320, 1862270976, 0, 0, 0, 1024, 0, 0, 0, 63, 520000, 1862270976, 1862270976, 16252928, 0, 0, 16252928, 0, 0, 0, 1536, 0x80000000, 64, 98304, 1048576, 150994944, 0, 64, 256, 3584, 16384, 98304, 393216, 98304, 393216, 524288, 1048576, 2097152, 4194304, 0x80000000, 0, 0, 2097152, 4194304, 251658240, 536870912, 1073741824, 0, 0, 8192, 1073741824, 1073741824, 8388608, 2097152, 16777216, 134217728, 268435456, 2048, 65536, 262144, 524288, 1048576, 2097152, 1048576, 2097152, 4194304, 117440512, 64, 256, 1536, 16384, 65536, 117440512, 134217728, 536870912, 1073741824, 0, 0, 100663296, 0, 0, 0, 4096, 0, 0, 0, 64, 0, 0, 128, -2113929216, 64, 256, 1536, 65536, 262144, 524288, 4194304, 16777216, 100663296, 134217728, 536870912, 1073741824, 1048576, 2097152, 4194304, 16777216, 4194432, 3145728, 524288, 2097152, 134217728, 268435456, 65536, 1048576, 0, 0, 0, 2048, 0, 0, 134217728, 0, 0, 0, 15, 16, 524288, 2097152, 1073741824, 0x80000000, 0x80000000, 0, 1048576, 2097152, 67108864, 1073741824, 0, 0, 0, 0, 2097152, 1073741824, 0x80000000, 0, 0, 0, 768, 0, 2097152, 0x80000000, 0, -872415232, 0, -872415232, 67108864, 134217728, 1073741824, 0, 0x80000000, 0, 0, 0, 8192, 4096, 0, 0, 1536, 524288, 64, 64, 96, 64, 0, 524288, 0, 1073741824, 2621440, 1073741824, 9476, 512, 0, 32, 384, 8192, 0, 0, 1, 8, 512, 512, 9476, 134218240, 1050624, 262144, 512, 50331649, 1275208192, 4194312, 4194312, 4194312, 4194312, 541065224, 4194312, 4194312, 4194344, -869654016, 4203820, -869654016, -869654016, -869654016, -869654016, 1279402504, 1279402504, 1279402504, 1279402504, 2143549415, 2143549415, 2143549415, 2143549415, 2143549415, 2143549423, 2143549415, 2143549423, 2143549423, 2143549423, 2143549423, 16, 32, 256, 1024, 8192, 33554432, 8192, 33554432, 67108864, 134217728, 0, 0, 536870912, 9216, 0, 0, 1792, 0x80000000, 0, 1050624, 0, 0, 1, 14, 16, 32, 1024, 2048, 77824, 524288, 0, 512, 139264, 1275068416, 512, 2760704, -872415232, 0, 0, 1856, 0x80000000, 4203520, 0, 0, 0, 32768, 0, 0, 0, 58624, 520, 0, 0, 0, 131072, 0, 0, 0, 512, 0, 1048576, 0, 1275068416, 0, 0, 0, 65536, 0, 0, 0, 12561, 0, 1007, 1007, 0, 0, 2048, 524288, 0, 536870912, 0, 512, 0, 2048, 1048576, 0, 0, 40, 0, 2621440, 0, 0, 0x80000000, 999, 259072, 4194304, 25165824, 100663296, 402653184, 1, 102, 384, 512, 5120, 5120, 8192, 16384, 229376, 4194304, 4194304, 25165824, 33554432, 67108864, 402653184, 402653184, 536870912, 1073741824, 0, 0, 2048, 3145728, 16777216, 536870912, 110, 110, 0, 0, 1, 30, 32, 0, 40, 0, 524288, 64, 96, 1, 6, 96, 384, 512, 1024, 4096, 8192, 16384, 229376, 67108864, 402653184, 536870912, 0, 2, 16, 104, 0, 104, 104, 8192, 33554432, 134217728, 0, 0, 2048, 100663296, 0, 229376, 25165824, 33554432, 402653184, 536870912, 8192, 33554432, 0, 0, 0, 17408, 0, 524288, 2097152, 0, 0, 2048, 268435456, 536870912, 0, 0, 268435456, 49152, 2, 4, 32, 64, 256, 512, 1024, 8, 8, 0, 0, 1, 64, 128, 3584, 16384, 3145728, 16777216, 67108864, 134217728, 805306368, 1073741824, 0, 0, 4, 64, 256, 1024, 4096, 8192, 65536, 524288, 98304, 131072, 25165824, 268435456, 536870912, 0, 2, 4, 256, 1024, 0, 2048, 0, 98304, 131072, 16777216, 268435456, 0, 0, 0, 262144, 0, 0, 65536, 268435456, 0, 0, 1, 128, 512, 2048, 524288, 2048, 524288, 67108864, 536870912, 0, 262144, 0, 0, 2432, 0, 0, 4096, 8192, 0, 32, 4100, 67108864, 0, 32768, 0, 32768, 0, 0, 134348800, 134348800, 1049088, 1049088, 8192, 1049088, 12845065, 12845065, 12845065, 12845065, 270532608, 0, 1049088, 0, 134348800, 12845065, 12845065, 147193865, 5505537, 5591557, 5587465, 5587457, 5587457, 147202057, 5587457, 5587457, 5591557, 5587457, 13894153, 13894153, 13894153, 13894153, -1881791493, 13894153, 81003049, 13894153, 13894153, -1881791493, -1881791493, -1881791493, -1881791493, 0, 9, 0, 0, 1, 5505024, 142606336, 0, 0, 0, 278528, 0, 82432, 0, 0, 1, 16777216, 0, 0, 0, 139264, 0, 0, 0, 229440, 0, 5, 86528, 9, 4456448, 8388608, 0, 0, 8192, 8392704, 9, 8388608, 0, 0, 256, 1024, 65536, 16777216, 268435456, 0, 0, 41, 75497472, 0, 0, 16384, 262144, 0, 0, 0, 512, 1048576, 0, 0, 262144, 4194304, 8388608, 0, 0, 16384, 4194304, 0x80000000, 0, 0, 81920, 0, 0, 2, 4, 16, 32, 8192, 131072, 262144, 1048576, 4194304, 8388608, 4194304, 8388608, 16777216, 33554432, -1946157056, 0, -1946157056, 0, 0, 0, 524288, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, 12, 0, 0, 0, 13, 0, 1, 2, 56, 64, 896, 8192, 131072, 0, 0, 33554432, 1024, 0, 4, 0, 8, 16, 32, 64, 128, 1024, 2048, 16384, 65536, 262144, 524288, 2097152, 384, 512, 8192, 131072, 1048576, 0, 16384, 65536, 0, 65536, 0, 0, 131072, 0, 32, 0, 32768, 134217728, 0, 0, 2, 8, 16, 0, 2, 8, 32, 64, 256, 1024, 98304, 131072, 1048576, 33554432, 134217728, 0x80000000, 8, 32, 384, 8192, 131072, 33554432, 131072, 33554432, 0x80000000, 0, 0, 24576, 0, 0, 0, 50331648, 0, 8396800, 4194304, 134217728, 2048, 134217728, 0, 0, 2, 16384, 32768, 1048576, 2097152, 0, 8396800, 0, 0, 4, 8, 0, 0, 16384, 0, 2, 4, 128, 3584, 16384, 16384, 16384, 16777216, 16384, 229376, 25165824, 33554432, 268435456, 536870912, 524288, 268567040, 16384, -2113929088, 2113544, 68423701, 68423701, 68423701, 68423701, 68489237, 68423701, 68423701, 68423701, 85200917, 68423701, 68489237, 72618005, 68423701, 68423701, -2079059883, 68423701, -2079059883, 68425749, 68423703, 69488664, 85200919, 69488664, 69488664, 69488664, 69488664, 70537244, 70537245, 70537245, 70537245, 70537245, 70537245, 70539293, -2022351809, -2076946339, 70537245, -2076946339, -2076946339, -2022351681, -2022351681, -2022351681, -2022351681, -2022351809, -2022351681, -2022351809, -2022351681, 32768, 65536, 4194304, 16777216, 0x80000000, 0, 0, 0, 8388608, 134217728, 1073741824, 131584, 268435456, 0, 0, 4, 128, 1048576, 67108864, 0, 0, 4, 256, 1024, 98304, 0, 0, 5242880, -2080374784, 268288, 0, 0, 4, 16777216, 0, 0, 23, 0, 0, 0, 867391, 24, 282624, 0, 0, 6, 0, 0, 0, 2097152, 0, 0, 0, 28, 3145728, 0, 0, 32768, 65536, 0, 284672, 0, 0, 0, 1048576, 0, 63, 128, 351232, 7340032, -2030043136, 0, 0, 131072, 268435456, 0, 0, 8, 32, 64, 16, 4096, 262144, 1048576, 1073741824, 0, 0, 0, -2046820352, 0, 20480, 0, 0, 8, 4194304, 0, 0, 15, 16, 32, 3072, 20480, 65536, 262144, 7340032, 50331648, 16, 32, 128, 3072, 20480, 0, 1, 4, 1048576, 4096, 1048576, 512, 0, 0, 0, 150528, 0, 0, 0, 5242880, 0, 7, 0, 14, 32, 1024, 2048, 12288, 1, 14, 32, 128, 1024, 7340032, 50331648, 0x80000000, 0, 0, 2048, 16384, 65536, 7340032, 50331648, 8, 32, 1024, 65536, 262144, 2097152, 1073741824, 0, 1, 6, 8, 32, 128, 1024, 65536, 2097152, 4194304, 50331648, 0x80000000, 0, 1, 2, 4, 2097152, 4194304, 67108864, 134217728, 536870912, 0, 32768, 4194304, 16777216, 0, 1, 2, 4, 50331648, 67108864, 0x80000000, 0, 0, 128, 50331648, 0, 0, 8, 33554432, 4096, 4194304, 268435456, 0, 0, 32768, 131072, 131072, 0, 32768, 32768, 268435968, 268435968, 1073743872, 268435968, 0, 128, 6144, 0, 229376, 128, 268435968, 16777220, 268436032, 256, 256, 256, 256, 257, 256, 256, 536871168, 256, 256, 256, 256, 384, -1879046336, -1879046334, 1073744256, -1879046334, -1879046326, -1879046334, -1879046334, -1879046326, -1879046326, -1845491902, -1878784182, 268444480, 268444480, 268444480, 268444480, 2100318145, 268436288, 268436288, 268436288, 268436288, 268436289, 268436288, 2100318149, 2100318149, 2100318149, 2100318149, 2100326337, 2100318149, 2100318149, 2100318145, 2100318149, 2100318145, 2100318149, 2100326341, 2100318149, 2100326341, 2100326341, 0, 1, 16, 32, 128, 512, 0, 4194304, 1, 1024, 0, 0, 229376, 0, 0, 12, 3145728, 0, 0, 576, 0, 0, 16, 8192, 0, 0, 16, 262144, 0, 384, 0, 0, 21, 266240, 1864, 0, 0, 0, 8388608, 0, 0, 0, 128, 0, 0, 0, 256, 0, 0, 0, 260, 512, 0, 1, 4036, 19939328, 2080374784, 0, 0, 0, 16777216, 0, 0, 0, 32, 0, 0, 0, 40, 67108864, 0, 19947520, 0, 0, 0, 19947520, 2304, 0, 8, 0, 512, 301989888, 0, 0, 262144, 16777216, 0, 1, 4, 64, 128, 64, 128, 3840, 16384, 19922944, 19922944, 2080374784, 0, 0, 29, 0, 0, 1536, 0x80000000, 0, 0, 32, 1, 8, 0, 33554432, 0, 0, 32768, 196608, 0, 0, 0, 33554432, 0, 0, 32768, 65536, 131072, 0, 0, 524288, 524288, 524288, 524288, 64, 64, 64, 32, 96, 8, 0, 33554432, 262144, 8192, 0, 0, 4194304, 1024, 0, 4096, 0, 1024, 2048, 16384, 3145728, 2048, 524288, 536870912, 1073741824, 8, 0, 0, 512, 131072, 0, 0, 64, 256, 1536, 2048, 33554432, 8192, 0, 0, 32, 64, 256, 32768, 65536, 16777216, 134217728, 536870912, 1073741824, 0, 3145728, 16777216, 536870912, 1073741824, 0, 0, 8192, 8192, 8192, 9216, 33554432, 0, 2097152, 16777216, 1073741824, 0, 0, 32768, 0, 16777216, 0, 16777216, 64, 0, 2, 0, 0, 32768, 16777216, 0, 0, 32, 512, 128, 131072, 0, 134218752, 0, 0, 44, 0, 66048, 0, 0, 0, 67108864, 0, 0, 0, 8192, 0, 8192, 0, 536870912, 0, 0, 0, 12289, 0, 268500992, 4243456, 0, 0, 59, 140224, 5505024, -1887436800, 0, 0, 2, 2, 4096, 4096, 0, 4096, 8192, 67108864, 0, 0, 1, 4032, 0, 4243456, 4096, 1048588, 12289, 1124073472, 1124073472, 1124073472, 1124073472, 1124073472, 1124073488, 1124073472, 1124073472, 1124073474, 1124073472, 1124073472, 1392574464, 1124073472, 12289, 1073754113, 12289, 12289, 1124073472, 12289, 12289, 1098920193, 1098920193, 1124073488, 1124073472, 1258292224, 1124073472, 1124073472, 1124073472, 1124085761, 1258304513, 1124085761, 1124085761, 1124085761, 1124085777, 1132474625, 1098920209, 1132474625, 1132474625, 1132474625, 1132474625, 1400975617, 2132360255, 2132622399, 2132622399, 2132360255, 2132360255, 2132360255, 2132360255, 2132622399, 2132360255, 2132360255, 2132360255, 2140749119, 2132360255, 2140749119, 2140749119, 0, 65536, 268435456, 49152, 184549376, 0, 0, 0, 83886080, 0, 0, 318767104, 0, 0, 32768, 100663296, 402653184, 1610612736, 0, 0, 0, 231488, 0, 12545, 25165824, 0, 0, 49152, 0, 0, 256, 1536, 65536, 0, 0, 58720256, 0, 0, 131072, 32768, 0, 0, 134217728, 0, 12305, 13313, 0, 0, 331776, 83886080, 117440512, 0, 0, 1, 6, 32, 64, 0, 78081, 327155712, 0, 0, 511808, 7864320, 512, 65536, 0, 0, 64, 65536, 1048576, 0, 0, 33554432, 1073741824, 0, 0, 110, 0, 0, 256, 8388608, 0, 0, 524288, 2097152, 0x80000000, 0, 0, 77824, 0, 0, 0, 268435456, 524288, 1048576, 16777216, 100663296, 134217728, 0, 339968, 0, 0, 128, 131072, 1024, 134217728, 0, 268435456, 0, 0, 128, 33554432, 0, 0, 1, 12288, 0, 0, 0, 134217728, 2048, 12288, 65536, 524288, 1048576, 1048576, 33554432, 67108864, 134217728, 805306368, 0, 327680, 0, 0, 256, 65536, 0, 0, 268435456, 1048576, 33554432, 134217728, 805306368, 1, 14, 16, 1024, 4096, 8192, 229376, 65536, 524288, 33554432, 134217728, 536870912, 1073741824, 0, 1, 14, 1024, 2048, 4096, 8192, 131072, 1048576, 8388608, 33554432, 134217728, 0x80000000, 0, 0, 4096, 65536, 524288, 134217728, 16384, 4194304, 0, 0, 999, 29619200, 2113929216, 0, 0, 0, 148480, 1, 12, 1024, 134217728, 0, 128, 134217728, 8, 0, 8, 8, 8, 0, 1, 4, 8, 134217728, 536870912, 0, 0, 1073741824, 32768, 0, 4, 8, 536870912, 0, 0, 1024, 1024, 0, 1024, 2048, 3145728, 0, 8, 32, 512, 4096, 8192, 0, 0, 68157440, 137363456, 0, 66, 66, 524288, 4100, 1024, 0, 0, 605247, 1058013184, 1073741824, 100680704, 25165824, 92274688, 25165824, 25165824, 92274688, 92274688, 25165952, 25165824, 25165824, 26214400, 92274688, 25165824, 92274688, 93323264, 92274688, 92274688, 92274688, 92274688, 92274720, 93323264, 25165890, 100721664, 25165890, 100721928, 100721928, 100787464, 100853000, 100721928, 100721928, 125977600, 125977600, 125977600, 125977600, 125846528, 125846528, 126895104, 125846528, 125846528, 125846528, 125846560, 125977600, 127026176, 125977600, 125977600, 127026176, 127026176, 281843, 1330419, 281843, 1330419, 281843, 281843, 1330419, 1330419, 281843, 281843, 5524723, 5524723, 5524723, 5524723, 93605107, 5524723, 39079155, 72633587, 72633587, 5524723, 92556531, 93605107, 93605107, 127290611, 97799411, 127290611, 131484915, 2097152, 134217728, 0, 0, 1024, 65536, 58368, 0, 0, 0, 301989888, 8, 124160, 189696, 0, 0, 605503, 1066401792, 0, 0, 3, 240, 19456, 262144, 0, 150528, 0, 0, 0, 536870912, 0, 1073741824, 0, 57344, 0, 0, 0, 1073741824, 0, 0, 0, 1, 2, 112, 128, 3072, 16384, 262144, 2048, 16384, 262144, 0, 0, 2097152, 16777216, 0, 0, 0, 1, 2, 48, 64, 0, 1, 2, 16, 32, 64, 384, 8192, 131072, 1048576, 32, 4096, 8192, 131072, 0, 0, 32768, 0, 256, 0, 256, 0, 65536, 1024, 2048, 262144, 0, 0, 32768, 256, 0, 0, 1024, 2097152, 0, 0, 0, 16384, 0, 0, 0, 4, 0, 0, 0, 5, 64, 128, 262144, 0, 0, 2097152, 268435456, 0, 0, 64, 128, 0, 0, 1536, 1792, 1, 2, 16, 64, 0, 0
-];
-
-XQueryParser.TOKEN =
-[
- "(0)",
- "PragmaContents",
- "DirCommentContents",
- "DirPIContents",
- "CDataSection",
- "Wildcard",
- "EQName",
- "URILiteral",
- "IntegerLiteral",
- "DecimalLiteral",
- "DoubleLiteral",
- "StringLiteral",
- "PredefinedEntityRef",
- "'\"\"'",
- "EscapeApos",
- "ElementContentChar",
- "QuotAttrContentChar",
- "AposAttrContentChar",
- "PITarget",
- "NCName",
- "QName",
- "S",
- "S",
- "CharRef",
- "CommentContents",
- "EOF",
- "'!'",
- "'!='",
- "'\"'",
- "'#'",
- "'#)'",
- "'$'",
- "'%'",
- "''''",
- "'('",
- "'(#'",
- "'(:'",
- "')'",
- "'*'",
- "'*'",
- "'+'",
- "','",
- "'-'",
- "'-->'",
- "'.'",
- "'..'",
- "'/'",
- "'//'",
- "'/>'",
- "':'",
- "':)'",
- "'::'",
- "':='",
- "';'",
- "'<'",
- "'<!--'",
- "'</'",
- "'<<'",
- "'<='",
- "'<?'",
- "'='",
- "'>'",
- "'>='",
- "'>>'",
- "'?'",
- "'?>'",
- "'@'",
- "'NaN'",
- "'['",
- "']'",
- "'after'",
- "'all'",
- "'allowing'",
- "'ancestor'",
- "'ancestor-or-self'",
- "'and'",
- "'any'",
- "'append'",
- "'array'",
- "'as'",
- "'ascending'",
- "'at'",
- "'attribute'",
- "'base-uri'",
- "'before'",
- "'boundary-space'",
- "'break'",
- "'by'",
- "'case'",
- "'cast'",
- "'castable'",
- "'catch'",
- "'check'",
- "'child'",
- "'collation'",
- "'collection'",
- "'comment'",
- "'constraint'",
- "'construction'",
- "'contains'",
- "'content'",
- "'context'",
- "'continue'",
- "'copy'",
- "'copy-namespaces'",
- "'count'",
- "'decimal-format'",
- "'decimal-separator'",
- "'declare'",
- "'default'",
- "'delete'",
- "'descendant'",
- "'descendant-or-self'",
- "'descending'",
- "'diacritics'",
- "'different'",
- "'digit'",
- "'distance'",
- "'div'",
- "'document'",
- "'document-node'",
- "'element'",
- "'else'",
- "'empty'",
- "'empty-sequence'",
- "'encoding'",
- "'end'",
- "'entire'",
- "'eq'",
- "'every'",
- "'exactly'",
- "'except'",
- "'exit'",
- "'external'",
- "'first'",
- "'following'",
- "'following-sibling'",
- "'for'",
- "'foreach'",
- "'foreign'",
- "'from'",
- "'ft-option'",
- "'ftand'",
- "'ftnot'",
- "'ftor'",
- "'function'",
- "'ge'",
- "'greatest'",
- "'group'",
- "'grouping-separator'",
- "'gt'",
- "'idiv'",
- "'if'",
- "'import'",
- "'in'",
- "'index'",
- "'infinity'",
- "'inherit'",
- "'insensitive'",
- "'insert'",
- "'instance'",
- "'integrity'",
- "'intersect'",
- "'into'",
- "'is'",
- "'item'",
- "'json'",
- "'json-item'",
- "'key'",
- "'language'",
- "'last'",
- "'lax'",
- "'le'",
- "'least'",
- "'let'",
- "'levels'",
- "'loop'",
- "'lowercase'",
- "'lt'",
- "'minus-sign'",
- "'mod'",
- "'modify'",
- "'module'",
- "'most'",
- "'namespace'",
- "'namespace-node'",
- "'ne'",
- "'next'",
- "'no'",
- "'no-inherit'",
- "'no-preserve'",
- "'node'",
- "'nodes'",
- "'not'",
- "'object'",
- "'occurs'",
- "'of'",
- "'on'",
- "'only'",
- "'option'",
- "'or'",
- "'order'",
- "'ordered'",
- "'ordering'",
- "'paragraph'",
- "'paragraphs'",
- "'parent'",
- "'pattern-separator'",
- "'per-mille'",
- "'percent'",
- "'phrase'",
- "'position'",
- "'preceding'",
- "'preceding-sibling'",
- "'preserve'",
- "'previous'",
- "'processing-instruction'",
- "'relationship'",
- "'rename'",
- "'replace'",
- "'return'",
- "'returning'",
- "'revalidation'",
- "'same'",
- "'satisfies'",
- "'schema'",
- "'schema-attribute'",
- "'schema-element'",
- "'score'",
- "'self'",
- "'sensitive'",
- "'sentence'",
- "'sentences'",
- "'skip'",
- "'sliding'",
- "'some'",
- "'stable'",
- "'start'",
- "'stemming'",
- "'stop'",
- "'strict'",
- "'strip'",
- "'structured-item'",
- "'switch'",
- "'text'",
- "'then'",
- "'thesaurus'",
- "'times'",
- "'to'",
- "'treat'",
- "'try'",
- "'tumbling'",
- "'type'",
- "'typeswitch'",
- "'union'",
- "'unique'",
- "'unordered'",
- "'updating'",
- "'uppercase'",
- "'using'",
- "'validate'",
- "'value'",
- "'variable'",
- "'version'",
- "'weight'",
- "'when'",
- "'where'",
- "'while'",
- "'wildcards'",
- "'window'",
- "'with'",
- "'without'",
- "'word'",
- "'words'",
- "'xquery'",
- "'zero-digit'",
- "'{'",
- "'{{'",
- "'{|'",
- "'|'",
- "'||'",
- "'|}'",
- "'}'",
- "'}}'"
-];
- });
-
-ace.define('ace/mode/xquery/visitors/SemanticHighlighter', ['require', 'exports', 'module' ], function(require, exports, module) {
-
- var SemanticHighlighter = exports.SemanticHighlighter = function(ast) {
-
- this.tokens = {};
-
- this.getTokens = function() {
- this.visit(ast);
- return this.tokens;
- };
-
- this.EQName = this.NCName = function(node)
- {
- var row = node.pos.sl;
- this.tokens[row] = this.tokens[row] === undefined ? [] : this.tokens[row];
- node.pos.type = "support.function";
- this.tokens[row].push(node.pos);
- return true;
- };
-
- this.visit = function(node) {
- var name = node.name;
- var skip = false;
-
- if (typeof this[name] === "function") skip = this[name](node) === true ? true : false;
-
- if (!skip) {
- this.visitChildren(node);
- }
- };
-
- this.visitChildren = function(node, handler) {
- for (var i = 0; i < node.children.length; i++) {
- var child = node.children[i];
- if (handler !== undefined && typeof handler[child.name] === "function") {
- handler[child.name](child);
- }
- else {
- this.visit(child);
- }
- }
- };
-
- };
-
-});