{"version":3,"sources":["webpack:///./node_modules/xmlbuilder/lib/XMLNodeList.js","webpack:///./node_modules/xmlbuilder/lib/NodeType.js","webpack:///./node_modules/xml2js/lib/xml2js.js","webpack:///./node_modules/xmlbuilder/lib/WriterState.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMImplementation.js","webpack:///./node_modules/xmlbuilder/lib/XMLDummy.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDEntity.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDAttList.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMStringList.js","webpack:///./node_modules/xmlbuilder/lib/XMLStringWriter.js","webpack:///./node_modules/xmlbuilder/lib/XMLAttribute.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDElement.js","webpack:///./node_modules/xml2js/lib/builder.js","webpack:///./node_modules/xmlbuilder/lib/Utility.js","webpack:///./node_modules/xmlbuilder/lib/XMLRaw.js","webpack:///./node_modules/xmlbuilder/lib/XMLDeclaration.js","webpack:///./node_modules/xmlbuilder/lib/XMLCData.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocumentCB.js","webpack:///./node_modules/xmlbuilder/lib/XMLCharacterData.js","webpack:///./node_modules/xmlbuilder/lib/XMLStringifier.js","webpack:///./node_modules/xmlbuilder/lib/XMLNamedNodeMap.js","webpack:///./node_modules/xml2js/lib/bom.js","webpack:///./node_modules/xmlbuilder/lib/index.js","webpack:///./node_modules/xml2js/lib/processors.js","webpack:///./node_modules/xmlbuilder/lib/XMLComment.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMConfiguration.js","webpack:///./node_modules/xmlbuilder/lib/XMLNode.js","webpack:///./node_modules/xmlbuilder/lib/XMLText.js","webpack:///./node_modules/xmlbuilder/lib/XMLDOMErrorHandler.js","webpack:///./node_modules/xmlbuilder/lib/XMLWriterBase.js","webpack:///./node_modules/xml2js/lib/defaults.js","webpack:///./node_modules/xml2js/lib/parser.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocument.js","webpack:///./node_modules/xmlbuilder/lib/XMLDTDNotation.js","webpack:///./node_modules/xmlbuilder/lib/XMLElement.js","webpack:///./node_modules/xmlbuilder/lib/XMLStreamWriter.js","webpack:///./node_modules/xmlbuilder/lib/DocumentPosition.js","webpack:///./node_modules/xmlbuilder/lib/XMLDocType.js","webpack:///./node_modules/xmlbuilder/lib/XMLProcessingInstruction.js"],"names":["module","exports","XMLNodeList","nodes","this","Object","defineProperty","prototype","get","length","clone","item","index","call","Element","Attribute","Text","CData","EntityReference","EntityDeclaration","ProcessingInstruction","Comment","Document","DocType","DocumentFragment","NotationDeclaration","Declaration","Raw","AttributeDeclaration","ElementDeclaration","Dummy","builder","defaults","parser","processors","extend","child","parent","key","hasProp","ctor","constructor","__super__","hasOwnProperty","ValidationError","superClass","message","Error","Builder","Parser","parseString","parseStringPromise","None","OpenTag","InsideTag","CloseTag","XMLDOMImplementation","hasFeature","feature","version","createDocumentType","qualifiedName","publicId","systemId","createDocument","namespaceURI","doctype","createHTMLDocument","title","getFeature","NodeType","XMLNode","XMLDummy","type","create","toString","options","isObject","XMLDTDEntity","pe","name","value","debugInfo","stringify","pubID","sysID","internal","dtdPubID","dtdSysID","nData","dtdNData","dtdEntityValue","writer","dtdEntity","filterOptions","XMLDTDAttList","elementName","attributeName","attributeType","defaultValueType","defaultValue","indexOf","match","dtdAttType","dtdAttDefault","dtdAttList","XMLDOMStringList","arr","contains","str","XMLWriterBase","XMLStringWriter","document","doc","i","len","r","ref","children","writeChildNode","pretty","slice","newline","XMLAttribute","attValue","isId","schemaTypeInfo","set","attribute","isEqualNode","node","prefix","localName","XMLDTDElement","Array","isArray","join","dtdElementValue","dtdElement","escapeCDATA","requiresCDATA","wrapCDATA","entry","replace","opts","buildObject","rootObj","attrkey","charkey","render","rootElement","rootName","keys","_this","element","obj","attr","cdata","raw","txt","ele","up","att","xmldec","headless","allowSurrogateChars","end","renderOpts","assign","getValue","isEmpty","isFunction","isPlainObject","source","sources","target","arguments","apply","val","proto","getPrototypeOf","Function","valueOf","XMLRaw","text","XMLDeclaration","encoding","standalone","xmlVersion","xmlEncoding","xmlStandalone","declaration","XMLCharacterData","XMLCData","WriterState","XMLComment","XMLDTDNotation","XMLDocType","XMLDocument","XMLElement","XMLProcessingInstruction","XMLStringifier","XMLText","XMLDocumentCB","onData","onEnd","writerOptions","onDataCallback","onEndCallback","currentNode","currentLevel","openTags","documentStarted","documentCompleted","root","createChildNode","attName","attributes","ref1","ref2","comment","attribs","dummy","instruction","openCurrent","oldValidationFlag","noValidation","keepNullAttributes","insTarget","insValue","processingInstruction","rootNodeName","attList","entity","pEntity","notation","dtdNotation","closeNode","openNode","chunk","isOpen","state","indent","endline","isClosed","level","nod","dat","com","ins","dec","dtd","e","n","t","d","c","a","ent","pent","not","substringData","offset","count","appendData","arg","insertData","deleteData","replaceData","data","bind","fn","me","assertLegalName","assertLegalChar","textEscape","attEscape","convertAttKey","convertPIKey","convertTextKey","convertCDataKey","convertCommentKey","convertRawKey","regex","res","ampregex","noDoubleEncoding","XMLNamedNodeMap","getNamedItem","setNamedItem","oldNode","nodeName","removeNamedItem","getNamedItemNS","setNamedItemNS","removeNamedItemNS","stripBOM","substring","XMLStreamWriter","begin","stringWriter","streamWriter","stream","implementation","nodeType","writerState","prefixMatch","RegExp","normalize","toLowerCase","firstCharLowerCase","charAt","stripPrefix","parseNumbers","isNaN","parseInt","parseFloat","parseBooleans","test","XMLDOMErrorHandler","XMLDOMConfiguration","defaultParams","params","getParameter","canSetParameter","setParameter","DocumentPosition","parent1","baseURI","childNodeList","j","textContent","setParent","results","push","childNode","k","lastChild","len1","ref3","ignoreDecorators","substr","separateArrayItems","keepNullNodes","insertBefore","newChild","refChild","removed","splice","isRoot","insertAfter","remove","concat","commentBefore","commentAfter","instructionBefore","instructionAfter","unshift","rootObject","prev","next","importDocument","clonedRoot","u","importXMLBuilder","replaceChild","oldChild","removeChild","appendChild","hasChildNodes","cloneNode","deep","isSupported","hasAttributes","compareDocumentPosition","other","Disconnected","ImplementationSpecific","Math","random","Preceding","Following","isAncestor","Contains","isDescendant","isPreceding","isSameNode","lookupPrefix","isDefaultNamespace","lookupNamespaceURI","setUserData","handler","getUserData","isDescendantChild","nodePos","thisPos","treePosition","isFollowing","found","pos","foreachTreeNode","func","previousSibling","nextSibling","splitText","replaceWholeText","content","handleError","error","filteredOptions","ref4","ref5","ref6","allowEmpty","dontPrettyTextNodes","dontprettytextnodes","spaceBeforeSlash","spacebeforeslash","suppressPrettyCount","user","indentLevel","openAttribute","closeAttribute","docType","childNodeCount","firstChildNode","prettySuppressed","every","explicitCharkey","trim","normalizeTags","explicitArray","ignoreAttrs","mergeAttrs","explicitRoot","validator","xmlns","explicitChildren","childkey","charsAsChildren","includeWhiteChars","async","strict","attrNameProcessors","attrValueProcessors","tagNameProcessors","valueProcessors","emptyTag","preserveChildrenOrder","chunkSize","bom","events","processItem","sax","setImmediate","thing","process","reset","assignOrPush","processAsync","xmlnskey","err","remaining","saxParser","write","close","error1","errThrown","emit","newValue","ontext","stack","removeAllListeners","onerror","resume","onend","ended","resultObject","EXPLICIT_CHARKEY","onopentag","processedKey","uri","local","onclosetag","emptyStr","objClone","old","s","xpath","pop","getOwnPropertyNames","charChild","oncdata","cb","on","result","Promise","resolve","reject","b","documentURI","domConfig","createElement","tagName","createDocumentFragment","createTextNode","createComment","createCDATASection","createProcessingInstruction","createAttribute","createEntityReference","getElementsByTagName","tagname","importNode","importedNode","createElementNS","createAttributeNS","getElementsByTagNameNS","getElementById","elementId","adoptNode","normalizeDocument","renameNode","getElementsByClassName","classNames","createEvent","eventInterface","createRange","createNodeIterator","whatToShow","filter","createTreeWalker","documentObject","attributeMap","clonedSelf","forEach","clonedChild","removeAttribute","getAttribute","setAttribute","getAttributeNode","setAttributeNode","newAttr","removeAttributeNode","oldAttr","getAttributeNS","setAttributeNS","removeAttributeNS","getAttributeNodeNS","setAttributeNodeNS","hasAttribute","hasAttributeNS","setIdAttribute","setIdAttributeNS","setIdAttributeNode","idAttr","isLastRootNode","ContainedBy"],"mappings":"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","file":"static/js/chunk-vendors~f6acd631.7fe1a3a3.js","sourcesContent":["// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLNodeList;\n\n module.exports = XMLNodeList = (function() {\n function XMLNodeList(nodes) {\n this.nodes = nodes;\n }\n\n Object.defineProperty(XMLNodeList.prototype, 'length', {\n get: function() {\n return this.nodes.length || 0;\n }\n });\n\n XMLNodeList.prototype.clone = function() {\n return this.nodes = null;\n };\n\n XMLNodeList.prototype.item = function(index) {\n return this.nodes[index] || null;\n };\n\n return XMLNodeList;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n Element: 1,\n Attribute: 2,\n Text: 3,\n CData: 4,\n EntityReference: 5,\n EntityDeclaration: 6,\n ProcessingInstruction: 7,\n Comment: 8,\n Document: 9,\n DocType: 10,\n DocumentFragment: 11,\n NotationDeclaration: 12,\n Declaration: 201,\n Raw: 202,\n AttributeDeclaration: 203,\n ElementDeclaration: 204,\n Dummy: 205\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var builder, defaults, parser, processors,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n defaults = require('./defaults');\n\n builder = require('./builder');\n\n parser = require('./parser');\n\n processors = require('./processors');\n\n exports.defaults = defaults.defaults;\n\n exports.processors = processors;\n\n exports.ValidationError = (function(superClass) {\n extend(ValidationError, superClass);\n\n function ValidationError(message) {\n this.message = message;\n }\n\n return ValidationError;\n\n })(Error);\n\n exports.Builder = builder.Builder;\n\n exports.Parser = parser.Parser;\n\n exports.parseString = parser.parseString;\n\n exports.parseStringPromise = parser.parseStringPromise;\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n None: 0,\n OpenTag: 1,\n InsideTag: 2,\n CloseTag: 3\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMImplementation;\n\n module.exports = XMLDOMImplementation = (function() {\n function XMLDOMImplementation() {}\n\n XMLDOMImplementation.prototype.hasFeature = function(feature, version) {\n return true;\n };\n\n XMLDOMImplementation.prototype.createDocumentType = function(qualifiedName, publicId, systemId) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.createDocument = function(namespaceURI, qualifiedName, doctype) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.createHTMLDocument = function(title) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n XMLDOMImplementation.prototype.getFeature = function(feature, version) {\n throw new Error(\"This DOM method is not implemented.\");\n };\n\n return XMLDOMImplementation;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDummy, XMLNode,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDummy = (function(superClass) {\n extend(XMLDummy, superClass);\n\n function XMLDummy(parent) {\n XMLDummy.__super__.constructor.call(this, parent);\n this.type = NodeType.Dummy;\n }\n\n XMLDummy.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLDummy.prototype.toString = function(options) {\n return '';\n };\n\n return XMLDummy;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDEntity, XMLNode, isObject,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDEntity = (function(superClass) {\n extend(XMLDTDEntity, superClass);\n\n function XMLDTDEntity(parent, pe, name, value) {\n XMLDTDEntity.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD entity name. \" + this.debugInfo(name));\n }\n if (value == null) {\n throw new Error(\"Missing DTD entity value. \" + this.debugInfo(name));\n }\n this.pe = !!pe;\n this.name = this.stringify.name(name);\n this.type = NodeType.EntityDeclaration;\n if (!isObject(value)) {\n this.value = this.stringify.dtdEntityValue(value);\n this.internal = true;\n } else {\n if (!value.pubID && !value.sysID) {\n throw new Error(\"Public and/or system identifiers are required for an external entity. \" + this.debugInfo(name));\n }\n if (value.pubID && !value.sysID) {\n throw new Error(\"System identifier is required for a public external entity. \" + this.debugInfo(name));\n }\n this.internal = false;\n if (value.pubID != null) {\n this.pubID = this.stringify.dtdPubID(value.pubID);\n }\n if (value.sysID != null) {\n this.sysID = this.stringify.dtdSysID(value.sysID);\n }\n if (value.nData != null) {\n this.nData = this.stringify.dtdNData(value.nData);\n }\n if (this.pe && this.nData) {\n throw new Error(\"Notation declaration is not allowed in a parameter entity. \" + this.debugInfo(name));\n }\n }\n }\n\n Object.defineProperty(XMLDTDEntity.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'notationName', {\n get: function() {\n return this.nData || null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'inputEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'xmlEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDTDEntity.prototype, 'xmlVersion', {\n get: function() {\n return null;\n }\n });\n\n XMLDTDEntity.prototype.toString = function(options) {\n return this.options.writer.dtdEntity(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDEntity;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDAttList, XMLNode,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDAttList = (function(superClass) {\n extend(XMLDTDAttList, superClass);\n\n function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n XMLDTDAttList.__super__.constructor.call(this, parent);\n if (elementName == null) {\n throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n }\n if (attributeName == null) {\n throw new Error(\"Missing DTD attribute name. \" + this.debugInfo(elementName));\n }\n if (!attributeType) {\n throw new Error(\"Missing DTD attribute type. \" + this.debugInfo(elementName));\n }\n if (!defaultValueType) {\n throw new Error(\"Missing DTD attribute default. \" + this.debugInfo(elementName));\n }\n if (defaultValueType.indexOf('#') !== 0) {\n defaultValueType = '#' + defaultValueType;\n }\n if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) {\n throw new Error(\"Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n }\n if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) {\n throw new Error(\"Default value only applies to #FIXED or #DEFAULT. \" + this.debugInfo(elementName));\n }\n this.elementName = this.stringify.name(elementName);\n this.type = NodeType.AttributeDeclaration;\n this.attributeName = this.stringify.name(attributeName);\n this.attributeType = this.stringify.dtdAttType(attributeType);\n if (defaultValue) {\n this.defaultValue = this.stringify.dtdAttDefault(defaultValue);\n }\n this.defaultValueType = defaultValueType;\n }\n\n XMLDTDAttList.prototype.toString = function(options) {\n return this.options.writer.dtdAttList(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDAttList;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMStringList;\n\n module.exports = XMLDOMStringList = (function() {\n function XMLDOMStringList(arr) {\n this.arr = arr || [];\n }\n\n Object.defineProperty(XMLDOMStringList.prototype, 'length', {\n get: function() {\n return this.arr.length;\n }\n });\n\n XMLDOMStringList.prototype.item = function(index) {\n return this.arr[index] || null;\n };\n\n XMLDOMStringList.prototype.contains = function(str) {\n return this.arr.indexOf(str) !== -1;\n };\n\n return XMLDOMStringList;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLStringWriter, XMLWriterBase,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n XMLWriterBase = require('./XMLWriterBase');\n\n module.exports = XMLStringWriter = (function(superClass) {\n extend(XMLStringWriter, superClass);\n\n function XMLStringWriter(options) {\n XMLStringWriter.__super__.constructor.call(this, options);\n }\n\n XMLStringWriter.prototype.document = function(doc, options) {\n var child, i, len, r, ref;\n options = this.filterOptions(options);\n r = '';\n ref = doc.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n r += this.writeChildNode(child, options, 0);\n }\n if (options.pretty && r.slice(-options.newline.length) === options.newline) {\n r = r.slice(0, -options.newline.length);\n }\n return r;\n };\n\n return XMLStringWriter;\n\n })(XMLWriterBase);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLAttribute, XMLNode;\n\n NodeType = require('./NodeType');\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLAttribute = (function() {\n function XMLAttribute(parent, name, value) {\n this.parent = parent;\n if (this.parent) {\n this.options = this.parent.options;\n this.stringify = this.parent.stringify;\n }\n if (name == null) {\n throw new Error(\"Missing attribute name. \" + this.debugInfo(name));\n }\n this.name = this.stringify.name(name);\n this.value = this.stringify.attValue(value);\n this.type = NodeType.Attribute;\n this.isId = false;\n this.schemaTypeInfo = null;\n }\n\n Object.defineProperty(XMLAttribute.prototype, 'nodeType', {\n get: function() {\n return this.type;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'ownerElement', {\n get: function() {\n return this.parent;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'textContent', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'namespaceURI', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'prefix', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'localName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLAttribute.prototype, 'specified', {\n get: function() {\n return true;\n }\n });\n\n XMLAttribute.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLAttribute.prototype.toString = function(options) {\n return this.options.writer.attribute(this, this.options.writer.filterOptions(options));\n };\n\n XMLAttribute.prototype.debugInfo = function(name) {\n name = name || this.name;\n if (name == null) {\n return \"parent: <\" + this.parent.name + \">\";\n } else {\n return \"attribute: {\" + name + \"}, parent: <\" + this.parent.name + \">\";\n }\n };\n\n XMLAttribute.prototype.isEqualNode = function(node) {\n if (node.namespaceURI !== this.namespaceURI) {\n return false;\n }\n if (node.prefix !== this.prefix) {\n return false;\n }\n if (node.localName !== this.localName) {\n return false;\n }\n if (node.value !== this.value) {\n return false;\n }\n return true;\n };\n\n return XMLAttribute;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDElement, XMLNode,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDElement = (function(superClass) {\n extend(XMLDTDElement, superClass);\n\n function XMLDTDElement(parent, name, value) {\n XMLDTDElement.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD element name. \" + this.debugInfo());\n }\n if (!value) {\n value = '(#PCDATA)';\n }\n if (Array.isArray(value)) {\n value = '(' + value.join(',') + ')';\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.ElementDeclaration;\n this.value = this.stringify.dtdElementValue(value);\n }\n\n XMLDTDElement.prototype.toString = function(options) {\n return this.options.writer.dtdElement(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDElement;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var builder, defaults, escapeCDATA, requiresCDATA, wrapCDATA,\n hasProp = {}.hasOwnProperty;\n\n builder = require('xmlbuilder');\n\n defaults = require('./defaults').defaults;\n\n requiresCDATA = function(entry) {\n return typeof entry === \"string\" && (entry.indexOf('&') >= 0 || entry.indexOf('>') >= 0 || entry.indexOf('<') >= 0);\n };\n\n wrapCDATA = function(entry) {\n return \"\";\n };\n\n escapeCDATA = function(entry) {\n return entry.replace(']]>', ']]]]>');\n };\n\n exports.Builder = (function() {\n function Builder(opts) {\n var key, ref, value;\n this.options = {};\n ref = defaults[\"0.2\"];\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this.options[key] = value;\n }\n for (key in opts) {\n if (!hasProp.call(opts, key)) continue;\n value = opts[key];\n this.options[key] = value;\n }\n }\n\n Builder.prototype.buildObject = function(rootObj) {\n var attrkey, charkey, render, rootElement, rootName;\n attrkey = this.options.attrkey;\n charkey = this.options.charkey;\n if ((Object.keys(rootObj).length === 1) && (this.options.rootName === defaults['0.2'].rootName)) {\n rootName = Object.keys(rootObj)[0];\n rootObj = rootObj[rootName];\n } else {\n rootName = this.options.rootName;\n }\n render = (function(_this) {\n return function(element, obj) {\n var attr, child, entry, index, key, value;\n if (typeof obj !== 'object') {\n if (_this.options.cdata && requiresCDATA(obj)) {\n element.raw(wrapCDATA(obj));\n } else {\n element.txt(obj);\n }\n } else if (Array.isArray(obj)) {\n for (index in obj) {\n if (!hasProp.call(obj, index)) continue;\n child = obj[index];\n for (key in child) {\n entry = child[key];\n element = render(element.ele(key), entry).up();\n }\n }\n } else {\n for (key in obj) {\n if (!hasProp.call(obj, key)) continue;\n child = obj[key];\n if (key === attrkey) {\n if (typeof child === \"object\") {\n for (attr in child) {\n value = child[attr];\n element = element.att(attr, value);\n }\n }\n } else if (key === charkey) {\n if (_this.options.cdata && requiresCDATA(child)) {\n element = element.raw(wrapCDATA(child));\n } else {\n element = element.txt(child);\n }\n } else if (Array.isArray(child)) {\n for (index in child) {\n if (!hasProp.call(child, index)) continue;\n entry = child[index];\n if (typeof entry === 'string') {\n if (_this.options.cdata && requiresCDATA(entry)) {\n element = element.ele(key).raw(wrapCDATA(entry)).up();\n } else {\n element = element.ele(key, entry).up();\n }\n } else {\n element = render(element.ele(key), entry).up();\n }\n }\n } else if (typeof child === \"object\") {\n element = render(element.ele(key), child).up();\n } else {\n if (typeof child === 'string' && _this.options.cdata && requiresCDATA(child)) {\n element = element.ele(key).raw(wrapCDATA(child)).up();\n } else {\n if (child == null) {\n child = '';\n }\n element = element.ele(key, child.toString()).up();\n }\n }\n }\n }\n return element;\n };\n })(this);\n rootElement = builder.create(rootName, this.options.xmldec, this.options.doctype, {\n headless: this.options.headless,\n allowSurrogateChars: this.options.allowSurrogateChars\n });\n return render(rootElement, rootObj).end(this.options.renderOpts);\n };\n\n return Builder;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject,\n slice = [].slice,\n hasProp = {}.hasOwnProperty;\n\n assign = function() {\n var i, key, len, source, sources, target;\n target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n if (isFunction(Object.assign)) {\n Object.assign.apply(null, arguments);\n } else {\n for (i = 0, len = sources.length; i < len; i++) {\n source = sources[i];\n if (source != null) {\n for (key in source) {\n if (!hasProp.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n };\n\n isFunction = function(val) {\n return !!val && Object.prototype.toString.call(val) === '[object Function]';\n };\n\n isObject = function(val) {\n var ref;\n return !!val && ((ref = typeof val) === 'function' || ref === 'object');\n };\n\n isArray = function(val) {\n if (isFunction(Array.isArray)) {\n return Array.isArray(val);\n } else {\n return Object.prototype.toString.call(val) === '[object Array]';\n }\n };\n\n isEmpty = function(val) {\n var key;\n if (isArray(val)) {\n return !val.length;\n } else {\n for (key in val) {\n if (!hasProp.call(val, key)) continue;\n return false;\n }\n return true;\n }\n };\n\n isPlainObject = function(val) {\n var ctor, proto;\n return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));\n };\n\n getValue = function(obj) {\n if (isFunction(obj.valueOf)) {\n return obj.valueOf();\n } else {\n return obj;\n }\n };\n\n module.exports.assign = assign;\n\n module.exports.isFunction = isFunction;\n\n module.exports.isObject = isObject;\n\n module.exports.isArray = isArray;\n\n module.exports.isEmpty = isEmpty;\n\n module.exports.isPlainObject = isPlainObject;\n\n module.exports.getValue = getValue;\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLNode, XMLRaw,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLRaw = (function(superClass) {\n extend(XMLRaw, superClass);\n\n function XMLRaw(parent, text) {\n XMLRaw.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing raw text. \" + this.debugInfo());\n }\n this.type = NodeType.Raw;\n this.value = this.stringify.raw(text);\n }\n\n XMLRaw.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLRaw.prototype.toString = function(options) {\n return this.options.writer.raw(this, this.options.writer.filterOptions(options));\n };\n\n return XMLRaw;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDeclaration, XMLNode, isObject,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDeclaration = (function(superClass) {\n extend(XMLDeclaration, superClass);\n\n function XMLDeclaration(parent, version, encoding, standalone) {\n var ref;\n XMLDeclaration.__super__.constructor.call(this, parent);\n if (isObject(version)) {\n ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone;\n }\n if (!version) {\n version = '1.0';\n }\n this.type = NodeType.Declaration;\n this.version = this.stringify.xmlVersion(version);\n if (encoding != null) {\n this.encoding = this.stringify.xmlEncoding(encoding);\n }\n if (standalone != null) {\n this.standalone = this.stringify.xmlStandalone(standalone);\n }\n }\n\n XMLDeclaration.prototype.toString = function(options) {\n return this.options.writer.declaration(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDeclaration;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCData, XMLCharacterData,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLCData = (function(superClass) {\n extend(XMLCData, superClass);\n\n function XMLCData(parent, text) {\n XMLCData.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing CDATA text. \" + this.debugInfo());\n }\n this.name = \"#cdata-section\";\n this.type = NodeType.CData;\n this.value = this.stringify.cdata(text);\n }\n\n XMLCData.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLCData.prototype.toString = function(options) {\n return this.options.writer.cdata(this, this.options.writer.filterOptions(options));\n };\n\n return XMLCData;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLAttribute, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDocument, XMLDocumentCB, XMLElement, XMLProcessingInstruction, XMLRaw, XMLStringWriter, XMLStringifier, XMLText, getValue, isFunction, isObject, isPlainObject, ref,\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, isPlainObject = ref.isPlainObject, getValue = ref.getValue;\n\n NodeType = require('./NodeType');\n\n XMLDocument = require('./XMLDocument');\n\n XMLElement = require('./XMLElement');\n\n XMLCData = require('./XMLCData');\n\n XMLComment = require('./XMLComment');\n\n XMLRaw = require('./XMLRaw');\n\n XMLText = require('./XMLText');\n\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n XMLDeclaration = require('./XMLDeclaration');\n\n XMLDocType = require('./XMLDocType');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLAttribute = require('./XMLAttribute');\n\n XMLStringifier = require('./XMLStringifier');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n WriterState = require('./WriterState');\n\n module.exports = XMLDocumentCB = (function() {\n function XMLDocumentCB(options, onData, onEnd) {\n var writerOptions;\n this.name = \"?xml\";\n this.type = NodeType.Document;\n options || (options = {});\n writerOptions = {};\n if (!options.writer) {\n options.writer = new XMLStringWriter();\n } else if (isPlainObject(options.writer)) {\n writerOptions = options.writer;\n options.writer = new XMLStringWriter();\n }\n this.options = options;\n this.writer = options.writer;\n this.writerOptions = this.writer.filterOptions(writerOptions);\n this.stringify = new XMLStringifier(options);\n this.onDataCallback = onData || function() {};\n this.onEndCallback = onEnd || function() {};\n this.currentNode = null;\n this.currentLevel = -1;\n this.openTags = {};\n this.documentStarted = false;\n this.documentCompleted = false;\n this.root = null;\n }\n\n XMLDocumentCB.prototype.createChildNode = function(node) {\n var att, attName, attributes, child, i, len, ref1, ref2;\n switch (node.type) {\n case NodeType.CData:\n this.cdata(node.value);\n break;\n case NodeType.Comment:\n this.comment(node.value);\n break;\n case NodeType.Element:\n attributes = {};\n ref1 = node.attribs;\n for (attName in ref1) {\n if (!hasProp.call(ref1, attName)) continue;\n att = ref1[attName];\n attributes[attName] = att.value;\n }\n this.node(node.name, attributes);\n break;\n case NodeType.Dummy:\n this.dummy();\n break;\n case NodeType.Raw:\n this.raw(node.value);\n break;\n case NodeType.Text:\n this.text(node.value);\n break;\n case NodeType.ProcessingInstruction:\n this.instruction(node.target, node.value);\n break;\n default:\n throw new Error(\"This XML node type is not supported in a JS object: \" + node.constructor.name);\n }\n ref2 = node.children;\n for (i = 0, len = ref2.length; i < len; i++) {\n child = ref2[i];\n this.createChildNode(child);\n if (child.type === NodeType.Element) {\n this.up();\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.dummy = function() {\n return this;\n };\n\n XMLDocumentCB.prototype.node = function(name, attributes, text) {\n var ref1;\n if (name == null) {\n throw new Error(\"Missing node name.\");\n }\n if (this.root && this.currentLevel === -1) {\n throw new Error(\"Document can only have one root node. \" + this.debugInfo(name));\n }\n this.openCurrent();\n name = getValue(name);\n if (attributes == null) {\n attributes = {};\n }\n attributes = getValue(attributes);\n if (!isObject(attributes)) {\n ref1 = [attributes, text], text = ref1[0], attributes = ref1[1];\n }\n this.currentNode = new XMLElement(this, name, attributes);\n this.currentNode.children = false;\n this.currentLevel++;\n this.openTags[this.currentLevel] = this.currentNode;\n if (text != null) {\n this.text(text);\n }\n return this;\n };\n\n XMLDocumentCB.prototype.element = function(name, attributes, text) {\n var child, i, len, oldValidationFlag, ref1, root;\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n this.dtdElement.apply(this, arguments);\n } else {\n if (Array.isArray(name) || isObject(name) || isFunction(name)) {\n oldValidationFlag = this.options.noValidation;\n this.options.noValidation = true;\n root = new XMLDocument(this.options).element('TEMP_ROOT');\n root.element(name);\n this.options.noValidation = oldValidationFlag;\n ref1 = root.children;\n for (i = 0, len = ref1.length; i < len; i++) {\n child = ref1[i];\n this.createChildNode(child);\n if (child.type === NodeType.Element) {\n this.up();\n }\n }\n } else {\n this.node(name, attributes, text);\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.attribute = function(name, value) {\n var attName, attValue;\n if (!this.currentNode || this.currentNode.children) {\n throw new Error(\"att() can only be used immediately after an ele() call in callback mode. \" + this.debugInfo(name));\n }\n if (name != null) {\n name = getValue(name);\n }\n if (isObject(name)) {\n for (attName in name) {\n if (!hasProp.call(name, attName)) continue;\n attValue = name[attName];\n this.attribute(attName, attValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n if (this.options.keepNullAttributes && (value == null)) {\n this.currentNode.attribs[name] = new XMLAttribute(this, name, \"\");\n } else if (value != null) {\n this.currentNode.attribs[name] = new XMLAttribute(this, name, value);\n }\n }\n return this;\n };\n\n XMLDocumentCB.prototype.text = function(value) {\n var node;\n this.openCurrent();\n node = new XMLText(this, value);\n this.onData(this.writer.text(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.cdata = function(value) {\n var node;\n this.openCurrent();\n node = new XMLCData(this, value);\n this.onData(this.writer.cdata(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.comment = function(value) {\n var node;\n this.openCurrent();\n node = new XMLComment(this, value);\n this.onData(this.writer.comment(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.raw = function(value) {\n var node;\n this.openCurrent();\n node = new XMLRaw(this, value);\n this.onData(this.writer.raw(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.instruction = function(target, value) {\n var i, insTarget, insValue, len, node;\n this.openCurrent();\n if (target != null) {\n target = getValue(target);\n }\n if (value != null) {\n value = getValue(value);\n }\n if (Array.isArray(target)) {\n for (i = 0, len = target.length; i < len; i++) {\n insTarget = target[i];\n this.instruction(insTarget);\n }\n } else if (isObject(target)) {\n for (insTarget in target) {\n if (!hasProp.call(target, insTarget)) continue;\n insValue = target[insTarget];\n this.instruction(insTarget, insValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n node = new XMLProcessingInstruction(this, target, value);\n this.onData(this.writer.processingInstruction(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n }\n return this;\n };\n\n XMLDocumentCB.prototype.declaration = function(version, encoding, standalone) {\n var node;\n this.openCurrent();\n if (this.documentStarted) {\n throw new Error(\"declaration() must be the first node.\");\n }\n node = new XMLDeclaration(this, version, encoding, standalone);\n this.onData(this.writer.declaration(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.doctype = function(root, pubID, sysID) {\n this.openCurrent();\n if (root == null) {\n throw new Error(\"Missing root node name.\");\n }\n if (this.root) {\n throw new Error(\"dtd() must come before the root node.\");\n }\n this.currentNode = new XMLDocType(this, pubID, sysID);\n this.currentNode.rootNodeName = root;\n this.currentNode.children = false;\n this.currentLevel++;\n this.openTags[this.currentLevel] = this.currentNode;\n return this;\n };\n\n XMLDocumentCB.prototype.dtdElement = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDElement(this, name, value);\n this.onData(this.writer.dtdElement(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n var node;\n this.openCurrent();\n node = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n this.onData(this.writer.dtdAttList(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.entity = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDEntity(this, false, name, value);\n this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.pEntity = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDEntity(this, true, name, value);\n this.onData(this.writer.dtdEntity(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.notation = function(name, value) {\n var node;\n this.openCurrent();\n node = new XMLDTDNotation(this, name, value);\n this.onData(this.writer.dtdNotation(node, this.writerOptions, this.currentLevel + 1), this.currentLevel + 1);\n return this;\n };\n\n XMLDocumentCB.prototype.up = function() {\n if (this.currentLevel < 0) {\n throw new Error(\"The document node has no parent.\");\n }\n if (this.currentNode) {\n if (this.currentNode.children) {\n this.closeNode(this.currentNode);\n } else {\n this.openNode(this.currentNode);\n }\n this.currentNode = null;\n } else {\n this.closeNode(this.openTags[this.currentLevel]);\n }\n delete this.openTags[this.currentLevel];\n this.currentLevel--;\n return this;\n };\n\n XMLDocumentCB.prototype.end = function() {\n while (this.currentLevel >= 0) {\n this.up();\n }\n return this.onEnd();\n };\n\n XMLDocumentCB.prototype.openCurrent = function() {\n if (this.currentNode) {\n this.currentNode.children = true;\n return this.openNode(this.currentNode);\n }\n };\n\n XMLDocumentCB.prototype.openNode = function(node) {\n var att, chunk, name, ref1;\n if (!node.isOpen) {\n if (!this.root && this.currentLevel === 0 && node.type === NodeType.Element) {\n this.root = node;\n }\n chunk = '';\n if (node.type === NodeType.Element) {\n this.writerOptions.state = WriterState.OpenTag;\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '<' + node.name;\n ref1 = node.attribs;\n for (name in ref1) {\n if (!hasProp.call(ref1, name)) continue;\n att = ref1[name];\n chunk += this.writer.attribute(att, this.writerOptions, this.currentLevel);\n }\n chunk += (node.children ? '>' : '/>') + this.writer.endline(node, this.writerOptions, this.currentLevel);\n this.writerOptions.state = WriterState.InsideTag;\n } else {\n this.writerOptions.state = WriterState.OpenTag;\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '';\n }\n chunk += this.writer.endline(node, this.writerOptions, this.currentLevel);\n }\n this.onData(chunk, this.currentLevel);\n return node.isOpen = true;\n }\n };\n\n XMLDocumentCB.prototype.closeNode = function(node) {\n var chunk;\n if (!node.isClosed) {\n chunk = '';\n this.writerOptions.state = WriterState.CloseTag;\n if (node.type === NodeType.Element) {\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + '' + this.writer.endline(node, this.writerOptions, this.currentLevel);\n } else {\n chunk = this.writer.indent(node, this.writerOptions, this.currentLevel) + ']>' + this.writer.endline(node, this.writerOptions, this.currentLevel);\n }\n this.writerOptions.state = WriterState.None;\n this.onData(chunk, this.currentLevel);\n return node.isClosed = true;\n }\n };\n\n XMLDocumentCB.prototype.onData = function(chunk, level) {\n this.documentStarted = true;\n return this.onDataCallback(chunk, level + 1);\n };\n\n XMLDocumentCB.prototype.onEnd = function() {\n this.documentCompleted = true;\n return this.onEndCallback();\n };\n\n XMLDocumentCB.prototype.debugInfo = function(name) {\n if (name == null) {\n return \"\";\n } else {\n return \"node: <\" + name + \">\";\n }\n };\n\n XMLDocumentCB.prototype.ele = function() {\n return this.element.apply(this, arguments);\n };\n\n XMLDocumentCB.prototype.nod = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.txt = function(value) {\n return this.text(value);\n };\n\n XMLDocumentCB.prototype.dat = function(value) {\n return this.cdata(value);\n };\n\n XMLDocumentCB.prototype.com = function(value) {\n return this.comment(value);\n };\n\n XMLDocumentCB.prototype.ins = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLDocumentCB.prototype.dec = function(version, encoding, standalone) {\n return this.declaration(version, encoding, standalone);\n };\n\n XMLDocumentCB.prototype.dtd = function(root, pubID, sysID) {\n return this.doctype(root, pubID, sysID);\n };\n\n XMLDocumentCB.prototype.e = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.n = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLDocumentCB.prototype.t = function(value) {\n return this.text(value);\n };\n\n XMLDocumentCB.prototype.d = function(value) {\n return this.cdata(value);\n };\n\n XMLDocumentCB.prototype.c = function(value) {\n return this.comment(value);\n };\n\n XMLDocumentCB.prototype.r = function(value) {\n return this.raw(value);\n };\n\n XMLDocumentCB.prototype.i = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLDocumentCB.prototype.att = function() {\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n return this.attList.apply(this, arguments);\n } else {\n return this.attribute.apply(this, arguments);\n }\n };\n\n XMLDocumentCB.prototype.a = function() {\n if (this.currentNode && this.currentNode.type === NodeType.DocType) {\n return this.attList.apply(this, arguments);\n } else {\n return this.attribute.apply(this, arguments);\n }\n };\n\n XMLDocumentCB.prototype.ent = function(name, value) {\n return this.entity(name, value);\n };\n\n XMLDocumentCB.prototype.pent = function(name, value) {\n return this.pEntity(name, value);\n };\n\n XMLDocumentCB.prototype.not = function(name, value) {\n return this.notation(name, value);\n };\n\n return XMLDocumentCB;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLCharacterData, XMLNode,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n module.exports = XMLCharacterData = (function(superClass) {\n extend(XMLCharacterData, superClass);\n\n function XMLCharacterData(parent) {\n XMLCharacterData.__super__.constructor.call(this, parent);\n this.value = '';\n }\n\n Object.defineProperty(XMLCharacterData.prototype, 'data', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n Object.defineProperty(XMLCharacterData.prototype, 'length', {\n get: function() {\n return this.value.length;\n }\n });\n\n Object.defineProperty(XMLCharacterData.prototype, 'textContent', {\n get: function() {\n return this.value;\n },\n set: function(value) {\n return this.value = value || '';\n }\n });\n\n XMLCharacterData.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLCharacterData.prototype.substringData = function(offset, count) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.appendData = function(arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.insertData = function(offset, arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.deleteData = function(offset, count) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.replaceData = function(offset, count, arg) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLCharacterData.prototype.isEqualNode = function(node) {\n if (!XMLCharacterData.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.data !== this.data) {\n return false;\n }\n return true;\n };\n\n return XMLCharacterData;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLStringifier,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n hasProp = {}.hasOwnProperty;\n\n module.exports = XMLStringifier = (function() {\n function XMLStringifier(options) {\n this.assertLegalName = bind(this.assertLegalName, this);\n this.assertLegalChar = bind(this.assertLegalChar, this);\n var key, ref, value;\n options || (options = {});\n this.options = options;\n if (!this.options.version) {\n this.options.version = '1.0';\n }\n ref = options.stringify || {};\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this[key] = value;\n }\n }\n\n XMLStringifier.prototype.name = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalName('' + val || '');\n };\n\n XMLStringifier.prototype.text = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar(this.textEscape('' + val || ''));\n };\n\n XMLStringifier.prototype.cdata = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n val = val.replace(']]>', ']]]]>');\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.comment = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (val.match(/--/)) {\n throw new Error(\"Comment text cannot contain double-hypen: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.raw = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return '' + val || '';\n };\n\n XMLStringifier.prototype.attValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar(this.attEscape(val = '' + val || ''));\n };\n\n XMLStringifier.prototype.insTarget = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.insValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (val.match(/\\?>/)) {\n throw new Error(\"Invalid processing instruction value: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.xmlVersion = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (!val.match(/1\\.[0-9]+/)) {\n throw new Error(\"Invalid version number: \" + val);\n }\n return val;\n };\n\n XMLStringifier.prototype.xmlEncoding = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n val = '' + val || '';\n if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-])*$/)) {\n throw new Error(\"Invalid encoding: \" + val);\n }\n return this.assertLegalChar(val);\n };\n\n XMLStringifier.prototype.xmlStandalone = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n if (val) {\n return \"yes\";\n } else {\n return \"no\";\n }\n };\n\n XMLStringifier.prototype.dtdPubID = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdSysID = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdElementValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdAttType = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdAttDefault = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdEntityValue = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.dtdNData = function(val) {\n if (this.options.noValidation) {\n return val;\n }\n return this.assertLegalChar('' + val || '');\n };\n\n XMLStringifier.prototype.convertAttKey = '@';\n\n XMLStringifier.prototype.convertPIKey = '?';\n\n XMLStringifier.prototype.convertTextKey = '#text';\n\n XMLStringifier.prototype.convertCDataKey = '#cdata';\n\n XMLStringifier.prototype.convertCommentKey = '#comment';\n\n XMLStringifier.prototype.convertRawKey = '#raw';\n\n XMLStringifier.prototype.assertLegalChar = function(str) {\n var regex, res;\n if (this.options.noValidation) {\n return str;\n }\n regex = '';\n if (this.options.version === '1.0') {\n regex = /[\\0-\\x08\\x0B\\f\\x0E-\\x1F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n if (res = str.match(regex)) {\n throw new Error(\"Invalid character in string: \" + str + \" at index \" + res.index);\n }\n } else if (this.options.version === '1.1') {\n regex = /[\\0\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\n if (res = str.match(regex)) {\n throw new Error(\"Invalid character in string: \" + str + \" at index \" + res.index);\n }\n }\n return str;\n };\n\n XMLStringifier.prototype.assertLegalName = function(str) {\n var regex;\n if (this.options.noValidation) {\n return str;\n }\n this.assertLegalChar(str);\n regex = /^([:A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])([\\x2D\\.0-:A-Z_a-z\\xB7\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u037D\\u037F-\\u1FFF\\u200C\\u200D\\u203F\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]|[\\uD800-\\uDB7F][\\uDC00-\\uDFFF])*$/;\n if (!str.match(regex)) {\n throw new Error(\"Invalid character in name\");\n }\n return str;\n };\n\n XMLStringifier.prototype.textEscape = function(str) {\n var ampregex;\n if (this.options.noValidation) {\n return str;\n }\n ampregex = this.options.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n return str.replace(ampregex, '&').replace(//g, '>').replace(/\\r/g, ' ');\n };\n\n XMLStringifier.prototype.attEscape = function(str) {\n var ampregex;\n if (this.options.noValidation) {\n return str;\n }\n ampregex = this.options.noDoubleEncoding ? /(?!&\\S+;)&/g : /&/g;\n return str.replace(ampregex, '&').replace(/\";\n } else if (!((ref3 = this.parent) != null ? ref3.name : void 0)) {\n return \"node: <\" + name + \">\";\n } else {\n return \"node: <\" + name + \">, parent: <\" + this.parent.name + \">\";\n }\n };\n\n XMLNode.prototype.ele = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLNode.prototype.nod = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLNode.prototype.txt = function(value) {\n return this.text(value);\n };\n\n XMLNode.prototype.dat = function(value) {\n return this.cdata(value);\n };\n\n XMLNode.prototype.com = function(value) {\n return this.comment(value);\n };\n\n XMLNode.prototype.ins = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLNode.prototype.doc = function() {\n return this.document();\n };\n\n XMLNode.prototype.dec = function(version, encoding, standalone) {\n return this.declaration(version, encoding, standalone);\n };\n\n XMLNode.prototype.e = function(name, attributes, text) {\n return this.element(name, attributes, text);\n };\n\n XMLNode.prototype.n = function(name, attributes, text) {\n return this.node(name, attributes, text);\n };\n\n XMLNode.prototype.t = function(value) {\n return this.text(value);\n };\n\n XMLNode.prototype.d = function(value) {\n return this.cdata(value);\n };\n\n XMLNode.prototype.c = function(value) {\n return this.comment(value);\n };\n\n XMLNode.prototype.r = function(value) {\n return this.raw(value);\n };\n\n XMLNode.prototype.i = function(target, value) {\n return this.instruction(target, value);\n };\n\n XMLNode.prototype.u = function() {\n return this.up();\n };\n\n XMLNode.prototype.importXMLBuilder = function(doc) {\n return this.importDocument(doc);\n };\n\n XMLNode.prototype.replaceChild = function(newChild, oldChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.removeChild = function(oldChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.appendChild = function(newChild) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.hasChildNodes = function() {\n return this.children.length !== 0;\n };\n\n XMLNode.prototype.cloneNode = function(deep) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.normalize = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isSupported = function(feature, version) {\n return true;\n };\n\n XMLNode.prototype.hasAttributes = function() {\n return this.attribs.length !== 0;\n };\n\n XMLNode.prototype.compareDocumentPosition = function(other) {\n var ref, res;\n ref = this;\n if (ref === other) {\n return 0;\n } else if (this.document() !== other.document()) {\n res = DocumentPosition.Disconnected | DocumentPosition.ImplementationSpecific;\n if (Math.random() < 0.5) {\n res |= DocumentPosition.Preceding;\n } else {\n res |= DocumentPosition.Following;\n }\n return res;\n } else if (ref.isAncestor(other)) {\n return DocumentPosition.Contains | DocumentPosition.Preceding;\n } else if (ref.isDescendant(other)) {\n return DocumentPosition.Contains | DocumentPosition.Following;\n } else if (ref.isPreceding(other)) {\n return DocumentPosition.Preceding;\n } else {\n return DocumentPosition.Following;\n }\n };\n\n XMLNode.prototype.isSameNode = function(other) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.lookupPrefix = function(namespaceURI) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isDefaultNamespace = function(namespaceURI) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.lookupNamespaceURI = function(prefix) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.isEqualNode = function(node) {\n var i, j, ref2;\n if (node.nodeType !== this.nodeType) {\n return false;\n }\n if (node.children.length !== this.children.length) {\n return false;\n }\n for (i = j = 0, ref2 = this.children.length - 1; 0 <= ref2 ? j <= ref2 : j >= ref2; i = 0 <= ref2 ? ++j : --j) {\n if (!this.children[i].isEqualNode(node.children[i])) {\n return false;\n }\n }\n return true;\n };\n\n XMLNode.prototype.getFeature = function(feature, version) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.setUserData = function(key, data, handler) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.getUserData = function(key) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLNode.prototype.contains = function(other) {\n if (!other) {\n return false;\n }\n return other === this || this.isDescendant(other);\n };\n\n XMLNode.prototype.isDescendant = function(node) {\n var child, isDescendantChild, j, len, ref2;\n ref2 = this.children;\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n if (node === child) {\n return true;\n }\n isDescendantChild = child.isDescendant(node);\n if (isDescendantChild) {\n return true;\n }\n }\n return false;\n };\n\n XMLNode.prototype.isAncestor = function(node) {\n return node.isDescendant(this);\n };\n\n XMLNode.prototype.isPreceding = function(node) {\n var nodePos, thisPos;\n nodePos = this.treePosition(node);\n thisPos = this.treePosition(this);\n if (nodePos === -1 || thisPos === -1) {\n return false;\n } else {\n return nodePos < thisPos;\n }\n };\n\n XMLNode.prototype.isFollowing = function(node) {\n var nodePos, thisPos;\n nodePos = this.treePosition(node);\n thisPos = this.treePosition(this);\n if (nodePos === -1 || thisPos === -1) {\n return false;\n } else {\n return nodePos > thisPos;\n }\n };\n\n XMLNode.prototype.treePosition = function(node) {\n var found, pos;\n pos = 0;\n found = false;\n this.foreachTreeNode(this.document(), function(childNode) {\n pos++;\n if (!found && childNode === node) {\n return found = true;\n }\n });\n if (found) {\n return pos;\n } else {\n return -1;\n }\n };\n\n XMLNode.prototype.foreachTreeNode = function(node, func) {\n var child, j, len, ref2, res;\n node || (node = this.document());\n ref2 = node.children;\n for (j = 0, len = ref2.length; j < len; j++) {\n child = ref2[j];\n if (res = func(child)) {\n return res;\n } else {\n res = this.foreachTreeNode(child, func);\n if (res) {\n return res;\n }\n }\n }\n };\n\n return XMLNode;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCharacterData, XMLText,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLText = (function(superClass) {\n extend(XMLText, superClass);\n\n function XMLText(parent, text) {\n XMLText.__super__.constructor.call(this, parent);\n if (text == null) {\n throw new Error(\"Missing element text. \" + this.debugInfo());\n }\n this.name = \"#text\";\n this.type = NodeType.Text;\n this.value = this.stringify.text(text);\n }\n\n Object.defineProperty(XMLText.prototype, 'isElementContentWhitespace', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLText.prototype, 'wholeText', {\n get: function() {\n var next, prev, str;\n str = '';\n prev = this.previousSibling;\n while (prev) {\n str = prev.data + str;\n prev = prev.previousSibling;\n }\n str += this.data;\n next = this.nextSibling;\n while (next) {\n str = str + next.data;\n next = next.nextSibling;\n }\n return str;\n }\n });\n\n XMLText.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLText.prototype.toString = function(options) {\n return this.options.writer.text(this, this.options.writer.filterOptions(options));\n };\n\n XMLText.prototype.splitText = function(offset) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLText.prototype.replaceWholeText = function(content) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n return XMLText;\n\n })(XMLCharacterData);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var XMLDOMErrorHandler;\n\n module.exports = XMLDOMErrorHandler = (function() {\n function XMLDOMErrorHandler() {}\n\n XMLDOMErrorHandler.prototype.handleError = function(error) {\n throw new Error(error);\n };\n\n return XMLDOMErrorHandler;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDeclaration, XMLDocType, XMLDummy, XMLElement, XMLProcessingInstruction, XMLRaw, XMLText, XMLWriterBase, assign,\n hasProp = {}.hasOwnProperty;\n\n assign = require('./Utility').assign;\n\n NodeType = require('./NodeType');\n\n XMLDeclaration = require('./XMLDeclaration');\n\n XMLDocType = require('./XMLDocType');\n\n XMLCData = require('./XMLCData');\n\n XMLComment = require('./XMLComment');\n\n XMLElement = require('./XMLElement');\n\n XMLRaw = require('./XMLRaw');\n\n XMLText = require('./XMLText');\n\n XMLProcessingInstruction = require('./XMLProcessingInstruction');\n\n XMLDummy = require('./XMLDummy');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n WriterState = require('./WriterState');\n\n module.exports = XMLWriterBase = (function() {\n function XMLWriterBase(options) {\n var key, ref, value;\n options || (options = {});\n this.options = options;\n ref = options.writer || {};\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this[\"_\" + key] = this[key];\n this[key] = value;\n }\n }\n\n XMLWriterBase.prototype.filterOptions = function(options) {\n var filteredOptions, ref, ref1, ref2, ref3, ref4, ref5, ref6;\n options || (options = {});\n options = assign({}, this.options, options);\n filteredOptions = {\n writer: this\n };\n filteredOptions.pretty = options.pretty || false;\n filteredOptions.allowEmpty = options.allowEmpty || false;\n filteredOptions.indent = (ref = options.indent) != null ? ref : ' ';\n filteredOptions.newline = (ref1 = options.newline) != null ? ref1 : '\\n';\n filteredOptions.offset = (ref2 = options.offset) != null ? ref2 : 0;\n filteredOptions.dontPrettyTextNodes = (ref3 = (ref4 = options.dontPrettyTextNodes) != null ? ref4 : options.dontprettytextnodes) != null ? ref3 : 0;\n filteredOptions.spaceBeforeSlash = (ref5 = (ref6 = options.spaceBeforeSlash) != null ? ref6 : options.spacebeforeslash) != null ? ref5 : '';\n if (filteredOptions.spaceBeforeSlash === true) {\n filteredOptions.spaceBeforeSlash = ' ';\n }\n filteredOptions.suppressPrettyCount = 0;\n filteredOptions.user = {};\n filteredOptions.state = WriterState.None;\n return filteredOptions;\n };\n\n XMLWriterBase.prototype.indent = function(node, options, level) {\n var indentLevel;\n if (!options.pretty || options.suppressPrettyCount) {\n return '';\n } else if (options.pretty) {\n indentLevel = (level || 0) + options.offset + 1;\n if (indentLevel > 0) {\n return new Array(indentLevel).join(options.indent);\n }\n }\n return '';\n };\n\n XMLWriterBase.prototype.endline = function(node, options, level) {\n if (!options.pretty || options.suppressPrettyCount) {\n return '';\n } else {\n return options.newline;\n }\n };\n\n XMLWriterBase.prototype.attribute = function(att, options, level) {\n var r;\n this.openAttribute(att, options, level);\n r = ' ' + att.name + '=\"' + att.value + '\"';\n this.closeAttribute(att, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.cdata = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.comment = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.declaration = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.docType = function(node, options, level) {\n var child, i, len, r, ref;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n r += ' 0) {\n r += ' [';\n r += this.endline(node, options, level);\n options.state = WriterState.InsideTag;\n ref = node.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n r += this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n r += ']';\n }\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '>';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.element = function(node, options, level) {\n var att, child, childNodeCount, firstChildNode, i, j, len, len1, name, prettySuppressed, r, ref, ref1, ref2;\n level || (level = 0);\n prettySuppressed = false;\n r = '';\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r += this.indent(node, options, level) + '<' + node.name;\n ref = node.attribs;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n r += this.attribute(att, options, level);\n }\n childNodeCount = node.children.length;\n firstChildNode = childNodeCount === 0 ? null : node.children[0];\n if (childNodeCount === 0 || node.children.every(function(e) {\n return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';\n })) {\n if (options.allowEmpty) {\n r += '>';\n options.state = WriterState.CloseTag;\n r += '' + this.endline(node, options, level);\n } else {\n options.state = WriterState.CloseTag;\n r += options.spaceBeforeSlash + '/>' + this.endline(node, options, level);\n }\n } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {\n r += '>';\n options.state = WriterState.InsideTag;\n options.suppressPrettyCount++;\n prettySuppressed = true;\n r += this.writeChildNode(firstChildNode, options, level + 1);\n options.suppressPrettyCount--;\n prettySuppressed = false;\n options.state = WriterState.CloseTag;\n r += '' + this.endline(node, options, level);\n } else {\n if (options.dontPrettyTextNodes) {\n ref1 = node.children;\n for (i = 0, len = ref1.length; i < len; i++) {\n child = ref1[i];\n if ((child.type === NodeType.Text || child.type === NodeType.Raw) && (child.value != null)) {\n options.suppressPrettyCount++;\n prettySuppressed = true;\n break;\n }\n }\n }\n r += '>' + this.endline(node, options, level);\n options.state = WriterState.InsideTag;\n ref2 = node.children;\n for (j = 0, len1 = ref2.length; j < len1; j++) {\n child = ref2[j];\n r += this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n r += this.indent(node, options, level) + '';\n if (prettySuppressed) {\n options.suppressPrettyCount--;\n }\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n }\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.writeChildNode = function(node, options, level) {\n switch (node.type) {\n case NodeType.CData:\n return this.cdata(node, options, level);\n case NodeType.Comment:\n return this.comment(node, options, level);\n case NodeType.Element:\n return this.element(node, options, level);\n case NodeType.Raw:\n return this.raw(node, options, level);\n case NodeType.Text:\n return this.text(node, options, level);\n case NodeType.ProcessingInstruction:\n return this.processingInstruction(node, options, level);\n case NodeType.Dummy:\n return '';\n case NodeType.Declaration:\n return this.declaration(node, options, level);\n case NodeType.DocType:\n return this.docType(node, options, level);\n case NodeType.AttributeDeclaration:\n return this.dtdAttList(node, options, level);\n case NodeType.ElementDeclaration:\n return this.dtdElement(node, options, level);\n case NodeType.EntityDeclaration:\n return this.dtdEntity(node, options, level);\n case NodeType.NotationDeclaration:\n return this.dtdNotation(node, options, level);\n default:\n throw new Error(\"Unknown XML node type: \" + node.constructor.name);\n }\n };\n\n XMLWriterBase.prototype.processingInstruction = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '';\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.raw = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n options.state = WriterState.InsideTag;\n r += node.value;\n options.state = WriterState.CloseTag;\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.text = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level);\n options.state = WriterState.InsideTag;\n r += node.value;\n options.state = WriterState.CloseTag;\n r += this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdAttList = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdElement = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdEntity = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.dtdNotation = function(node, options, level) {\n var r;\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n r = this.indent(node, options, level) + '' + this.endline(node, options, level);\n options.state = WriterState.None;\n this.closeNode(node, options, level);\n return r;\n };\n\n XMLWriterBase.prototype.openNode = function(node, options, level) {};\n\n XMLWriterBase.prototype.closeNode = function(node, options, level) {};\n\n XMLWriterBase.prototype.openAttribute = function(att, options, level) {};\n\n XMLWriterBase.prototype.closeAttribute = function(att, options, level) {};\n\n return XMLWriterBase;\n\n })();\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n exports.defaults = {\n \"0.1\": {\n explicitCharkey: false,\n trim: true,\n normalize: true,\n normalizeTags: false,\n attrkey: \"@\",\n charkey: \"#\",\n explicitArray: false,\n ignoreAttrs: false,\n mergeAttrs: false,\n explicitRoot: false,\n validator: null,\n xmlns: false,\n explicitChildren: false,\n childkey: '@@',\n charsAsChildren: false,\n includeWhiteChars: false,\n async: false,\n strict: true,\n attrNameProcessors: null,\n attrValueProcessors: null,\n tagNameProcessors: null,\n valueProcessors: null,\n emptyTag: ''\n },\n \"0.2\": {\n explicitCharkey: false,\n trim: false,\n normalize: false,\n normalizeTags: false,\n attrkey: \"$\",\n charkey: \"_\",\n explicitArray: true,\n ignoreAttrs: false,\n mergeAttrs: false,\n explicitRoot: true,\n validator: null,\n xmlns: false,\n explicitChildren: false,\n preserveChildrenOrder: false,\n childkey: '$$',\n charsAsChildren: false,\n includeWhiteChars: false,\n async: false,\n strict: true,\n attrNameProcessors: null,\n attrValueProcessors: null,\n tagNameProcessors: null,\n valueProcessors: null,\n rootName: 'root',\n xmldec: {\n 'version': '1.0',\n 'encoding': 'UTF-8',\n 'standalone': true\n },\n doctype: null,\n renderOpts: {\n 'pretty': true,\n 'indent': ' ',\n 'newline': '\\n'\n },\n headless: false,\n chunkSize: 10000,\n emptyTag: '',\n cdata: false\n }\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n \"use strict\";\n var bom, defaults, events, isEmpty, processItem, processors, sax, setImmediate,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n sax = require('sax');\n\n events = require('events');\n\n bom = require('./bom');\n\n processors = require('./processors');\n\n setImmediate = require('timers').setImmediate;\n\n defaults = require('./defaults').defaults;\n\n isEmpty = function(thing) {\n return typeof thing === \"object\" && (thing != null) && Object.keys(thing).length === 0;\n };\n\n processItem = function(processors, item, key) {\n var i, len, process;\n for (i = 0, len = processors.length; i < len; i++) {\n process = processors[i];\n item = process(item, key);\n }\n return item;\n };\n\n exports.Parser = (function(superClass) {\n extend(Parser, superClass);\n\n function Parser(opts) {\n this.parseStringPromise = bind(this.parseStringPromise, this);\n this.parseString = bind(this.parseString, this);\n this.reset = bind(this.reset, this);\n this.assignOrPush = bind(this.assignOrPush, this);\n this.processAsync = bind(this.processAsync, this);\n var key, ref, value;\n if (!(this instanceof exports.Parser)) {\n return new exports.Parser(opts);\n }\n this.options = {};\n ref = defaults[\"0.2\"];\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n value = ref[key];\n this.options[key] = value;\n }\n for (key in opts) {\n if (!hasProp.call(opts, key)) continue;\n value = opts[key];\n this.options[key] = value;\n }\n if (this.options.xmlns) {\n this.options.xmlnskey = this.options.attrkey + \"ns\";\n }\n if (this.options.normalizeTags) {\n if (!this.options.tagNameProcessors) {\n this.options.tagNameProcessors = [];\n }\n this.options.tagNameProcessors.unshift(processors.normalize);\n }\n this.reset();\n }\n\n Parser.prototype.processAsync = function() {\n var chunk, err;\n try {\n if (this.remaining.length <= this.options.chunkSize) {\n chunk = this.remaining;\n this.remaining = '';\n this.saxParser = this.saxParser.write(chunk);\n return this.saxParser.close();\n } else {\n chunk = this.remaining.substr(0, this.options.chunkSize);\n this.remaining = this.remaining.substr(this.options.chunkSize, this.remaining.length);\n this.saxParser = this.saxParser.write(chunk);\n return setImmediate(this.processAsync);\n }\n } catch (error1) {\n err = error1;\n if (!this.saxParser.errThrown) {\n this.saxParser.errThrown = true;\n return this.emit(err);\n }\n }\n };\n\n Parser.prototype.assignOrPush = function(obj, key, newValue) {\n if (!(key in obj)) {\n if (!this.options.explicitArray) {\n return obj[key] = newValue;\n } else {\n return obj[key] = [newValue];\n }\n } else {\n if (!(obj[key] instanceof Array)) {\n obj[key] = [obj[key]];\n }\n return obj[key].push(newValue);\n }\n };\n\n Parser.prototype.reset = function() {\n var attrkey, charkey, ontext, stack;\n this.removeAllListeners();\n this.saxParser = sax.parser(this.options.strict, {\n trim: false,\n normalize: false,\n xmlns: this.options.xmlns\n });\n this.saxParser.errThrown = false;\n this.saxParser.onerror = (function(_this) {\n return function(error) {\n _this.saxParser.resume();\n if (!_this.saxParser.errThrown) {\n _this.saxParser.errThrown = true;\n return _this.emit(\"error\", error);\n }\n };\n })(this);\n this.saxParser.onend = (function(_this) {\n return function() {\n if (!_this.saxParser.ended) {\n _this.saxParser.ended = true;\n return _this.emit(\"end\", _this.resultObject);\n }\n };\n })(this);\n this.saxParser.ended = false;\n this.EXPLICIT_CHARKEY = this.options.explicitCharkey;\n this.resultObject = null;\n stack = [];\n attrkey = this.options.attrkey;\n charkey = this.options.charkey;\n this.saxParser.onopentag = (function(_this) {\n return function(node) {\n var key, newValue, obj, processedKey, ref;\n obj = {};\n obj[charkey] = \"\";\n if (!_this.options.ignoreAttrs) {\n ref = node.attributes;\n for (key in ref) {\n if (!hasProp.call(ref, key)) continue;\n if (!(attrkey in obj) && !_this.options.mergeAttrs) {\n obj[attrkey] = {};\n }\n newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];\n processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;\n if (_this.options.mergeAttrs) {\n _this.assignOrPush(obj, processedKey, newValue);\n } else {\n obj[attrkey][processedKey] = newValue;\n }\n }\n }\n obj[\"#name\"] = _this.options.tagNameProcessors ? processItem(_this.options.tagNameProcessors, node.name) : node.name;\n if (_this.options.xmlns) {\n obj[_this.options.xmlnskey] = {\n uri: node.uri,\n local: node.local\n };\n }\n return stack.push(obj);\n };\n })(this);\n this.saxParser.onclosetag = (function(_this) {\n return function() {\n var cdata, emptyStr, key, node, nodeName, obj, objClone, old, s, xpath;\n obj = stack.pop();\n nodeName = obj[\"#name\"];\n if (!_this.options.explicitChildren || !_this.options.preserveChildrenOrder) {\n delete obj[\"#name\"];\n }\n if (obj.cdata === true) {\n cdata = obj.cdata;\n delete obj.cdata;\n }\n s = stack[stack.length - 1];\n if (obj[charkey].match(/^\\s*$/) && !cdata) {\n emptyStr = obj[charkey];\n delete obj[charkey];\n } else {\n if (_this.options.trim) {\n obj[charkey] = obj[charkey].trim();\n }\n if (_this.options.normalize) {\n obj[charkey] = obj[charkey].replace(/\\s{2,}/g, \" \").trim();\n }\n obj[charkey] = _this.options.valueProcessors ? processItem(_this.options.valueProcessors, obj[charkey], nodeName) : obj[charkey];\n if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {\n obj = obj[charkey];\n }\n }\n if (isEmpty(obj)) {\n obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;\n }\n if (_this.options.validator != null) {\n xpath = \"/\" + ((function() {\n var i, len, results;\n results = [];\n for (i = 0, len = stack.length; i < len; i++) {\n node = stack[i];\n results.push(node[\"#name\"]);\n }\n return results;\n })()).concat(nodeName).join(\"/\");\n (function() {\n var err;\n try {\n return obj = _this.options.validator(xpath, s && s[nodeName], obj);\n } catch (error1) {\n err = error1;\n return _this.emit(\"error\", err);\n }\n })();\n }\n if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {\n if (!_this.options.preserveChildrenOrder) {\n node = {};\n if (_this.options.attrkey in obj) {\n node[_this.options.attrkey] = obj[_this.options.attrkey];\n delete obj[_this.options.attrkey];\n }\n if (!_this.options.charsAsChildren && _this.options.charkey in obj) {\n node[_this.options.charkey] = obj[_this.options.charkey];\n delete obj[_this.options.charkey];\n }\n if (Object.getOwnPropertyNames(obj).length > 0) {\n node[_this.options.childkey] = obj;\n }\n obj = node;\n } else if (s) {\n s[_this.options.childkey] = s[_this.options.childkey] || [];\n objClone = {};\n for (key in obj) {\n if (!hasProp.call(obj, key)) continue;\n objClone[key] = obj[key];\n }\n s[_this.options.childkey].push(objClone);\n delete obj[\"#name\"];\n if (Object.keys(obj).length === 1 && charkey in obj && !_this.EXPLICIT_CHARKEY) {\n obj = obj[charkey];\n }\n }\n }\n if (stack.length > 0) {\n return _this.assignOrPush(s, nodeName, obj);\n } else {\n if (_this.options.explicitRoot) {\n old = obj;\n obj = {};\n obj[nodeName] = old;\n }\n _this.resultObject = obj;\n _this.saxParser.ended = true;\n return _this.emit(\"end\", _this.resultObject);\n }\n };\n })(this);\n ontext = (function(_this) {\n return function(text) {\n var charChild, s;\n s = stack[stack.length - 1];\n if (s) {\n s[charkey] += text;\n if (_this.options.explicitChildren && _this.options.preserveChildrenOrder && _this.options.charsAsChildren && (_this.options.includeWhiteChars || text.replace(/\\\\n/g, '').trim() !== '')) {\n s[_this.options.childkey] = s[_this.options.childkey] || [];\n charChild = {\n '#name': '__text__'\n };\n charChild[charkey] = text;\n if (_this.options.normalize) {\n charChild[charkey] = charChild[charkey].replace(/\\s{2,}/g, \" \").trim();\n }\n s[_this.options.childkey].push(charChild);\n }\n return s;\n }\n };\n })(this);\n this.saxParser.ontext = ontext;\n return this.saxParser.oncdata = (function(_this) {\n return function(text) {\n var s;\n s = ontext(text);\n if (s) {\n return s.cdata = true;\n }\n };\n })(this);\n };\n\n Parser.prototype.parseString = function(str, cb) {\n var err;\n if ((cb != null) && typeof cb === \"function\") {\n this.on(\"end\", function(result) {\n this.reset();\n return cb(null, result);\n });\n this.on(\"error\", function(err) {\n this.reset();\n return cb(err);\n });\n }\n try {\n str = str.toString();\n if (str.trim() === '') {\n this.emit(\"end\", null);\n return true;\n }\n str = bom.stripBOM(str);\n if (this.options.async) {\n this.remaining = str;\n setImmediate(this.processAsync);\n return this.saxParser;\n }\n return this.saxParser.write(str).close();\n } catch (error1) {\n err = error1;\n if (!(this.saxParser.errThrown || this.saxParser.ended)) {\n this.emit('error', err);\n return this.saxParser.errThrown = true;\n } else if (this.saxParser.ended) {\n throw err;\n }\n }\n };\n\n Parser.prototype.parseStringPromise = function(str) {\n return new Promise((function(_this) {\n return function(resolve, reject) {\n return _this.parseString(str, function(err, value) {\n if (err) {\n return reject(err);\n } else {\n return resolve(value);\n }\n });\n };\n })(this));\n };\n\n return Parser;\n\n })(events);\n\n exports.parseString = function(str, a, b) {\n var cb, options, parser;\n if (b != null) {\n if (typeof b === 'function') {\n cb = b;\n }\n if (typeof a === 'object') {\n options = a;\n }\n } else {\n if (typeof a === 'function') {\n cb = a;\n }\n options = {};\n }\n parser = new exports.Parser(options);\n return parser.parseString(str, cb);\n };\n\n exports.parseStringPromise = function(str, a) {\n var options, parser;\n if (typeof a === 'object') {\n options = a;\n }\n parser = new exports.Parser(options);\n return parser.parseStringPromise(str);\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDOMConfiguration, XMLDOMImplementation, XMLDocument, XMLNode, XMLStringWriter, XMLStringifier, isPlainObject,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n isPlainObject = require('./Utility').isPlainObject;\n\n XMLDOMImplementation = require('./XMLDOMImplementation');\n\n XMLDOMConfiguration = require('./XMLDOMConfiguration');\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLStringifier = require('./XMLStringifier');\n\n XMLStringWriter = require('./XMLStringWriter');\n\n module.exports = XMLDocument = (function(superClass) {\n extend(XMLDocument, superClass);\n\n function XMLDocument(options) {\n XMLDocument.__super__.constructor.call(this, null);\n this.name = \"#document\";\n this.type = NodeType.Document;\n this.documentURI = null;\n this.domConfig = new XMLDOMConfiguration();\n options || (options = {});\n if (!options.writer) {\n options.writer = new XMLStringWriter();\n }\n this.options = options;\n this.stringify = new XMLStringifier(options);\n }\n\n Object.defineProperty(XMLDocument.prototype, 'implementation', {\n value: new XMLDOMImplementation()\n });\n\n Object.defineProperty(XMLDocument.prototype, 'doctype', {\n get: function() {\n var child, i, len, ref;\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.DocType) {\n return child;\n }\n }\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'documentElement', {\n get: function() {\n return this.rootObject || null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'inputEncoding', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'strictErrorChecking', {\n get: function() {\n return false;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlEncoding', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].encoding;\n } else {\n return null;\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlStandalone', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].standalone === 'yes';\n } else {\n return false;\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'xmlVersion', {\n get: function() {\n if (this.children.length !== 0 && this.children[0].type === NodeType.Declaration) {\n return this.children[0].version;\n } else {\n return \"1.0\";\n }\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'URL', {\n get: function() {\n return this.documentURI;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'origin', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'compatMode', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'characterSet', {\n get: function() {\n return null;\n }\n });\n\n Object.defineProperty(XMLDocument.prototype, 'contentType', {\n get: function() {\n return null;\n }\n });\n\n XMLDocument.prototype.end = function(writer) {\n var writerOptions;\n writerOptions = {};\n if (!writer) {\n writer = this.options.writer;\n } else if (isPlainObject(writer)) {\n writerOptions = writer;\n writer = this.options.writer;\n }\n return writer.document(this, writer.filterOptions(writerOptions));\n };\n\n XMLDocument.prototype.toString = function(options) {\n return this.options.writer.document(this, this.options.writer.filterOptions(options));\n };\n\n XMLDocument.prototype.createElement = function(tagName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createDocumentFragment = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createTextNode = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createComment = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createCDATASection = function(data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createProcessingInstruction = function(target, data) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createAttribute = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createEntityReference = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByTagName = function(tagname) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.importNode = function(importedNode, deep) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createElementNS = function(namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createAttributeNS = function(namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementById = function(elementId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.adoptNode = function(source) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.normalizeDocument = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.renameNode = function(node, namespaceURI, qualifiedName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.getElementsByClassName = function(classNames) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createEvent = function(eventInterface) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createRange = function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createNodeIterator = function(root, whatToShow, filter) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLDocument.prototype.createTreeWalker = function(root, whatToShow, filter) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n return XMLDocument;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDNotation, XMLNode,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n module.exports = XMLDTDNotation = (function(superClass) {\n extend(XMLDTDNotation, superClass);\n\n function XMLDTDNotation(parent, name, value) {\n XMLDTDNotation.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing DTD notation name. \" + this.debugInfo(name));\n }\n if (!value.pubID && !value.sysID) {\n throw new Error(\"Public or system identifiers are required for an external entity. \" + this.debugInfo(name));\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.NotationDeclaration;\n if (value.pubID != null) {\n this.pubID = this.stringify.dtdPubID(value.pubID);\n }\n if (value.sysID != null) {\n this.sysID = this.stringify.dtdSysID(value.sysID);\n }\n }\n\n Object.defineProperty(XMLDTDNotation.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDTDNotation.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n XMLDTDNotation.prototype.toString = function(options) {\n return this.options.writer.dtdNotation(this, this.options.writer.filterOptions(options));\n };\n\n return XMLDTDNotation;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLAttribute, XMLElement, XMLNamedNodeMap, XMLNode, getValue, isFunction, isObject, ref,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n ref = require('./Utility'), isObject = ref.isObject, isFunction = ref.isFunction, getValue = ref.getValue;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLAttribute = require('./XMLAttribute');\n\n XMLNamedNodeMap = require('./XMLNamedNodeMap');\n\n module.exports = XMLElement = (function(superClass) {\n extend(XMLElement, superClass);\n\n function XMLElement(parent, name, attributes) {\n var child, j, len, ref1;\n XMLElement.__super__.constructor.call(this, parent);\n if (name == null) {\n throw new Error(\"Missing element name. \" + this.debugInfo());\n }\n this.name = this.stringify.name(name);\n this.type = NodeType.Element;\n this.attribs = {};\n this.schemaTypeInfo = null;\n if (attributes != null) {\n this.attribute(attributes);\n }\n if (parent.type === NodeType.Document) {\n this.isRoot = true;\n this.documentObject = parent;\n parent.rootObject = this;\n if (parent.children) {\n ref1 = parent.children;\n for (j = 0, len = ref1.length; j < len; j++) {\n child = ref1[j];\n if (child.type === NodeType.DocType) {\n child.name = this.name;\n break;\n }\n }\n }\n }\n }\n\n Object.defineProperty(XMLElement.prototype, 'tagName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'namespaceURI', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'prefix', {\n get: function() {\n return '';\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'localName', {\n get: function() {\n return this.name;\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'id', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'className', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'classList', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n Object.defineProperty(XMLElement.prototype, 'attributes', {\n get: function() {\n if (!this.attributeMap || !this.attributeMap.nodes) {\n this.attributeMap = new XMLNamedNodeMap(this.attribs);\n }\n return this.attributeMap;\n }\n });\n\n XMLElement.prototype.clone = function() {\n var att, attName, clonedSelf, ref1;\n clonedSelf = Object.create(this);\n if (clonedSelf.isRoot) {\n clonedSelf.documentObject = null;\n }\n clonedSelf.attribs = {};\n ref1 = this.attribs;\n for (attName in ref1) {\n if (!hasProp.call(ref1, attName)) continue;\n att = ref1[attName];\n clonedSelf.attribs[attName] = att.clone();\n }\n clonedSelf.children = [];\n this.children.forEach(function(child) {\n var clonedChild;\n clonedChild = child.clone();\n clonedChild.parent = clonedSelf;\n return clonedSelf.children.push(clonedChild);\n });\n return clonedSelf;\n };\n\n XMLElement.prototype.attribute = function(name, value) {\n var attName, attValue;\n if (name != null) {\n name = getValue(name);\n }\n if (isObject(name)) {\n for (attName in name) {\n if (!hasProp.call(name, attName)) continue;\n attValue = name[attName];\n this.attribute(attName, attValue);\n }\n } else {\n if (isFunction(value)) {\n value = value.apply();\n }\n if (this.options.keepNullAttributes && (value == null)) {\n this.attribs[name] = new XMLAttribute(this, name, \"\");\n } else if (value != null) {\n this.attribs[name] = new XMLAttribute(this, name, value);\n }\n }\n return this;\n };\n\n XMLElement.prototype.removeAttribute = function(name) {\n var attName, j, len;\n if (name == null) {\n throw new Error(\"Missing attribute name. \" + this.debugInfo());\n }\n name = getValue(name);\n if (Array.isArray(name)) {\n for (j = 0, len = name.length; j < len; j++) {\n attName = name[j];\n delete this.attribs[attName];\n }\n } else {\n delete this.attribs[name];\n }\n return this;\n };\n\n XMLElement.prototype.toString = function(options) {\n return this.options.writer.element(this, this.options.writer.filterOptions(options));\n };\n\n XMLElement.prototype.att = function(name, value) {\n return this.attribute(name, value);\n };\n\n XMLElement.prototype.a = function(name, value) {\n return this.attribute(name, value);\n };\n\n XMLElement.prototype.getAttribute = function(name) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name].value;\n } else {\n return null;\n }\n };\n\n XMLElement.prototype.setAttribute = function(name, value) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNode = function(name) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name];\n } else {\n return null;\n }\n };\n\n XMLElement.prototype.setAttributeNode = function(newAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.removeAttributeNode = function(oldAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagName = function(name) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setAttributeNS = function(namespaceURI, qualifiedName, value) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.removeAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getAttributeNodeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setAttributeNodeNS = function(newAttr) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.hasAttribute = function(name) {\n return this.attribs.hasOwnProperty(name);\n };\n\n XMLElement.prototype.hasAttributeNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setIdAttribute = function(name, isId) {\n if (this.attribs.hasOwnProperty(name)) {\n return this.attribs[name].isId;\n } else {\n return isId;\n }\n };\n\n XMLElement.prototype.setIdAttributeNS = function(namespaceURI, localName, isId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.setIdAttributeNode = function(idAttr, isId) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagName = function(tagname) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByTagNameNS = function(namespaceURI, localName) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.getElementsByClassName = function(classNames) {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n };\n\n XMLElement.prototype.isEqualNode = function(node) {\n var i, j, ref1;\n if (!XMLElement.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.namespaceURI !== this.namespaceURI) {\n return false;\n }\n if (node.prefix !== this.prefix) {\n return false;\n }\n if (node.localName !== this.localName) {\n return false;\n }\n if (node.attribs.length !== this.attribs.length) {\n return false;\n }\n for (i = j = 0, ref1 = this.attribs.length - 1; 0 <= ref1 ? j <= ref1 : j >= ref1; i = 0 <= ref1 ? ++j : --j) {\n if (!this.attribs[i].isEqualNode(node.attribs[i])) {\n return false;\n }\n }\n return true;\n };\n\n return XMLElement;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, WriterState, XMLStreamWriter, XMLWriterBase,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLWriterBase = require('./XMLWriterBase');\n\n WriterState = require('./WriterState');\n\n module.exports = XMLStreamWriter = (function(superClass) {\n extend(XMLStreamWriter, superClass);\n\n function XMLStreamWriter(stream, options) {\n this.stream = stream;\n XMLStreamWriter.__super__.constructor.call(this, options);\n }\n\n XMLStreamWriter.prototype.endline = function(node, options, level) {\n if (node.isLastRootNode && options.state === WriterState.CloseTag) {\n return '';\n } else {\n return XMLStreamWriter.__super__.endline.call(this, node, options, level);\n }\n };\n\n XMLStreamWriter.prototype.document = function(doc, options) {\n var child, i, j, k, len, len1, ref, ref1, results;\n ref = doc.children;\n for (i = j = 0, len = ref.length; j < len; i = ++j) {\n child = ref[i];\n child.isLastRootNode = i === doc.children.length - 1;\n }\n options = this.filterOptions(options);\n ref1 = doc.children;\n results = [];\n for (k = 0, len1 = ref1.length; k < len1; k++) {\n child = ref1[k];\n results.push(this.writeChildNode(child, options, 0));\n }\n return results;\n };\n\n XMLStreamWriter.prototype.attribute = function(att, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.attribute.call(this, att, options, level));\n };\n\n XMLStreamWriter.prototype.cdata = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.cdata.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.comment = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.comment.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.declaration = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.declaration.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.docType = function(node, options, level) {\n var child, j, len, ref;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n this.stream.write(this.indent(node, options, level));\n this.stream.write(' 0) {\n this.stream.write(' [');\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.InsideTag;\n ref = node.children;\n for (j = 0, len = ref.length; j < len; j++) {\n child = ref[j];\n this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n this.stream.write(']');\n }\n options.state = WriterState.CloseTag;\n this.stream.write(options.spaceBeforeSlash + '>');\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.None;\n return this.closeNode(node, options, level);\n };\n\n XMLStreamWriter.prototype.element = function(node, options, level) {\n var att, child, childNodeCount, firstChildNode, j, len, name, prettySuppressed, ref, ref1;\n level || (level = 0);\n this.openNode(node, options, level);\n options.state = WriterState.OpenTag;\n this.stream.write(this.indent(node, options, level) + '<' + node.name);\n ref = node.attribs;\n for (name in ref) {\n if (!hasProp.call(ref, name)) continue;\n att = ref[name];\n this.attribute(att, options, level);\n }\n childNodeCount = node.children.length;\n firstChildNode = childNodeCount === 0 ? null : node.children[0];\n if (childNodeCount === 0 || node.children.every(function(e) {\n return (e.type === NodeType.Text || e.type === NodeType.Raw) && e.value === '';\n })) {\n if (options.allowEmpty) {\n this.stream.write('>');\n options.state = WriterState.CloseTag;\n this.stream.write('');\n } else {\n options.state = WriterState.CloseTag;\n this.stream.write(options.spaceBeforeSlash + '/>');\n }\n } else if (options.pretty && childNodeCount === 1 && (firstChildNode.type === NodeType.Text || firstChildNode.type === NodeType.Raw) && (firstChildNode.value != null)) {\n this.stream.write('>');\n options.state = WriterState.InsideTag;\n options.suppressPrettyCount++;\n prettySuppressed = true;\n this.writeChildNode(firstChildNode, options, level + 1);\n options.suppressPrettyCount--;\n prettySuppressed = false;\n options.state = WriterState.CloseTag;\n this.stream.write('');\n } else {\n this.stream.write('>' + this.endline(node, options, level));\n options.state = WriterState.InsideTag;\n ref1 = node.children;\n for (j = 0, len = ref1.length; j < len; j++) {\n child = ref1[j];\n this.writeChildNode(child, options, level + 1);\n }\n options.state = WriterState.CloseTag;\n this.stream.write(this.indent(node, options, level) + '');\n }\n this.stream.write(this.endline(node, options, level));\n options.state = WriterState.None;\n return this.closeNode(node, options, level);\n };\n\n XMLStreamWriter.prototype.processingInstruction = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.processingInstruction.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.raw = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.raw.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.text = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.text.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdAttList = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdAttList.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdElement = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdElement.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdEntity = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdEntity.call(this, node, options, level));\n };\n\n XMLStreamWriter.prototype.dtdNotation = function(node, options, level) {\n return this.stream.write(XMLStreamWriter.__super__.dtdNotation.call(this, node, options, level));\n };\n\n return XMLStreamWriter;\n\n })(XMLWriterBase);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n module.exports = {\n Disconnected: 1,\n Preceding: 2,\n Following: 4,\n Contains: 8,\n ContainedBy: 16,\n ImplementationSpecific: 32\n };\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLNamedNodeMap, XMLNode, isObject,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n isObject = require('./Utility').isObject;\n\n XMLNode = require('./XMLNode');\n\n NodeType = require('./NodeType');\n\n XMLDTDAttList = require('./XMLDTDAttList');\n\n XMLDTDEntity = require('./XMLDTDEntity');\n\n XMLDTDElement = require('./XMLDTDElement');\n\n XMLDTDNotation = require('./XMLDTDNotation');\n\n XMLNamedNodeMap = require('./XMLNamedNodeMap');\n\n module.exports = XMLDocType = (function(superClass) {\n extend(XMLDocType, superClass);\n\n function XMLDocType(parent, pubID, sysID) {\n var child, i, len, ref, ref1, ref2;\n XMLDocType.__super__.constructor.call(this, parent);\n this.type = NodeType.DocType;\n if (parent.children) {\n ref = parent.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.Element) {\n this.name = child.name;\n break;\n }\n }\n }\n this.documentObject = parent;\n if (isObject(pubID)) {\n ref1 = pubID, pubID = ref1.pubID, sysID = ref1.sysID;\n }\n if (sysID == null) {\n ref2 = [pubID, sysID], sysID = ref2[0], pubID = ref2[1];\n }\n if (pubID != null) {\n this.pubID = this.stringify.dtdPubID(pubID);\n }\n if (sysID != null) {\n this.sysID = this.stringify.dtdSysID(sysID);\n }\n }\n\n Object.defineProperty(XMLDocType.prototype, 'entities', {\n get: function() {\n var child, i, len, nodes, ref;\n nodes = {};\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if ((child.type === NodeType.EntityDeclaration) && !child.pe) {\n nodes[child.name] = child;\n }\n }\n return new XMLNamedNodeMap(nodes);\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'notations', {\n get: function() {\n var child, i, len, nodes, ref;\n nodes = {};\n ref = this.children;\n for (i = 0, len = ref.length; i < len; i++) {\n child = ref[i];\n if (child.type === NodeType.NotationDeclaration) {\n nodes[child.name] = child;\n }\n }\n return new XMLNamedNodeMap(nodes);\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'publicId', {\n get: function() {\n return this.pubID;\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'systemId', {\n get: function() {\n return this.sysID;\n }\n });\n\n Object.defineProperty(XMLDocType.prototype, 'internalSubset', {\n get: function() {\n throw new Error(\"This DOM method is not implemented.\" + this.debugInfo());\n }\n });\n\n XMLDocType.prototype.element = function(name, value) {\n var child;\n child = new XMLDTDElement(this, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n var child;\n child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.entity = function(name, value) {\n var child;\n child = new XMLDTDEntity(this, false, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.pEntity = function(name, value) {\n var child;\n child = new XMLDTDEntity(this, true, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.notation = function(name, value) {\n var child;\n child = new XMLDTDNotation(this, name, value);\n this.children.push(child);\n return this;\n };\n\n XMLDocType.prototype.toString = function(options) {\n return this.options.writer.docType(this, this.options.writer.filterOptions(options));\n };\n\n XMLDocType.prototype.ele = function(name, value) {\n return this.element(name, value);\n };\n\n XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) {\n return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue);\n };\n\n XMLDocType.prototype.ent = function(name, value) {\n return this.entity(name, value);\n };\n\n XMLDocType.prototype.pent = function(name, value) {\n return this.pEntity(name, value);\n };\n\n XMLDocType.prototype.not = function(name, value) {\n return this.notation(name, value);\n };\n\n XMLDocType.prototype.up = function() {\n return this.root() || this.documentObject;\n };\n\n XMLDocType.prototype.isEqualNode = function(node) {\n if (!XMLDocType.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.name !== this.name) {\n return false;\n }\n if (node.publicId !== this.publicId) {\n return false;\n }\n if (node.systemId !== this.systemId) {\n return false;\n }\n return true;\n };\n\n return XMLDocType;\n\n })(XMLNode);\n\n}).call(this);\n","// Generated by CoffeeScript 1.12.7\n(function() {\n var NodeType, XMLCharacterData, XMLProcessingInstruction,\n extend = 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; },\n hasProp = {}.hasOwnProperty;\n\n NodeType = require('./NodeType');\n\n XMLCharacterData = require('./XMLCharacterData');\n\n module.exports = XMLProcessingInstruction = (function(superClass) {\n extend(XMLProcessingInstruction, superClass);\n\n function XMLProcessingInstruction(parent, target, value) {\n XMLProcessingInstruction.__super__.constructor.call(this, parent);\n if (target == null) {\n throw new Error(\"Missing instruction target. \" + this.debugInfo());\n }\n this.type = NodeType.ProcessingInstruction;\n this.target = this.stringify.insTarget(target);\n this.name = this.target;\n if (value) {\n this.value = this.stringify.insValue(value);\n }\n }\n\n XMLProcessingInstruction.prototype.clone = function() {\n return Object.create(this);\n };\n\n XMLProcessingInstruction.prototype.toString = function(options) {\n return this.options.writer.processingInstruction(this, this.options.writer.filterOptions(options));\n };\n\n XMLProcessingInstruction.prototype.isEqualNode = function(node) {\n if (!XMLProcessingInstruction.__super__.isEqualNode.apply(this, arguments).isEqualNode(node)) {\n return false;\n }\n if (node.target !== this.target) {\n return false;\n }\n return true;\n };\n\n return XMLProcessingInstruction;\n\n })(XMLCharacterData);\n\n}).call(this);\n"],"sourceRoot":""}