text: /*
      artifact generator: C:\My\wizzi\wizzi\node_modules\wizzi-legacy-v5\lib\artifacts\js\module\gen\main.js
      primary source IttfDocument: c:\my\wizzi\wizzi\node_modules\wizzi-core\lib\artifacts\wfschema\model\gen\ittf\wfschema-model.js.ittf
      utc time: Tue, 11 Jun 2019 14:07:16 GMT
  */
  'use strict';
  // generated by v5-wizzi-js.artifacts.js.module.main
  function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
  var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };
  
  var util = require('util');
  var path = require('path');
  var _ = require('lodash');
  var wzutils = require('wizzi-utils');
  var verify = wzutils.verify;
  var _md = module.exports = {};
  var wzSourceLineInfo = (function () {
      function wzSourceLineInfo(row, col, sourceKey) {
          _classCallCheck(this, wzSourceLineInfo);
          this.row = row;
          this.col = col;
          this.sourceKey = sourceKey;
      }
      wzSourceLineInfo.prototype.toString = function(instance) {
          if (instance) {
              return 'row: ' + this.row + ', col: ' + this.col + ', file: ' + instance.wzSourceFilepath(this.sourceKey);
          }
          else {
              return 'row: ' + this.row + ', col: ' + this.col + ', sourceKey: ' + this.sourceKey;
          }
      }
      return wzSourceLineInfo;
  })();
  
  _md.wzSourceLineInfo = wzSourceLineInfo;
  var vttBase = (function () {
      function vttBase(name, sourceLineInfo) {
          _classCallCheck(this, vttBase);
          this.wzName = name || '';
          this.wzParent = null;
          this.wzSourceLineInfo = sourceLineInfo;
          this.wzChildren = [];
      }
      vttBase.prototype.wzRoot = function() {
          return this.wzParent == null ? this : this.wzParent.wzRoot();
      }
      vttBase.prototype.wzSourceFilepath = function(sourceKey) {
          return this.wzRoot().loadHistory.getIttfDocumentUri(sourceKey);
      }
      vttBase.prototype.wzSourceErrorLines = function(node, message) {
          return this.wzRoot().loadHistory.getIttfDocumentErrorLines(node.u, {
                  row: node.r, 
                  col: node.c, 
                  description: message
              }, true);
      }
      vttBase.prototype.wzVerify = function() {
      }
      vttBase.prototype.wzInitialize = function() {
      }
      vttBase.prototype.wzInitializeAsync = function(ctx, callback) {
          callback(null);
      }
      vttBase.prototype.wzAddChild = function(node) {
          node.wzParent = this;
          this.wzChildren.push(node);
      }
      vttBase.prototype.wzAddChildToColl = function(node, coll) {
          node.wzParent = this;
          node.wzMoved = true;
          coll.push(node);
      }
      vttBase.prototype.wzMoveChildToColl = function(node, coll, fromColl) {
          var index = fromColl.indexOf(node);
          if (index < 0) {
              this.error('wzMoveChildToColl error. The from collection does not contain the node.', node);
          }
          fromColl.splice(index, 1);
          this.wzAddChildToColl(node, coll);
      }
      vttBase.prototype.wzLoadToChildColl = function(child, type, coll) {
          var item = new type(child.v, new wzSourceLineInfo(child.r, child.c, child.u));
          item.wzTag = child.n;
          item.wzParent = this;
          coll.push(item);
          if (item.loadFromNode) {
              item.loadFromNode(child);
          }
          return true;
      }
      vttBase.prototype.wzCreateChildColl = function(tag, name, type, coll) {
          var item = new type(name, this.wzSourceLineInfo);
          item.wzTag = tag;
          item.wzParent = this;
          item.wzCreated = true;
          coll.push(item);
          return item;
      }
      vttBase.prototype.wzLoadToChildren = function(child, type) {
          var item = new type(child.v, new wzSourceLineInfo(child.r, child.c, child.u));
          item.wzTag = child.n;
          item.wzParent = this;
          this.wzChildren.push(item);
          if (item.loadFromNode) {
              item.loadFromNode(child);
          }
          return true;
      }
      vttBase.prototype.wzLoadOneToOne = function(child, type, fieldName) {
          var item = new type(child.v, new wzSourceLineInfo(child.r, child.c, child.u));
          item.wzParent = this;
          this[fieldName] = item;
          if (item.loadFromNode) {
              item.loadFromNode(child);
          }
          return true;
      }
      vttBase.prototype.wzRemove = function(fromColl) {
          var index = fromColl.indexOf(this);
          if (index < 0) {
              this.error('wzRemove error. The from collection does not contain the node.', this);
          }
          fromColl.splice(index, 1);
      }
      vttBase.prototype.error = function(message, node) {
          throw new _md.vttModelException(message, node, this);
      }
      vttBase.prototype.toJsonProperties = function(result) {
          result.wzElement = this.wzElement;
          result.wzTag = this.wzTag;
          result.wzName = this.wzName;
      }
      vttBase.prototype.toJsonChildren = function(result) {
          if (this.wzChildren.length > 0) {
              var children = [];
              var i, i_items=this.wzChildren, i_len=this.wzChildren.length, item;
              for (i=0; i<i_len; i++) {
                  item = this.wzChildren[i];
                  children.push(item.toJson());
              }
              result.wzChildren = children;
          }
      }
      return vttBase;
  })();
  
  _md.vttBase = vttBase;
  // element comment
  var comment = (function (vttBase) {
      _inherits(comment, vttBase);
      function comment(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(comment.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, comment);
          this.wzElement = "comment";
          // relation comment
          this.comments = [];
      }
      comment.prototype.addComment = function(name, sourceLineInfo) {
          var retval = new _md.comment(name, sourceLineInfo);
          retval.wzParent = this;
          this.comments.push(retval);
          return retval;
      }
      comment.prototype.getComment = function(name) {
          var found = null;
          this.comments.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      comment.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      comment.prototype.toJsonProperties = function(result) {
          _md.vttBase.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      comment.prototype.toJsonChildren = function(result) {
          _md.vttBase.prototype.toJsonChildren.call(this, result);
          var items, item;
          items = [];
          var i, i_items=this.comments, i_len=this.comments.length, item;
          for (i=0; i<i_len; i++) {
              item = this.comments[i];
              items.push(item.toJson());
          }
          result['comments'] = items;
      }
      comment.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 1 && _ch == '#') {
              if (name === '#') {
                  return this.wzLoadToChildColl(child, _md.comment, this.comments);
              }
          }
          if (_l == 1 && _ch == '+') {
              if (name === '+') {
                  return this.wzLoadToChildColl(child, _md.cueText, this.comments);
              }
          }
          if (_l == 1 && _ch == '.') {
              if (name === '.') {
                  return this.wzLoadToChildColl(child, _md.componentClass, this.comments);
              }
          }
          if (_l == 1 && _ch == 'b') {
              if (name === 'b') {
                  return this.wzLoadToChildColl(child, _md.b, this.comments);
              }
          }
          if (_l == 1 && _ch == 'c') {
              if (name === 'c') {
                  return this.wzLoadToChildColl(child, _md.c, this.comments);
              }
          }
          if (_l == 1 && _ch == 'i') {
              if (name === 'i') {
                  return this.wzLoadToChildColl(child, _md.i, this.comments);
              }
          }
          if (_l == 1 && _ch == 'p') {
              if (name === 'p') {
                  return this.wzLoadToChildColl(child, _md.p, this.comments);
              }
          }
          if (_l == 1 && _ch == 'u') {
              if (name === 'u') {
                  return this.wzLoadToChildColl(child, _md.u, this.comments);
              }
          }
          if (_l == 1 && _ch == 'v') {
              if (name === 'v') {
                  return this.wzLoadToChildColl(child, _md.voiceSpan, this.comments);
              }
          }
          if (_l == 2 && _ch == ':') {
              if (name === '::') {
                  return this.wzLoadToChildColl(child, _md.cueRule, this.comments);
              }
          }
          if (_l == 3 && _ch == 'c') {
              if (name === 'cue') {
                  return this.wzLoadToChildColl(child, _md.vttCue, this.comments);
              }
          }
          if (_l == 3 && _ch == 'v') {
              if (name === 'vtt') {
                  return this.wzLoadToChildColl(child, _md.vtt, this.comments);
              }
          }
          if (_l == 4 && _ch == 'l') {
              if (name === 'lang') {
                  return this.wzLoadToChildColl(child, _md.lang, this.comments);
              }
          }
          if (_l == 4 && _ch == 'r') {
              if (name === 'rule') {
                  return this.wzLoadToChildColl(child, _md.rule, this.comments);
              }
          }
          if (_l == 4 && _ch == 't') {
              if (name === 'time') {
                  return this.wzLoadToChildColl(child, _md.time, this.comments);
              }
          }
          if (_l == 5 && _ch == 's') {
              if (name === 'style') {
                  return this.wzLoadToChildColl(child, _md.style, this.comments);
              }
          }
          if (_l == 6 && _ch == 'r') {
              if (name === 'region') {
                  return this.wzLoadToChildColl(child, _md.region, this.comments);
              }
          }
          return ok;
      }
      comment.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      comment.prototype.wzVerify = function(ctx) {
          var i, i_items=this.comments, i_len=this.comments.length, item;
          for (i=0; i<i_len; i++) {
              item = this.comments[i];
              item.wzVerify(ctx);
          }
          _md.vttBase.prototype.wzVerify.call(this, ctx);
      }
      comment.prototype.wzInitialize = function(ctx) {
          var i, i_items=this.comments, i_len=this.comments.length, item;
          for (i=0; i<i_len; i++) {
              item = this.comments[i];
              item.wzInitialize(ctx);
          }
          _md.vttBase.prototype.wzInitialize.call(this, ctx);
      }
      return comment;
  })(vttBase);
  
  _md.comment = comment;
  /**
      element vtt
       The root element
  */
  var vtt = (function (comment) {
      _inherits(vtt, comment);
      function vtt(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(vtt.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, vtt);
          this.wzElement = "vtt";
          // relation style
          this.styles = [];
          // relation region
          this.regions = [];
          // relation vttCue
          this.vttCues = [];
      }
      vtt.prototype.addStyle = function(name, sourceLineInfo) {
          var retval = new _md.style(name, sourceLineInfo);
          retval.wzParent = this;
          this.styles.push(retval);
          return retval;
      }
      vtt.prototype.getStyle = function(name) {
          var found = null;
          this.styles.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      vtt.prototype.addRegion = function(name, sourceLineInfo) {
          var retval = new _md.region(name, sourceLineInfo);
          retval.wzParent = this;
          this.regions.push(retval);
          return retval;
      }
      vtt.prototype.getRegion = function(name) {
          var found = null;
          this.regions.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      vtt.prototype.addVttCue = function(name, sourceLineInfo) {
          var retval = new _md.vttCue(name, sourceLineInfo);
          retval.wzParent = this;
          this.vttCues.push(retval);
          return retval;
      }
      vtt.prototype.getVttCue = function(name) {
          var found = null;
          this.vttCues.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      vtt.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      vtt.prototype.toJsonProperties = function(result) {
          _md.comment.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      vtt.prototype.toJsonChildren = function(result) {
          _md.comment.prototype.toJsonChildren.call(this, result);
          var items, item;
          items = [];
          var i, i_items=this.styles, i_len=this.styles.length, item;
          for (i=0; i<i_len; i++) {
              item = this.styles[i];
              items.push(item.toJson());
          }
          result['styles'] = items;
          items = [];
          var i, i_items=this.regions, i_len=this.regions.length, item;
          for (i=0; i<i_len; i++) {
              item = this.regions[i];
              items.push(item.toJson());
          }
          result['regions'] = items;
          items = [];
          var i, i_items=this.vttCues, i_len=this.vttCues.length, item;
          for (i=0; i<i_len; i++) {
              item = this.vttCues[i];
              items.push(item.toJson());
          }
          result['vttCues'] = items;
      }
      vtt.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 3 && _ch == 'c') {
              if (name === 'cue') {
                  return this.wzLoadToChildColl(child, _md.vttCue, this.vttCues);
              }
          }
          if (_l == 5 && _ch == 's') {
              if (name === 'style') {
                  return this.wzLoadToChildColl(child, _md.style, this.styles);
              }
          }
          if (_l == 6 && _ch == 'r') {
              if (name === 'region') {
                  return this.wzLoadToChildColl(child, _md.region, this.regions);
              }
          }
          ok = _md.comment.prototype.loadChild.call(this, child);
          return ok;
      }
      vtt.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      vtt.prototype.wzVerify = function(ctx) {
          var i, i_items=this.styles, i_len=this.styles.length, item;
          for (i=0; i<i_len; i++) {
              item = this.styles[i];
              item.wzVerify(ctx);
          }
          var i, i_items=this.regions, i_len=this.regions.length, item;
          for (i=0; i<i_len; i++) {
              item = this.regions[i];
              item.wzVerify(ctx);
          }
          var i, i_items=this.vttCues, i_len=this.vttCues.length, item;
          for (i=0; i<i_len; i++) {
              item = this.vttCues[i];
              item.wzVerify(ctx);
          }
          _md.comment.prototype.wzVerify.call(this, ctx);
      }
      vtt.prototype.wzInitialize = function(ctx) {
          var i, i_items=this.styles, i_len=this.styles.length, item;
          for (i=0; i<i_len; i++) {
              item = this.styles[i];
              item.wzInitialize(ctx);
          }
          var i, i_items=this.regions, i_len=this.regions.length, item;
          for (i=0; i<i_len; i++) {
              item = this.regions[i];
              item.wzInitialize(ctx);
          }
          var i, i_items=this.vttCues, i_len=this.vttCues.length, item;
          for (i=0; i<i_len; i++) {
              item = this.vttCues[i];
              item.wzInitialize(ctx);
          }
          _md.comment.prototype.wzInitialize.call(this, ctx);
      }
      return vtt;
  })(comment);
  
  _md.vtt = vtt;
  /**
      element vttCue
       wzName : hh.ss hh.ss
       meaning start time --> end time
       ittf
       cue 1 4
       vtt
       00.01.000 --> 00.04.000
       ID Example
       ittf
       cue 3 5
       id 123
       + Hello
       vtt
       123
       00.03.000 --> 00.05.000
       Hello
  */
  var vttCue = (function (comment) {
      _inherits(vttCue, comment);
      function vttCue(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(vttCue.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, vttCue);
          this.allowedDIRECTIONS = [ "rl", "lr"];
          this.DIRECTION_RL = "rl";
          this.DIRECTION_LR = "lr";
          this.allowedLINEALIGNS = [ "start", "center", "end"];
          this.LINEALIGN_START = "start";
          this.LINEALIGN_CENTER = "center";
          this.LINEALIGN_END = "end";
          this.allowedPOSITIONALIGNS = [ "line-left", "center", "line-right", "auto"];
          this.POSITIONALIGN_LINE_LEFT = "line-left";
          this.POSITIONALIGN_CENTER = "center";
          this.POSITIONALIGN_LINE_RIGHT = "line-right";
          this.POSITIONALIGN_AUTO = "auto";
          this.allowedALIGNS = [ "start", "center", "end", "left", "right"];
          this.ALIGN_START = "start";
          this.ALIGN_CENTER = "center";
          this.ALIGN_END = "end";
          this.ALIGN_LEFT = "left";
          this.ALIGN_RIGHT = "right";
          this.wzElement = "vttCue";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.id = null
          // start time is also declared in the wzName
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.startTime = null
          // end time is also declared in the wzName
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.endTime = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.direction = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.lineAlign = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.positionAlign = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.align = null
          /**
               The position defines the indent of the cue box in the direction defined by the writing direction.
               wzName : a number from 0 to 100 (a percentage) or "auto".
          */
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.position = null
          // A number giving the size of the cue box, to be interpreted as a percentage of the video, as defined by the writing direction.
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.size = null
          /**
               The line defines positioning of the cue box.
               The line offsets the cue box from the top, the right or left of the video viewport as defined by the writing direction, the snap-to-lines flag, or the lines occupied by any other showing tracks.
               The line is set either as a number of lines, a percentage of the video viewport height or width, or as the special value auto, which means the offset is to depend on the other showing tracks.
          */
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.line = null
          // The id of the referenced region
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.region = null
          // relation cueText
          this.cueTexts = [];
      }
      vttCue.DIRECTION_RL = "rl";vttCue.DIRECTION_LR = "lr";vttCue.LINEALIGN_START = "start";vttCue.LINEALIGN_CENTER = "center";vttCue.LINEALIGN_END = "end";vttCue.POSITIONALIGN_LINE_LEFT = "line-left";vttCue.POSITIONALIGN_CENTER = "center";vttCue.POSITIONALIGN_LINE_RIGHT = "line-right";vttCue.POSITIONALIGN_AUTO = "auto";vttCue.ALIGN_START = "start";vttCue.ALIGN_CENTER = "center";vttCue.ALIGN_END = "end";vttCue.ALIGN_LEFT = "left";vttCue.ALIGN_RIGHT = "right";vttCue.prototype.addCueText = function(name, sourceLineInfo) {
          var retval = new _md.cueText(name, sourceLineInfo);
          retval.wzParent = this;
          this.cueTexts.push(retval);
          return retval;
      }
      vttCue.prototype.getCueText = function(name) {
          var found = null;
          this.cueTexts.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      vttCue.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      vttCue.prototype.toJsonProperties = function(result) {
          _md.comment.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.id)) {
              result["id"] = this.id;
          }
          if (!isEmpty(this.startTime)) {
              result["startTime"] = this.startTime;
          }
          if (!isEmpty(this.endTime)) {
              result["endTime"] = this.endTime;
          }
          if (!isEmpty(this.direction)) {
              result["direction"] = this.direction;
          }
          if (!isEmpty(this.lineAlign)) {
              result["lineAlign"] = this.lineAlign;
          }
          if (!isEmpty(this.positionAlign)) {
              result["positionAlign"] = this.positionAlign;
          }
          if (!isEmpty(this.align)) {
              result["align"] = this.align;
          }
          if (!isEmpty(this.position)) {
              result["position"] = this.position;
          }
          if (!isEmpty(this.size)) {
              result["size"] = this.size;
          }
          if (!isEmpty(this.line)) {
              result["line"] = this.line;
          }
          if (!isEmpty(this.region)) {
              result["region"] = this.region;
          }
      }
      vttCue.prototype.toJsonChildren = function(result) {
          _md.comment.prototype.toJsonChildren.call(this, result);
          var items, item;
          items = [];
          var i, i_items=this.cueTexts, i_len=this.cueTexts.length, item;
          for (i=0; i<i_len; i++) {
              item = this.cueTexts[i];
              items.push(item.toJson());
          }
          result['cueTexts'] = items;
      }
      vttCue.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 1 && _ch == '+') {
              if (name === '+') {
                  return this.wzLoadToChildColl(child, _md.cueText, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'b') {
              if (name === 'b') {
                  return this.wzLoadToChildColl(child, _md.b, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'c') {
              if (name === 'c') {
                  return this.wzLoadToChildColl(child, _md.c, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'i') {
              if (name === 'i') {
                  return this.wzLoadToChildColl(child, _md.i, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'p') {
              if (name === 'p') {
                  return this.wzLoadToChildColl(child, _md.p, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'u') {
              if (name === 'u') {
                  return this.wzLoadToChildColl(child, _md.u, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'v') {
              if (name === 'v') {
                  return this.wzLoadToChildColl(child, _md.voiceSpan, this.cueTexts);
              }
          }
          if (_l == 2 && _ch == 'i') {
              if (name === 'id') {
                  this.id = child.v; return true;
              }
          }
          if (_l == 3 && _ch == 'e') {
              if (name === 'end') {
                  this.endTime = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 'l') {
              if (name === 'line') {
                  this.line = child.v; return true;
              }
              else if (name === 'lang') {
                  return this.wzLoadToChildColl(child, _md.lang, this.cueTexts);
              }
          }
          if (_l == 4 && _ch == 's') {
              if (name === 'size') {
                  this.size = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 't') {
              if (name === 'time') {
                  return this.wzLoadToChildColl(child, _md.time, this.cueTexts);
              }
          }
          if (_l == 5 && _ch == 'a') {
              if (name === 'align') {
                  this.align = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 's') {
              if (name === 'start') {
                  this.startTime = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'r') {
              if (name === 'region') {
                  this.region = child.v; return true;
              }
          }
          if (_l == 8 && _ch == 'p') {
              if (name === 'position') {
                  this.position = child.v; return true;
              }
          }
          if (_l == 9 && _ch == 'd') {
              if (name === 'direction') {
                  this.direction = child.v; return true;
              }
          }
          if (_l == 9 && _ch == 'p') {
              if (name === 'pos-align') {
                  this.positionAlign = child.v; return true;
              }
              else if (name === 'pos_align') {
                  this.positionAlign = child.v; return true;
              }
          }
          if (_l == 10 && _ch == 'l') {
              if (name === 'line-align') {
                  this.lineAlign = child.v; return true;
              }
              else if (name === 'line_align') {
                  this.lineAlign = child.v; return true;
              }
          }
          ok = _md.comment.prototype.loadChild.call(this, child);
          return ok;
      }
      vttCue.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      vttCue.prototype.wzVerify = function(ctx) {
          ctx.verifyEnum("vttCue", "direction", this.direction, this.allowedDIRECTIONS, this);
          ctx.verifyEnum("vttCue", "lineAlign", this.lineAlign, this.allowedLINEALIGNS, this);
          ctx.verifyEnum("vttCue", "positionAlign", this.positionAlign, this.allowedPOSITIONALIGNS, this);
          ctx.verifyEnum("vttCue", "align", this.align, this.allowedALIGNS, this);
          var i, i_items=this.cueTexts, i_len=this.cueTexts.length, item;
          for (i=0; i<i_len; i++) {
              item = this.cueTexts[i];
              item.wzVerify(ctx);
          }
          _md.comment.prototype.wzVerify.call(this, ctx);
      }
      vttCue.prototype.wzInitialize = function(ctx) {
          var i, i_items=this.cueTexts, i_len=this.cueTexts.length, item;
          for (i=0; i<i_len; i++) {
              item = this.cueTexts[i];
              item.wzInitialize(ctx);
          }
          _md.comment.prototype.wzInitialize.call(this, ctx);
      }
      return vttCue;
  })(comment);
  
  _md.vttCue = vttCue;
  // element componentClass
  var componentClass = (function (comment) {
      _inherits(componentClass, comment);
      function componentClass(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(componentClass.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, componentClass);
          this.wzElement = "componentClass";
      }
      componentClass.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      componentClass.prototype.toJsonProperties = function(result) {
          _md.comment.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      componentClass.prototype.toJsonChildren = function(result) {
          _md.comment.prototype.toJsonChildren.call(this, result);
      }
      return componentClass;
  })(comment);
  
  _md.componentClass = componentClass;
  /**
      element cueText
       Simple cue text in one line (or auto wrapped single line when longer)
       ittf
       c 1 4
       + Never drink liquid nitrogen.
       vtt
       00:1.000 --> 00:04.000
       Never drink liquid nitrogen.
  */
  var cueText = (function (comment) {
      _inherits(cueText, comment);
      function cueText(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(cueText.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, cueText);
          this.wzElement = "cueText";
          // relation componentClass
          this.componentClasses = [];
          // relation cueText
          this.cueTexts = [];
      }
      cueText.prototype.addComponentClass = function(name, sourceLineInfo) {
          var retval = new _md.componentClass(name, sourceLineInfo);
          retval.wzParent = this;
          this.componentClasses.push(retval);
          return retval;
      }
      cueText.prototype.getComponentClass = function(name) {
          var found = null;
          this.componentClasses.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      cueText.prototype.addCueText = function(name, sourceLineInfo) {
          var retval = new _md.cueText(name, sourceLineInfo);
          retval.wzParent = this;
          this.cueTexts.push(retval);
          return retval;
      }
      cueText.prototype.getCueText = function(name) {
          var found = null;
          this.cueTexts.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      cueText.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      cueText.prototype.toJsonProperties = function(result) {
          _md.comment.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      cueText.prototype.toJsonChildren = function(result) {
          _md.comment.prototype.toJsonChildren.call(this, result);
          var items, item;
          items = [];
          var i, i_items=this.componentClasses, i_len=this.componentClasses.length, item;
          for (i=0; i<i_len; i++) {
              item = this.componentClasses[i];
              items.push(item.toJson());
          }
          result['componentClasses'] = items;
          items = [];
          var i, i_items=this.cueTexts, i_len=this.cueTexts.length, item;
          for (i=0; i<i_len; i++) {
              item = this.cueTexts[i];
              items.push(item.toJson());
          }
          result['cueTexts'] = items;
      }
      cueText.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 1 && _ch == '+') {
              if (name === '+') {
                  return this.wzLoadToChildColl(child, _md.cueText, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == '.') {
              if (name === '.') {
                  return this.wzLoadToChildColl(child, _md.componentClass, this.componentClasses);
              }
          }
          if (_l == 1 && _ch == 'b') {
              if (name === 'b') {
                  return this.wzLoadToChildColl(child, _md.b, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'c') {
              if (name === 'c') {
                  return this.wzLoadToChildColl(child, _md.c, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'i') {
              if (name === 'i') {
                  return this.wzLoadToChildColl(child, _md.i, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'p') {
              if (name === 'p') {
                  return this.wzLoadToChildColl(child, _md.p, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'u') {
              if (name === 'u') {
                  return this.wzLoadToChildColl(child, _md.u, this.cueTexts);
              }
          }
          if (_l == 1 && _ch == 'v') {
              if (name === 'v') {
                  return this.wzLoadToChildColl(child, _md.voiceSpan, this.cueTexts);
              }
          }
          if (_l == 4 && _ch == 'l') {
              if (name === 'lang') {
                  return this.wzLoadToChildColl(child, _md.lang, this.cueTexts);
              }
          }
          if (_l == 4 && _ch == 't') {
              if (name === 'time') {
                  return this.wzLoadToChildColl(child, _md.time, this.cueTexts);
              }
          }
          ok = _md.comment.prototype.loadChild.call(this, child);
          return ok;
      }
      cueText.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      cueText.prototype.wzVerify = function(ctx) {
          var i, i_items=this.componentClasses, i_len=this.componentClasses.length, item;
          for (i=0; i<i_len; i++) {
              item = this.componentClasses[i];
              item.wzVerify(ctx);
          }
          var i, i_items=this.cueTexts, i_len=this.cueTexts.length, item;
          for (i=0; i<i_len; i++) {
              item = this.cueTexts[i];
              item.wzVerify(ctx);
          }
          _md.comment.prototype.wzVerify.call(this, ctx);
      }
      cueText.prototype.wzInitialize = function(ctx) {
          var i, i_items=this.componentClasses, i_len=this.componentClasses.length, item;
          for (i=0; i<i_len; i++) {
              item = this.componentClasses[i];
              item.wzInitialize(ctx);
          }
          var i, i_items=this.cueTexts, i_len=this.cueTexts.length, item;
          for (i=0; i<i_len; i++) {
              item = this.cueTexts[i];
              item.wzInitialize(ctx);
          }
          _md.comment.prototype.wzInitialize.call(this, ctx);
      }
      return cueText;
  })(comment);
  
  _md.cueText = cueText;
  /**
      element p
       Line text. For breaking cue text in multiple lines.
       ittf
       c 5 9
       p It will perforate your stomach.
       p You could die.
       vtt
       00:05.000 --> 00:09.000
       — It will perforate your stomach.
       — You could die.
  */
  var p = (function (cueText) {
      _inherits(p, cueText);
      function p(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(p.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, p);
          this.wzElement = "p";
      }
      p.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      p.prototype.toJsonProperties = function(result) {
          _md.cueText.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      p.prototype.toJsonChildren = function(result) {
          _md.cueText.prototype.toJsonChildren.call(this, result);
      }
      return p;
  })(cueText);
  
  _md.p = p;
  /**
      element voiceSpan
       cue voice span
       wzName : the voice name
       ittf
       c 2 4
       v Mary
       . loud
       + No way
       vtt
       00:02.000 --> 00:04.000
       <v.loud Mary>No way!
  */
  var voiceSpan = (function (cueText) {
      _inherits(voiceSpan, cueText);
      function voiceSpan(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(voiceSpan.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, voiceSpan);
          this.wzElement = "voiceSpan";
          // A style class name
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.class = null
      }
      voiceSpan.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      voiceSpan.prototype.toJsonProperties = function(result) {
          _md.cueText.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.class)) {
              result["class"] = this.class;
          }
      }
      voiceSpan.prototype.toJsonChildren = function(result) {
          _md.cueText.prototype.toJsonChildren.call(this, result);
      }
      voiceSpan.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 1 && _ch == '.') {
              if (name === '.') {
                  this.class = child.v; return true;
              }
          }
          ok = _md.cueText.prototype.loadChild.call(this, child);
          return ok;
      }
      voiceSpan.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return voiceSpan;
  })(cueText);
  
  _md.voiceSpan = voiceSpan;
  /**
      element i
       italic text span
  */
  var i = (function (cueText) {
      _inherits(i, cueText);
      function i(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(i.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, i);
          this.wzElement = "i";
      }
      i.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      i.prototype.toJsonProperties = function(result) {
          _md.cueText.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      i.prototype.toJsonChildren = function(result) {
          _md.cueText.prototype.toJsonChildren.call(this, result);
      }
      return i;
  })(cueText);
  
  _md.i = i;
  /**
      element b
       bold text span
  */
  var b = (function (cueText) {
      _inherits(b, cueText);
      function b(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(b.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, b);
          this.wzElement = "b";
      }
      b.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      b.prototype.toJsonProperties = function(result) {
          _md.cueText.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      b.prototype.toJsonChildren = function(result) {
          _md.cueText.prototype.toJsonChildren.call(this, result);
      }
      return b;
  })(cueText);
  
  _md.b = b;
  /**
      element u
       underline text span
  */
  var u = (function (cueText) {
      _inherits(u, cueText);
      function u(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(u.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, u);
          this.wzElement = "u";
      }
      u.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      u.prototype.toJsonProperties = function(result) {
          _md.cueText.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      u.prototype.toJsonChildren = function(result) {
          _md.cueText.prototype.toJsonChildren.call(this, result);
      }
      return u;
  })(cueText);
  
  _md.u = u;
  /**
      element c
       class text span
       style the contained text using a CSS class
       wzName : css class
       ittf
       + Hey
       c classname
       + John
       vtt
       Hey <c.classname>John</c>
  */
  var c = (function (cueText) {
      _inherits(c, cueText);
      function c(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(c.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, c);
          this.wzElement = "c";
      }
      c.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      c.prototype.toJsonProperties = function(result) {
          _md.cueText.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      c.prototype.toJsonChildren = function(result) {
          _md.cueText.prototype.toJsonChildren.call(this, result);
      }
      return c;
  })(cueText);
  
  _md.c = c;
  /**
      element time
       cue time span
       ittf
       c 1 10
       + Hey ...
       time 9
       + came on.
       vtt
       00.01.000 --> 00.10.000
       Hey ... <time 00.09.000> came on.
  */
  var time = (function (cueText) {
      _inherits(time, cueText);
      function time(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(time.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, time);
          this.wzElement = "time";
      }
      time.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      time.prototype.toJsonProperties = function(result) {
          _md.cueText.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      time.prototype.toJsonChildren = function(result) {
          _md.cueText.prototype.toJsonChildren.call(this, result);
      }
      return time;
  })(cueText);
  
  _md.time = time;
  /**
      element lang
       cue language span
       wzName : the language code
       ittf
       c 4.5.1 4.7.8
       + Sur les
       i
       . foreignphrase
       lang en
       + playground
       + , ici à Montpellier
       vtt
       04:05.001 --> 04:07.800
       Sur les <i.foreignphrase><lang en>playground</lang></i>, ici à Montpellier
  */
  var lang = (function (cueText) {
      _inherits(lang, cueText);
      function lang(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(lang.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, lang);
          this.wzElement = "lang";
      }
      lang.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      lang.prototype.toJsonProperties = function(result) {
          _md.cueText.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      lang.prototype.toJsonChildren = function(result) {
          _md.cueText.prototype.toJsonChildren.call(this, result);
      }
      return lang;
  })(cueText);
  
  _md.lang = lang;
  /**
      element region
       wzName : the region id
  */
  var region = (function (comment) {
      _inherits(region, comment);
      function region(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(region.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, region);
          this.wzElement = "region";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.width = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.lines = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.regionAnchor = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.viewportAnchor = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.scroll = null
      }
      region.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      region.prototype.toJsonProperties = function(result) {
          _md.comment.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.width)) {
              result["width"] = this.width;
          }
          if (!isEmpty(this.lines)) {
              result["lines"] = this.lines;
          }
          if (!isEmpty(this.regionAnchor)) {
              result["regionAnchor"] = this.regionAnchor;
          }
          if (!isEmpty(this.viewportAnchor)) {
              result["viewportAnchor"] = this.viewportAnchor;
          }
          if (!isEmpty(this.scroll)) {
              result["scroll"] = this.scroll;
          }
      }
      region.prototype.toJsonChildren = function(result) {
          _md.comment.prototype.toJsonChildren.call(this, result);
      }
      region.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 5 && _ch == 'l') {
              if (name === 'lines') {
                  this.lines = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'w') {
              if (name === 'width') {
                  this.width = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 's') {
              if (name === 'scroll') {
                  this.scroll = child.v; return true;
              }
          }
          if (_l == 13 && _ch == 'r') {
              if (name === 'region-anchor') {
                  this.regionAnchor = child.v; return true;
              }
              else if (name === 'region_anchor') {
                  this.regionAnchor = child.v; return true;
              }
          }
          if (_l == 15 && _ch == 'v') {
              if (name === 'viewport-anchor') {
                  this.viewportAnchor = child.v; return true;
              }
              else if (name === 'viewport_anchor') {
                  this.viewportAnchor = child.v; return true;
              }
          }
          ok = _md.comment.prototype.loadChild.call(this, child);
          return ok;
      }
      region.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return region;
  })(comment);
  
  _md.region = region;
  // element style
  var style = (function (comment) {
      _inherits(style, comment);
      function style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, style);
          this.wzElement = "style";
          // relation rule
          this.rules = [];
      }
      style.prototype.addRule = function(name, sourceLineInfo) {
          var retval = new _md.rule(name, sourceLineInfo);
          retval.wzParent = this;
          this.rules.push(retval);
          return retval;
      }
      style.prototype.getRule = function(name) {
          var found = null;
          this.rules.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      style.prototype.toJsonProperties = function(result) {
          _md.comment.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      style.prototype.toJsonChildren = function(result) {
          _md.comment.prototype.toJsonChildren.call(this, result);
          var items, item;
          items = [];
          var i, i_items=this.rules, i_len=this.rules.length, item;
          for (i=0; i<i_len; i++) {
              item = this.rules[i];
              items.push(item.toJson());
          }
          result['rules'] = items;
      }
      style.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 2 && _ch == ':') {
              if (name === '::') {
                  return this.wzLoadToChildColl(child, _md.cueRule, this.rules);
              }
          }
          if (_l == 4 && _ch == 'r') {
              if (name === 'rule') {
                  return this.wzLoadToChildColl(child, _md.rule, this.rules);
              }
          }
          ok = _md.comment.prototype.loadChild.call(this, child);
          return ok;
      }
      style.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      style.prototype.wzVerify = function(ctx) {
          var i, i_items=this.rules, i_len=this.rules.length, item;
          for (i=0; i<i_len; i++) {
              item = this.rules[i];
              item.wzVerify(ctx);
          }
          _md.comment.prototype.wzVerify.call(this, ctx);
      }
      style.prototype.wzInitialize = function(ctx) {
          var i, i_items=this.rules, i_len=this.rules.length, item;
          for (i=0; i<i_len; i++) {
              item = this.rules[i];
              item.wzInitialize(ctx);
          }
          _md.comment.prototype.wzInitialize.call(this, ctx);
      }
      return style;
  })(comment);
  
  _md.style = style;
  // element rule
  var rule = (function (comment) {
      _inherits(rule, comment);
      function rule(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(rule.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, rule);
          this.wzElement = "rule";
          // relation property
          this.properties = [];
      }
      rule.prototype.addProperty = function(name, sourceLineInfo) {
          var retval = new _md.property(name, sourceLineInfo);
          retval.wzParent = this;
          this.properties.push(retval);
          return retval;
      }
      rule.prototype.getProperty = function(name) {
          var found = null;
          this.properties.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      rule.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      rule.prototype.toJsonProperties = function(result) {
          _md.comment.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      rule.prototype.toJsonChildren = function(result) {
          _md.comment.prototype.toJsonChildren.call(this, result);
          var items, item;
          items = [];
          var i, i_items=this.properties, i_len=this.properties.length, item;
          for (i=0; i<i_len; i++) {
              item = this.properties[i];
              items.push(item.toJson());
          }
          result['properties'] = items;
      }
      rule.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 1 && _ch == '@') {
              if (name === '@') {
                  return this.wzLoadToChildColl(child, _md.property, this.properties);
              }
          }
          if (_l == 3 && _ch == 'c') {
              if (name === 'cue') {
                  return this.wzLoadToChildColl(child, _md.cue, this.properties);
              }
          }
          if (_l == 3 && _ch == 't') {
              if (name === 'top') {
                  return this.wzLoadToChildColl(child, _md.top, this.properties);
              }
          }
          if (_l == 4 && _ch == 'c') {
              if (name === 'clip') {
                  return this.wzLoadToChildColl(child, _md.clip, this.properties);
              }
          }
          if (_l == 4 && _ch == 'f') {
              if (name === 'flex') {
                  return this.wzLoadToChildColl(child, _md.flex, this.properties);
              }
              else if (name === 'fill') {
                  return this.wzLoadToChildColl(child, _md.fill, this.properties);
              }
              else if (name === 'font') {
                  return this.wzLoadToChildColl(child, _md.font, this.properties);
              }
          }
          if (_l == 4 && _ch == 'g') {
              if (name === 'grid') {
                  return this.wzLoadToChildColl(child, _md.grid, this.properties);
              }
          }
          if (_l == 4 && _ch == 'l') {
              if (name === 'left') {
                  return this.wzLoadToChildColl(child, _md.left, this.properties);
              }
          }
          if (_l == 4 && _ch == 'z') {
              if (name === 'zoom') {
                  return this.wzLoadToChildColl(child, _md.zoom, this.properties);
              }
          }
          if (_l == 5 && _ch == 'c') {
              if (name === 'clear') {
                  return this.wzLoadToChildColl(child, _md.clear, this.properties);
              }
              else if (name === 'color') {
                  return this.wzLoadToChildColl(child, _md.color, this.properties);
              }
          }
          if (_l == 5 && _ch == 'f') {
              if (name === 'float') {
                  return this.wzLoadToChildColl(child, _md.xfloat, this.properties);
              }
          }
          if (_l == 5 && _ch == 'n') {
              if (name === 'navup') {
                  return this.wzLoadToChildColl(child, _md.nav_up, this.properties);
              }
          }
          if (_l == 5 && _ch == 'o') {
              if (name === 'order') {
                  return this.wzLoadToChildColl(child, _md.order, this.properties);
              }
          }
          if (_l == 5 && _ch == 'p') {
              if (name === 'pause') {
                  return this.wzLoadToChildColl(child, _md.pause, this.properties);
              }
              else if (name === 'pitch') {
                  return this.wzLoadToChildColl(child, _md.pitch, this.properties);
              }
          }
          if (_l == 5 && _ch == 'r') {
              if (name === 'right') {
                  return this.wzLoadToChildColl(child, _md.right, this.properties);
              }
          }
          if (_l == 5 && _ch == 's') {
              if (name === 'speak') {
                  return this.wzLoadToChildColl(child, _md.speak, this.properties);
              }
          }
          if (_l == 5 && _ch == 'w') {
              if (name === 'width') {
                  return this.wzLoadToChildColl(child, _md.width, this.properties);
              }
          }
          if (_l == 6 && _ch == 'b') {
              if (name === 'border') {
                  return this.wzLoadToChildColl(child, _md.border, this.properties);
              }
              else if (name === 'bottom') {
                  return this.wzLoadToChildColl(child, _md.bottom, this.properties);
              }
          }
          if (_l == 6 && _ch == 'c') {
              if (name === 'cursor') {
                  return this.wzLoadToChildColl(child, _md.cursor, this.properties);
              }
          }
          if (_l == 6 && _ch == 'f') {
              if (name === 'filter') {
                  return this.wzLoadToChildColl(child, _md.filter, this.properties);
              }
          }
          if (_l == 6 && _ch == 'h') {
              if (name === 'height') {
                  return this.wzLoadToChildColl(child, _md.height, this.properties);
              }
          }
          if (_l == 6 && _ch == 'm') {
              if (name === 'margin') {
                  return this.wzLoadToChildColl(child, _md.margin, this.properties);
              }
          }
          if (_l == 6 && _ch == 'n') {
              if (name === 'nav-up') {
                  return this.wzLoadToChildColl(child, _md.nav_up, this.properties);
              }
          }
          if (_l == 6 && _ch == 'q') {
              if (name === 'quotes') {
                  return this.wzLoadToChildColl(child, _md.quotes, this.properties);
              }
          }
          if (_l == 6 && _ch == 'r') {
              if (name === 'resize') {
                  return this.wzLoadToChildColl(child, _md.resize, this.properties);
              }
          }
          if (_l == 6 && _ch == 's') {
              if (name === 'stress') {
                  return this.wzLoadToChildColl(child, _md.stress, this.properties);
              }
          }
          if (_l == 6 && _ch == 'v') {
              if (name === 'volume') {
                  return this.wzLoadToChildColl(child, _md.volume, this.properties);
              }
          }
          if (_l == 6 && _ch == 'w') {
              if (name === 'widows') {
                  return this.wzLoadToChildColl(child, _md.widows, this.properties);
              }
          }
          if (_l == 6 && _ch == 'z') {
              if (name === 'zindex') {
                  return this.wzLoadToChildColl(child, _md.z_index, this.properties);
              }
          }
          if (_l == 7 && _ch == 'a') {
              if (name === 'azimuth') {
                  return this.wzLoadToChildColl(child, _md.azimuth, this.properties);
              }
          }
          if (_l == 7 && _ch == 'c') {
              if (name === 'columns') {
                  return this.wzLoadToChildColl(child, _md.columns, this.properties);
              }
              else if (name === 'content') {
                  return this.wzLoadToChildColl(child, _md.content, this.properties);
              }
          }
          if (_l == 7 && _ch == 'd') {
              if (name === 'display') {
                  return this.wzLoadToChildColl(child, _md.display, this.properties);
              }
          }
          if (_l == 7 && _ch == 'g') {
              if (name === 'gridgap') {
                  return this.wzLoadToChildColl(child, _md.grid_gap, this.properties);
              }
              else if (name === 'gridrow') {
                  return this.wzLoadToChildColl(child, _md.grid_row, this.properties);
              }
          }
          if (_l == 7 && _ch == 'h') {
              if (name === 'hyphens') {
                  return this.wzLoadToChildColl(child, _md.hyphens, this.properties);
              }
          }
          if (_l == 7 && _ch == 'n') {
              if (name === 'navdown') {
                  return this.wzLoadToChildColl(child, _md.nav_down, this.properties);
              }
              else if (name === 'navleft') {
                  return this.wzLoadToChildColl(child, _md.nav_left, this.properties);
              }
          }
          if (_l == 7 && _ch == 'o') {
              if (name === 'opacity') {
                  return this.wzLoadToChildColl(child, _md.opacity, this.properties);
              }
              else if (name === 'orphans') {
                  return this.wzLoadToChildColl(child, _md.orphans, this.properties);
              }
              else if (name === 'outline') {
                  return this.wzLoadToChildColl(child, _md.outline, this.properties);
              }
          }
          if (_l == 7 && _ch == 'p') {
              if (name === 'padding') {
                  return this.wzLoadToChildColl(child, _md.padding, this.properties);
              }
          }
          if (_l == 7 && _ch == 't') {
              if (name === 'tabsize') {
                  return this.wzLoadToChildColl(child, _md.tab_size, this.properties);
              }
          }
          if (_l == 7 && _ch == 'z') {
              if (name === 'z-index') {
                  return this.wzLoadToChildColl(child, _md.z_index, this.properties);
              }
          }
          if (_l == 8 && _ch == 'c') {
              if (name === 'cueafter') {
                  return this.wzLoadToChildColl(child, _md.cue_after, this.properties);
              }
          }
          if (_l == 8 && _ch == 'f') {
              if (name === 'flexflow') {
                  return this.wzLoadToChildColl(child, _md.flex_flow, this.properties);
              }
              else if (name === 'flexgrow') {
                  return this.wzLoadToChildColl(child, _md.flex_grow, this.properties);
              }
              else if (name === 'flexwrap') {
                  return this.wzLoadToChildColl(child, _md.flex_wrap, this.properties);
              }
              else if (name === 'fontsize') {
                  return this.wzLoadToChildColl(child, _md.font_size, this.properties);
              }
          }
          if (_l == 8 && _ch == 'g') {
              if (name === 'grid-gap') {
                  return this.wzLoadToChildColl(child, _md.grid_gap, this.properties);
              }
              else if (name === 'grid-row') {
                  return this.wzLoadToChildColl(child, _md.grid_row, this.properties);
              }
              else if (name === 'gridarea') {
                  return this.wzLoadToChildColl(child, _md.grid_area, this.properties);
              }
          }
          if (_l == 8 && _ch == 'm') {
              if (name === 'maxwidth') {
                  return this.wzLoadToChildColl(child, _md.max_width, this.properties);
              }
              else if (name === 'minwidth') {
                  return this.wzLoadToChildColl(child, _md.min_width, this.properties);
              }
          }
          if (_l == 8 && _ch == 'n') {
              if (name === 'nav-down') {
                  return this.wzLoadToChildColl(child, _md.nav_down, this.properties);
              }
              else if (name === 'nav-left') {
                  return this.wzLoadToChildColl(child, _md.nav_left, this.properties);
              }
              else if (name === 'navright') {
                  return this.wzLoadToChildColl(child, _md.nav_right, this.properties);
              }
          }
          if (_l == 8 && _ch == 'o') {
              if (name === 'overflow') {
                  return this.wzLoadToChildColl(child, _md.overflow, this.properties);
              }
          }
          if (_l == 8 && _ch == 'p') {
              if (name === 'position') {
                  return this.wzLoadToChildColl(child, _md.position, this.properties);
              }
          }
          if (_l == 8 && _ch == 'r') {
              if (name === 'richness') {
                  return this.wzLoadToChildColl(child, _md.richness, this.properties);
              }
          }
          if (_l == 8 && _ch == 't') {
              if (name === 'tab-size') {
                  return this.wzLoadToChildColl(child, _md.tab_size, this.properties);
              }
          }
          if (_l == 8 && _ch == 'w') {
              if (name === 'wordwrap') {
                  return this.wzLoadToChildColl(child, _md.word_wrap, this.properties);
              }
          }
          if (_l == 9 && _ch == 'a') {
              if (name === 'alignself') {
                  return this.wzLoadToChildColl(child, _md.align_self, this.properties);
              }
              else if (name === 'animation') {
                  return this.wzLoadToChildColl(child, _md.animation, this.properties);
              }
          }
          if (_l == 9 && _ch == 'b') {
              if (name === 'bordertop') {
                  return this.wzLoadToChildColl(child, _md.border_top, this.properties);
              }
              else if (name === 'boxsizing') {
                  return this.wzLoadToChildColl(child, _md.box_sizing, this.properties);
              }
              else if (name === 'boxshadow') {
                  return this.wzLoadToChildColl(child, _md.box_shadow, this.properties);
              }
          }
          if (_l == 9 && _ch == 'c') {
              if (name === 'columngap') {
                  return this.wzLoadToChildColl(child, _md.column_gap, this.properties);
              }
              else if (name === 'cue-after') {
                  return this.wzLoadToChildColl(child, _md.cue_after, this.properties);
              }
              else if (name === 'cuebefore') {
                  return this.wzLoadToChildColl(child, _md.cue_before, this.properties);
              }
          }
          if (_l == 9 && _ch == 'd') {
              if (name === 'direction') {
                  return this.wzLoadToChildColl(child, _md.direction, this.properties);
              }
          }
          if (_l == 9 && _ch == 'e') {
              if (name === 'elevation') {
                  return this.wzLoadToChildColl(child, _md.elevation, this.properties);
              }
          }
          if (_l == 9 && _ch == 'f') {
              if (name === 'flexbasis') {
                  return this.wzLoadToChildColl(child, _md.flex_basis, this.properties);
              }
              else if (name === 'flex-flow') {
                  return this.wzLoadToChildColl(child, _md.flex_flow, this.properties);
              }
              else if (name === 'flex-grow') {
                  return this.wzLoadToChildColl(child, _md.flex_grow, this.properties);
              }
              else if (name === 'flex-wrap') {
                  return this.wzLoadToChildColl(child, _md.flex_wrap, this.properties);
              }
              else if (name === 'font-size') {
                  return this.wzLoadToChildColl(child, _md.font_size, this.properties);
              }
              else if (name === 'fontstyle') {
                  return this.wzLoadToChildColl(child, _md.font_style, this.properties);
              }
          }
          if (_l == 9 && _ch == 'g') {
              if (name === 'grid-area') {
                  return this.wzLoadToChildColl(child, _md.grid_area, this.properties);
              }
          }
          if (_l == 9 && _ch == 'i') {
              if (name === 'isolation') {
                  return this.wzLoadToChildColl(child, _md.isolation, this.properties);
              }
          }
          if (_l == 9 && _ch == 'l') {
              if (name === 'linebreak') {
                  return this.wzLoadToChildColl(child, _md.line_break, this.properties);
              }
              else if (name === 'liststyle') {
                  return this.wzLoadToChildColl(child, _md.list_style, this.properties);
              }
          }
          if (_l == 9 && _ch == 'm') {
              if (name === 'margintop') {
                  return this.wzLoadToChildColl(child, _md.margin_top, this.properties);
              }
              else if (name === 'maxheight') {
                  return this.wzLoadToChildColl(child, _md.max_height, this.properties);
              }
              else if (name === 'max-width') {
                  return this.wzLoadToChildColl(child, _md.max_width, this.properties);
              }
              else if (name === 'minheight') {
                  return this.wzLoadToChildColl(child, _md.min_height, this.properties);
              }
              else if (name === 'min-width') {
                  return this.wzLoadToChildColl(child, _md.min_width, this.properties);
              }
          }
          if (_l == 9 && _ch == 'n') {
              if (name === 'nav-right') {
                  return this.wzLoadToChildColl(child, _md.nav_right, this.properties);
              }
          }
          if (_l == 9 && _ch == 'o') {
              if (name === 'overflowx') {
                  return this.wzLoadToChildColl(child, _md.overflow_x, this.properties);
              }
              else if (name === 'overflowy') {
                  return this.wzLoadToChildColl(child, _md.overflow_y, this.properties);
              }
          }
          if (_l == 9 && _ch == 't') {
              if (name === 'targetnew') {
                  return this.wzLoadToChildColl(child, _md.target_new, this.properties);
              }
              else if (name === 'textalign') {
                  return this.wzLoadToChildColl(child, _md.text_align, this.properties);
              }
              else if (name === 'transform') {
                  return this.wzLoadToChildColl(child, _md.transform, this.properties);
              }
          }
          if (_l == 9 && _ch == 'w') {
              if (name === 'wordbreak') {
                  return this.wzLoadToChildColl(child, _md.word_break, this.properties);
              }
              else if (name === 'word-wrap') {
                  return this.wzLoadToChildColl(child, _md.word_wrap, this.properties);
              }
          }
          if (_l == 10 && _ch == 'a') {
              if (name === 'alignitems') {
                  return this.wzLoadToChildColl(child, _md.align_items, this.properties);
              }
              else if (name === 'align-self') {
                  return this.wzLoadToChildColl(child, _md.align_self, this.properties);
              }
              else if (name === 'appearance') {
                  return this.wzLoadToChildColl(child, _md.appearance, this.properties);
              }
          }
          if (_l == 10 && _ch == 'b') {
              if (name === 'background') {
                  return this.wzLoadToChildColl(child, _md.background, this.properties);
              }
              else if (name === 'border-top') {
                  return this.wzLoadToChildColl(child, _md.border_top, this.properties);
              }
              else if (name === 'borderleft') {
                  return this.wzLoadToChildColl(child, _md.border_left, this.properties);
              }
              else if (name === 'box-sizing') {
                  return this.wzLoadToChildColl(child, _md.box_sizing, this.properties);
              }
              else if (name === 'box-shadow') {
                  return this.wzLoadToChildColl(child, _md.box_shadow, this.properties);
              }
              else if (name === 'breakafter') {
                  return this.wzLoadToChildColl(child, _md.break_after, this.properties);
              }
          }
          if (_l == 10 && _ch == 'c') {
              if (name === 'columnfill') {
                  return this.wzLoadToChildColl(child, _md.column_fill, this.properties);
              }
              else if (name === 'column-gap') {
                  return this.wzLoadToChildColl(child, _md.column_gap, this.properties);
              }
              else if (name === 'columnrule') {
                  return this.wzLoadToChildColl(child, _md.column_rule, this.properties);
              }
              else if (name === 'columnspan') {
                  return this.wzLoadToChildColl(child, _md.column_span, this.properties);
              }
              else if (name === 'cue-before') {
                  return this.wzLoadToChildColl(child, _md.cue_before, this.properties);
              }
          }
          if (_l == 10 && _ch == 'e') {
              if (name === 'emptycells') {
                  return this.wzLoadToChildColl(child, _md.empty_cells, this.properties);
              }
          }
          if (_l == 10 && _ch == 'f') {
              if (name === 'flex-basis') {
                  return this.wzLoadToChildColl(child, _md.flex_basis, this.properties);
              }
              else if (name === 'flexshrink') {
                  return this.wzLoadToChildColl(child, _md.flex_shrink, this.properties);
              }
              else if (name === 'fontfamily') {
                  return this.wzLoadToChildColl(child, _md.font_family, this.properties);
              }
              else if (name === 'font-style') {
                  return this.wzLoadToChildColl(child, _md.font_style, this.properties);
              }
              else if (name === 'fontweight') {
                  return this.wzLoadToChildColl(child, _md.font_weight, this.properties);
              }
          }
          if (_l == 10 && _ch == 'g') {
              if (name === 'gridrowgap') {
                  return this.wzLoadToChildColl(child, _md.grid_row_gap, this.properties);
              }
              else if (name === 'gridrowend') {
                  return this.wzLoadToChildColl(child, _md.grid_row_end, this.properties);
              }
              else if (name === 'gridcolumn') {
                  return this.wzLoadToChildColl(child, _md.grid_column, this.properties);
              }
          }
          if (_l == 10 && _ch == 'l') {
              if (name === 'line-break') {
                  return this.wzLoadToChildColl(child, _md.line_break, this.properties);
              }
              else if (name === 'lineheight') {
                  return this.wzLoadToChildColl(child, _md.line_height, this.properties);
              }
              else if (name === 'list-style') {
                  return this.wzLoadToChildColl(child, _md.list_style, this.properties);
              }
          }
          if (_l == 10 && _ch == 'm') {
              if (name === 'margin-top') {
                  return this.wzLoadToChildColl(child, _md.margin_top, this.properties);
              }
              else if (name === 'marginleft') {
                  return this.wzLoadToChildColl(child, _md.margin_left, this.properties);
              }
              else if (name === 'max-height') {
                  return this.wzLoadToChildColl(child, _md.max_height, this.properties);
              }
              else if (name === 'min-height') {
                  return this.wzLoadToChildColl(child, _md.min_height, this.properties);
              }
          }
          if (_l == 10 && _ch == 'o') {
              if (name === 'overflow-x') {
                  return this.wzLoadToChildColl(child, _md.overflow_x, this.properties);
              }
              else if (name === 'overflow-y') {
                  return this.wzLoadToChildColl(child, _md.overflow_y, this.properties);
              }
          }
          if (_l == 10 && _ch == 'p') {
              if (name === 'paddingtop') {
                  return this.wzLoadToChildColl(child, _md.padding_top, this.properties);
              }
              else if (name === 'pauseafter') {
                  return this.wzLoadToChildColl(child, _md.pause_after, this.properties);
              }
              else if (name === 'pitchrange') {
                  return this.wzLoadToChildColl(child, _md.pitch_range, this.properties);
              }
              else if (name === 'playduring') {
                  return this.wzLoadToChildColl(child, _md.play_during, this.properties);
              }
          }
          if (_l == 10 && _ch == 's') {
              if (name === 'speechrate') {
                  return this.wzLoadToChildColl(child, _md.speech_rate, this.properties);
              }
          }
          if (_l == 10 && _ch == 't') {
              if (name === 'targetname') {
                  return this.wzLoadToChildColl(child, _md.target_name, this.properties);
              }
              else if (name === 'target-new') {
                  return this.wzLoadToChildColl(child, _md.target_new, this.properties);
              }
              else if (name === 'text-align') {
                  return this.wzLoadToChildColl(child, _md.text_align, this.properties);
              }
              else if (name === 'textindent') {
                  return this.wzLoadToChildColl(child, _md.text_indent, this.properties);
              }
              else if (name === 'textshadow') {
                  return this.wzLoadToChildColl(child, _md.text_shadow, this.properties);
              }
              else if (name === 'transition') {
                  return this.wzLoadToChildColl(child, _md.transition, this.properties);
              }
          }
          if (_l == 10 && _ch == 'u') {
              if (name === 'userselect') {
                  return this.wzLoadToChildColl(child, _md.user_select, this.properties);
              }
          }
          if (_l == 10 && _ch == 'v') {
              if (name === 'visibility') {
                  return this.wzLoadToChildColl(child, _md.visibility, this.properties);
              }
          }
          if (_l == 10 && _ch == 'w') {
              if (name === 'whitespace') {
                  return this.wzLoadToChildColl(child, _md.white_space, this.properties);
              }
              else if (name === 'willchange') {
                  return this.wzLoadToChildColl(child, _md.will_change, this.properties);
              }
              else if (name === 'word-break') {
                  return this.wzLoadToChildColl(child, _md.word_break, this.properties);
              }
          }
          if (_l == 11 && _ch == 'a') {
              if (name === 'align-items') {
                  return this.wzLoadToChildColl(child, _md.align_items, this.properties);
              }
          }
          if (_l == 11 && _ch == 'b') {
              if (name === 'bordercolor') {
                  return this.wzLoadToChildColl(child, _md.border_color, this.properties);
              }
              else if (name === 'borderstyle') {
                  return this.wzLoadToChildColl(child, _md.border_style, this.properties);
              }
              else if (name === 'borderright') {
                  return this.wzLoadToChildColl(child, _md.border_right, this.properties);
              }
              else if (name === 'border-left') {
                  return this.wzLoadToChildColl(child, _md.border_left, this.properties);
              }
              else if (name === 'borderwidth') {
                  return this.wzLoadToChildColl(child, _md.border_width, this.properties);
              }
              else if (name === 'borderimage') {
                  return this.wzLoadToChildColl(child, _md.border_image, this.properties);
              }
              else if (name === 'break-after') {
                  return this.wzLoadToChildColl(child, _md.break_after, this.properties);
              }
              else if (name === 'breakbefore') {
                  return this.wzLoadToChildColl(child, _md.break_before, this.properties);
              }
              else if (name === 'breakinside') {
                  return this.wzLoadToChildColl(child, _md.break_inside, this.properties);
              }
          }
          if (_l == 11 && _ch == 'c') {
              if (name === 'captionside') {
                  return this.wzLoadToChildColl(child, _md.caption_side, this.properties);
              }
              else if (name === 'columncount') {
                  return this.wzLoadToChildColl(child, _md.column_count, this.properties);
              }
              else if (name === 'column-fill') {
                  return this.wzLoadToChildColl(child, _md.column_fill, this.properties);
              }
              else if (name === 'column-rule') {
                  return this.wzLoadToChildColl(child, _md.column_rule, this.properties);
              }
              else if (name === 'column-span') {
                  return this.wzLoadToChildColl(child, _md.column_span, this.properties);
              }
              else if (name === 'columnwidth') {
                  return this.wzLoadToChildColl(child, _md.column_width, this.properties);
              }
          }
          if (_l == 11 && _ch == 'e') {
              if (name === 'empty-cells') {
                  return this.wzLoadToChildColl(child, _md.empty_cells, this.properties);
              }
          }
          if (_l == 11 && _ch == 'f') {
              if (name === 'flex-shrink') {
                  return this.wzLoadToChildColl(child, _md.flex_shrink, this.properties);
              }
              else if (name === 'font-family') {
                  return this.wzLoadToChildColl(child, _md.font_family, this.properties);
              }
              else if (name === 'fontvariant') {
                  return this.wzLoadToChildColl(child, _md.font_variant, this.properties);
              }
              else if (name === 'font-weight') {
                  return this.wzLoadToChildColl(child, _md.font_weight, this.properties);
              }
          }
          if (_l == 11 && _ch == 'g') {
              if (name === 'grid-column') {
                  return this.wzLoadToChildColl(child, _md.grid_column, this.properties);
              }
          }
          if (_l == 11 && _ch == 'j') {
              if (name === 'justifyself') {
                  return this.wzLoadToChildColl(child, _md.justify_self, this.properties);
              }
          }
          if (_l == 11 && _ch == 'l') {
              if (name === 'line-height') {
                  return this.wzLoadToChildColl(child, _md.line_height, this.properties);
              }
          }
          if (_l == 11 && _ch == 'm') {
              if (name === 'marginright') {
                  return this.wzLoadToChildColl(child, _md.margin_right, this.properties);
              }
              else if (name === 'margin-left') {
                  return this.wzLoadToChildColl(child, _md.margin_left, this.properties);
              }
          }
          if (_l == 11 && _ch == 'p') {
              if (name === 'padding-top') {
                  return this.wzLoadToChildColl(child, _md.padding_top, this.properties);
              }
              else if (name === 'paddingleft') {
                  return this.wzLoadToChildColl(child, _md.padding_left, this.properties);
              }
              else if (name === 'pause-after') {
                  return this.wzLoadToChildColl(child, _md.pause_after, this.properties);
              }
              else if (name === 'pausebefore') {
                  return this.wzLoadToChildColl(child, _md.pause_before, this.properties);
              }
              else if (name === 'perspective') {
                  return this.wzLoadToChildColl(child, _md.perspective, this.properties);
              }
              else if (name === 'pitch-range') {
                  return this.wzLoadToChildColl(child, _md.pitch_range, this.properties);
              }
              else if (name === 'play-during') {
                  return this.wzLoadToChildColl(child, _md.play_during, this.properties);
              }
          }
          if (_l == 11 && _ch == 's') {
              if (name === 'speakheader') {
                  return this.wzLoadToChildColl(child, _md.speak_header, this.properties);
              }
              else if (name === 'speech-rate') {
                  return this.wzLoadToChildColl(child, _md.speech_rate, this.properties);
              }
          }
          if (_l == 11 && _ch == 't') {
              if (name === 'tablelayout') {
                  return this.wzLoadToChildColl(child, _md.table_layout, this.properties);
              }
              else if (name === 'target-name') {
                  return this.wzLoadToChildColl(child, _md.target_name, this.properties);
              }
              else if (name === 'text-indent') {
                  return this.wzLoadToChildColl(child, _md.text_indent, this.properties);
              }
              else if (name === 'text-shadow') {
                  return this.wzLoadToChildColl(child, _md.text_shadow, this.properties);
              }
              else if (name === 'touchaction') {
                  return this.wzLoadToChildColl(child, _md.touch_action, this.properties);
              }
          }
          if (_l == 11 && _ch == 'u') {
              if (name === 'unicodebidi') {
                  return this.wzLoadToChildColl(child, _md.unicode_bidi, this.properties);
              }
              else if (name === 'user-select') {
                  return this.wzLoadToChildColl(child, _md.user_select, this.properties);
              }
          }
          if (_l == 11 && _ch == 'v') {
              if (name === 'voicefamily') {
                  return this.wzLoadToChildColl(child, _md.voice_family, this.properties);
              }
          }
          if (_l == 11 && _ch == 'w') {
              if (name === 'white-space') {
                  return this.wzLoadToChildColl(child, _md.white_space, this.properties);
              }
              else if (name === 'will-change') {
                  return this.wzLoadToChildColl(child, _md.will_change, this.properties);
              }
              else if (name === 'wordspacing') {
                  return this.wzLoadToChildColl(child, _md.word_spacing, this.properties);
              }
          }
          if (_l == 12 && _ch == 'a') {
              if (name === 'aligncontent') {
                  return this.wzLoadToChildColl(child, _md.align_content, this.properties);
              }
          }
          if (_l == 12 && _ch == 'b') {
              if (name === 'border-color') {
                  return this.wzLoadToChildColl(child, _md.border_color, this.properties);
              }
              else if (name === 'border-style') {
                  return this.wzLoadToChildColl(child, _md.border_style, this.properties);
              }
              else if (name === 'border-right') {
                  return this.wzLoadToChildColl(child, _md.border_right, this.properties);
              }
              else if (name === 'borderbottom') {
                  return this.wzLoadToChildColl(child, _md.border_bottom, this.properties);
              }
              else if (name === 'border-width') {
                  return this.wzLoadToChildColl(child, _md.border_width, this.properties);
              }
              else if (name === 'borderradius') {
                  return this.wzLoadToChildColl(child, _md.border_radius, this.properties);
              }
              else if (name === 'border-image') {
                  return this.wzLoadToChildColl(child, _md.border_image, this.properties);
              }
              else if (name === 'break-before') {
                  return this.wzLoadToChildColl(child, _md.break_before, this.properties);
              }
              else if (name === 'break-inside') {
                  return this.wzLoadToChildColl(child, _md.break_inside, this.properties);
              }
          }
          if (_l == 12 && _ch == 'c') {
              if (name === 'caption-side') {
                  return this.wzLoadToChildColl(child, _md.caption_side, this.properties);
              }
              else if (name === 'column-count') {
                  return this.wzLoadToChildColl(child, _md.column_count, this.properties);
              }
              else if (name === 'column-width') {
                  return this.wzLoadToChildColl(child, _md.column_width, this.properties);
              }
              else if (name === 'counterreset') {
                  return this.wzLoadToChildColl(child, _md.counter_reset, this.properties);
              }
          }
          if (_l == 12 && _ch == 'f') {
              if (name === 'font-variant') {
                  return this.wzLoadToChildColl(child, _md.font_variant, this.properties);
              }
          }
          if (_l == 12 && _ch == 'g') {
              if (name === 'grid-row-gap') {
                  return this.wzLoadToChildColl(child, _md.grid_row_gap, this.properties);
              }
              else if (name === 'gridautorows') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_rows, this.properties);
              }
              else if (name === 'gridautoflow') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_flow, this.properties);
              }
              else if (name === 'gridrowstart') {
                  return this.wzLoadToChildColl(child, _md.grid_row_start, this.properties);
              }
              else if (name === 'grid-row-end') {
                  return this.wzLoadToChildColl(child, _md.grid_row_end, this.properties);
              }
          }
          if (_l == 12 && _ch == 'j') {
              if (name === 'justifyitems') {
                  return this.wzLoadToChildColl(child, _md.justify_items, this.properties);
              }
              else if (name === 'justify-self') {
                  return this.wzLoadToChildColl(child, _md.justify_self, this.properties);
              }
          }
          if (_l == 12 && _ch == 'm') {
              if (name === 'margin-right') {
                  return this.wzLoadToChildColl(child, _md.margin_right, this.properties);
              }
              else if (name === 'marginbottom') {
                  return this.wzLoadToChildColl(child, _md.margin_bottom, this.properties);
              }
              else if (name === 'mixblendmode') {
                  return this.wzLoadToChildColl(child, _md.mix_blend_mode, this.properties);
              }
          }
          if (_l == 12 && _ch == 'o') {
              if (name === 'outlinecolor') {
                  return this.wzLoadToChildColl(child, _md.outline_color, this.properties);
              }
              else if (name === 'outlinestyle') {
                  return this.wzLoadToChildColl(child, _md.outline_style, this.properties);
              }
              else if (name === 'outlinewidth') {
                  return this.wzLoadToChildColl(child, _md.outline_width, this.properties);
              }
              else if (name === 'overflowwrap') {
                  return this.wzLoadToChildColl(child, _md.overflow_wrap, this.properties);
              }
          }
          if (_l == 12 && _ch == 'p') {
              if (name === 'paddingright') {
                  return this.wzLoadToChildColl(child, _md.padding_right, this.properties);
              }
              else if (name === 'padding-left') {
                  return this.wzLoadToChildColl(child, _md.padding_left, this.properties);
              }
              else if (name === 'pause-before') {
                  return this.wzLoadToChildColl(child, _md.pause_before, this.properties);
              }
          }
          if (_l == 12 && _ch == 's') {
              if (name === 'speak-header') {
                  return this.wzLoadToChildColl(child, _md.speak_header, this.properties);
              }
              else if (name === 'speaknumeral') {
                  return this.wzLoadToChildColl(child, _md.speak_numeral, this.properties);
              }
          }
          if (_l == 12 && _ch == 't') {
              if (name === 'table-layout') {
                  return this.wzLoadToChildColl(child, _md.table_layout, this.properties);
              }
              else if (name === 'textoverflow') {
                  return this.wzLoadToChildColl(child, _md.text_overflow, this.properties);
              }
              else if (name === 'touch-action') {
                  return this.wzLoadToChildColl(child, _md.touch_action, this.properties);
              }
          }
          if (_l == 12 && _ch == 'u') {
              if (name === 'unicode-bidi') {
                  return this.wzLoadToChildColl(child, _md.unicode_bidi, this.properties);
              }
          }
          if (_l == 12 && _ch == 'v') {
              if (name === 'voice-family') {
                  return this.wzLoadToChildColl(child, _md.voice_family, this.properties);
              }
          }
          if (_l == 12 && _ch == 'w') {
              if (name === 'word-spacing') {
                  return this.wzLoadToChildColl(child, _md.word_spacing, this.properties);
              }
          }
          if (_l == 13 && _ch == 'a') {
              if (name === 'align-content') {
                  return this.wzLoadToChildColl(child, _md.align_content, this.properties);
              }
              else if (name === 'animationname') {
                  return this.wzLoadToChildColl(child, _md.animation_name, this.properties);
              }
          }
          if (_l == 13 && _ch == 'b') {
              if (name === 'borderspacing') {
                  return this.wzLoadToChildColl(child, _md.border_spacing, this.properties);
              }
              else if (name === 'border-bottom') {
                  return this.wzLoadToChildColl(child, _md.border_bottom, this.properties);
              }
              else if (name === 'border-radius') {
                  return this.wzLoadToChildColl(child, _md.border_radius, this.properties);
              }
          }
          if (_l == 13 && _ch == 'c') {
              if (name === 'counter-reset') {
                  return this.wzLoadToChildColl(child, _md.counter_reset, this.properties);
              }
          }
          if (_l == 13 && _ch == 'f') {
              if (name === 'flexdirection') {
                  return this.wzLoadToChildColl(child, _md.flex_direction, this.properties);
              }
          }
          if (_l == 13 && _ch == 'g') {
              if (name === 'gridcolumngap') {
                  return this.wzLoadToChildColl(child, _md.grid_column_gap, this.properties);
              }
              else if (name === 'gridcolumnend') {
                  return this.wzLoadToChildColl(child, _md.grid_column_end, this.properties);
              }
          }
          if (_l == 13 && _ch == 'j') {
              if (name === 'justify-items') {
                  return this.wzLoadToChildColl(child, _md.justify_items, this.properties);
              }
          }
          if (_l == 13 && _ch == 'l') {
              if (name === 'letterspacing') {
                  return this.wzLoadToChildColl(child, _md.letter_spacing, this.properties);
              }
              else if (name === 'liststyletype') {
                  return this.wzLoadToChildColl(child, _md.list_style_type, this.properties);
              }
          }
          if (_l == 13 && _ch == 'm') {
              if (name === 'margin-bottom') {
                  return this.wzLoadToChildColl(child, _md.margin_bottom, this.properties);
              }
          }
          if (_l == 13 && _ch == 'o') {
              if (name === 'outline-color') {
                  return this.wzLoadToChildColl(child, _md.outline_color, this.properties);
              }
              else if (name === 'outline-style') {
                  return this.wzLoadToChildColl(child, _md.outline_style, this.properties);
              }
              else if (name === 'outline-width') {
                  return this.wzLoadToChildColl(child, _md.outline_width, this.properties);
              }
              else if (name === 'outlineoffset') {
                  return this.wzLoadToChildColl(child, _md.outline_offset, this.properties);
              }
              else if (name === 'overflow-wrap') {
                  return this.wzLoadToChildColl(child, _md.overflow_wrap, this.properties);
              }
          }
          if (_l == 13 && _ch == 'p') {
              if (name === 'padding-right') {
                  return this.wzLoadToChildColl(child, _md.padding_right, this.properties);
              }
              else if (name === 'paddingbottom') {
                  return this.wzLoadToChildColl(child, _md.padding_bottom, this.properties);
              }
              else if (name === 'pointerevents') {
                  return this.wzLoadToChildColl(child, _md.pointer_events, this.properties);
              }
          }
          if (_l == 13 && _ch == 's') {
              if (name === 'speak-numeral') {
                  return this.wzLoadToChildColl(child, _md.speak_numeral, this.properties);
              }
          }
          if (_l == 13 && _ch == 't') {
              if (name === 'textalignlast') {
                  return this.wzLoadToChildColl(child, _md.text_align_last, this.properties);
              }
              else if (name === 'text-overflow') {
                  return this.wzLoadToChildColl(child, _md.text_overflow, this.properties);
              }
              else if (name === 'textrendering') {
                  return this.wzLoadToChildColl(child, _md.text_rendering, this.properties);
              }
              else if (name === 'texttransform') {
                  return this.wzLoadToChildColl(child, _md.text_transform, this.properties);
              }
          }
          if (_l == 13 && _ch == 'v') {
              if (name === 'verticalalign') {
                  return this.wzLoadToChildColl(child, _md.vertical_align, this.properties);
              }
          }
          if (_l == 14 && _ch == 'a') {
              if (name === 'animationdelay') {
                  return this.wzLoadToChildColl(child, _md.animation_delay, this.properties);
              }
              else if (name === 'animation-name') {
                  return this.wzLoadToChildColl(child, _md.animation_name, this.properties);
              }
          }
          if (_l == 14 && _ch == 'b') {
              if (name === 'backgroundclip') {
                  return this.wzLoadToChildColl(child, _md.background_clip, this.properties);
              }
              else if (name === 'backgroundsize') {
                  return this.wzLoadToChildColl(child, _md.background_size, this.properties);
              }
              else if (name === 'bordercollapse') {
                  return this.wzLoadToChildColl(child, _md.border_collapse, this.properties);
              }
              else if (name === 'border-spacing') {
                  return this.wzLoadToChildColl(child, _md.border_spacing, this.properties);
              }
              else if (name === 'bordertopcolor') {
                  return this.wzLoadToChildColl(child, _md.border_top_color, this.properties);
              }
              else if (name === 'bordertopstyle') {
                  return this.wzLoadToChildColl(child, _md.border_top_style, this.properties);
              }
              else if (name === 'bordertopwidth') {
                  return this.wzLoadToChildColl(child, _md.border_top_width, this.properties);
              }
          }
          if (_l == 14 && _ch == 'f') {
              if (name === 'flex-direction') {
                  return this.wzLoadToChildColl(child, _md.flex_direction, this.properties);
              }
          }
          if (_l == 14 && _ch == 'g') {
              if (name === 'grid-auto-rows') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_rows, this.properties);
              }
              else if (name === 'grid-auto-flow') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_flow, this.properties);
              }
              else if (name === 'grid-row-start') {
                  return this.wzLoadToChildColl(child, _md.grid_row_start, this.properties);
              }
          }
          if (_l == 14 && _ch == 'j') {
              if (name === 'justifycontent') {
                  return this.wzLoadToChildColl(child, _md.justify_content, this.properties);
              }
          }
          if (_l == 14 && _ch == 'l') {
              if (name === 'letter-spacing') {
                  return this.wzLoadToChildColl(child, _md.letter_spacing, this.properties);
              }
              else if (name === 'liststyleimage') {
                  return this.wzLoadToChildColl(child, _md.list_style_image, this.properties);
              }
          }
          if (_l == 14 && _ch == 'm') {
              if (name === 'mix-blend-mode') {
                  return this.wzLoadToChildColl(child, _md.mix_blend_mode, this.properties);
              }
          }
          if (_l == 14 && _ch == 'o') {
              if (name === 'outline-offset') {
                  return this.wzLoadToChildColl(child, _md.outline_offset, this.properties);
              }
          }
          if (_l == 14 && _ch == 'p') {
              if (name === 'padding-bottom') {
                  return this.wzLoadToChildColl(child, _md.padding_bottom, this.properties);
              }
              else if (name === 'pagebreakafter') {
                  return this.wzLoadToChildColl(child, _md.page_break_after, this.properties);
              }
              else if (name === 'pointer-events') {
                  return this.wzLoadToChildColl(child, _md.pointer_events, this.properties);
              }
          }
          if (_l == 14 && _ch == 't') {
              if (name === 'targetposition') {
                  return this.wzLoadToChildColl(child, _md.target_position, this.properties);
              }
              else if (name === 'textdecoration') {
                  return this.wzLoadToChildColl(child, _md.text_decoration, this.properties);
              }
              else if (name === 'text-rendering') {
                  return this.wzLoadToChildColl(child, _md.text_rendering, this.properties);
              }
              else if (name === 'text-transform') {
                  return this.wzLoadToChildColl(child, _md.text_transform, this.properties);
              }
              else if (name === 'transformstyle') {
                  return this.wzLoadToChildColl(child, _md.transform_style, this.properties);
              }
          }
          if (_l == 14 && _ch == 'v') {
              if (name === 'vertical-align') {
                  return this.wzLoadToChildColl(child, _md.vertical_align, this.properties);
              }
          }
          if (_l == 15 && _ch == 'a') {
              if (name === 'animation-delay') {
                  return this.wzLoadToChildColl(child, _md.animation_delay, this.properties);
              }
          }
          if (_l == 15 && _ch == 'b') {
              if (name === 'backgroundcolor') {
                  return this.wzLoadToChildColl(child, _md.background_color, this.properties);
              }
              else if (name === 'backgroundimage') {
                  return this.wzLoadToChildColl(child, _md.background_image, this.properties);
              }
              else if (name === 'background-clip') {
                  return this.wzLoadToChildColl(child, _md.background_clip, this.properties);
              }
              else if (name === 'background-size') {
                  return this.wzLoadToChildColl(child, _md.background_size, this.properties);
              }
              else if (name === 'border-collapse') {
                  return this.wzLoadToChildColl(child, _md.border_collapse, this.properties);
              }
              else if (name === 'borderleftcolor') {
                  return this.wzLoadToChildColl(child, _md.border_left_color, this.properties);
              }
              else if (name === 'borderleftstyle') {
                  return this.wzLoadToChildColl(child, _md.border_left_style, this.properties);
              }
              else if (name === 'borderleftwidth') {
                  return this.wzLoadToChildColl(child, _md.border_left_width, this.properties);
              }
          }
          if (_l == 15 && _ch == 'c') {
              if (name === 'columnrulecolor') {
                  return this.wzLoadToChildColl(child, _md.column_rule_color, this.properties);
              }
              else if (name === 'columnrulestyle') {
                  return this.wzLoadToChildColl(child, _md.column_rule_style, this.properties);
              }
              else if (name === 'columnrulewidth') {
                  return this.wzLoadToChildColl(child, _md.column_rule_width, this.properties);
              }
          }
          if (_l == 15 && _ch == 'g') {
              if (name === 'grid-column-gap') {
                  return this.wzLoadToChildColl(child, _md.grid_column_gap, this.properties);
              }
              else if (name === 'gridautocolumns') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_columns, this.properties);
              }
              else if (name === 'gridcolumnstart') {
                  return this.wzLoadToChildColl(child, _md.grid_column_start, this.properties);
              }
              else if (name === 'grid-column-end') {
                  return this.wzLoadToChildColl(child, _md.grid_column_end, this.properties);
              }
          }
          if (_l == 15 && _ch == 'j') {
              if (name === 'justify-content') {
                  return this.wzLoadToChildColl(child, _md.justify_content, this.properties);
              }
          }
          if (_l == 15 && _ch == 'l') {
              if (name === 'list-style-type') {
                  return this.wzLoadToChildColl(child, _md.list_style_type, this.properties);
              }
          }
          if (_l == 15 && _ch == 'p') {
              if (name === 'pagebreakbefore') {
                  return this.wzLoadToChildColl(child, _md.page_break_before, this.properties);
              }
              else if (name === 'pagebreakinside') {
                  return this.wzLoadToChildColl(child, _md.page_break_inside, this.properties);
              }
          }
          if (_l == 15 && _ch == 't') {
              if (name === 'target-position') {
                  return this.wzLoadToChildColl(child, _md.target_position, this.properties);
              }
              else if (name === 'text-align-last') {
                  return this.wzLoadToChildColl(child, _md.text_align_last, this.properties);
              }
              else if (name === 'text-decoration') {
                  return this.wzLoadToChildColl(child, _md.text_decoration, this.properties);
              }
              else if (name === 'transformorigin') {
                  return this.wzLoadToChildColl(child, _md.transform_origin, this.properties);
              }
              else if (name === 'transform-style') {
                  return this.wzLoadToChildColl(child, _md.transform_style, this.properties);
              }
              else if (name === 'transitiondelay') {
                  return this.wzLoadToChildColl(child, _md.transition_delay, this.properties);
              }
          }
          if (_l == 16 && _ch == 'b') {
              if (name === 'background-color') {
                  return this.wzLoadToChildColl(child, _md.background_color, this.properties);
              }
              else if (name === 'background-image') {
                  return this.wzLoadToChildColl(child, _md.background_image, this.properties);
              }
              else if (name === 'backgroundrepeat') {
                  return this.wzLoadToChildColl(child, _md.background_repeat, this.properties);
              }
              else if (name === 'backgroundorigin') {
                  return this.wzLoadToChildColl(child, _md.background_origin, this.properties);
              }
              else if (name === 'border-top-color') {
                  return this.wzLoadToChildColl(child, _md.border_top_color, this.properties);
              }
              else if (name === 'borderrightcolor') {
                  return this.wzLoadToChildColl(child, _md.border_right_color, this.properties);
              }
              else if (name === 'border-top-style') {
                  return this.wzLoadToChildColl(child, _md.border_top_style, this.properties);
              }
              else if (name === 'borderrightstyle') {
                  return this.wzLoadToChildColl(child, _md.border_right_style, this.properties);
              }
              else if (name === 'border-top-width') {
                  return this.wzLoadToChildColl(child, _md.border_top_width, this.properties);
              }
              else if (name === 'borderrightwidth') {
                  return this.wzLoadToChildColl(child, _md.border_right_width, this.properties);
              }
              else if (name === 'borderimageslice') {
                  return this.wzLoadToChildColl(child, _md.border_image_slice, this.properties);
              }
              else if (name === 'borderimagewidth') {
                  return this.wzLoadToChildColl(child, _md.border_image_width, this.properties);
              }
          }
          if (_l == 16 && _ch == 'c') {
              if (name === 'counterincrement') {
                  return this.wzLoadToChildColl(child, _md.counter_increment, this.properties);
              }
          }
          if (_l == 16 && _ch == 'g') {
              if (name === 'gridtemplaterows') {
                  return this.wzLoadToChildColl(child, _md.grid_template_rows, this.properties);
              }
          }
          if (_l == 16 && _ch == 'l') {
              if (name === 'list-style-image') {
                  return this.wzLoadToChildColl(child, _md.list_style_image, this.properties);
              }
          }
          if (_l == 16 && _ch == 'p') {
              if (name === 'page-break-after') {
                  return this.wzLoadToChildColl(child, _md.page_break_after, this.properties);
              }
          }
          if (_l == 16 && _ch == 's') {
              if (name === 'speakpunctuation') {
                  return this.wzLoadToChildColl(child, _md.speak_punctuation, this.properties);
              }
          }
          if (_l == 16 && _ch == 't') {
              if (name === 'transform-origin') {
                  return this.wzLoadToChildColl(child, _md.transform_origin, this.properties);
              }
              else if (name === 'transition-delay') {
                  return this.wzLoadToChildColl(child, _md.transition_delay, this.properties);
              }
          }
          if (_l == 17 && _ch == 'a') {
              if (name === 'animationduration') {
                  return this.wzLoadToChildColl(child, _md.animation_duration, this.properties);
              }
              else if (name === 'animationfillmode') {
                  return this.wzLoadToChildColl(child, _md.animation_fill_mode, this.properties);
              }
          }
          if (_l == 17 && _ch == 'b') {
              if (name === 'background-repeat') {
                  return this.wzLoadToChildColl(child, _md.background_repeat, this.properties);
              }
              else if (name === 'background-origin') {
                  return this.wzLoadToChildColl(child, _md.background_origin, this.properties);
              }
              else if (name === 'borderbottomcolor') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_color, this.properties);
              }
              else if (name === 'border-left-color') {
                  return this.wzLoadToChildColl(child, _md.border_left_color, this.properties);
              }
              else if (name === 'borderbottomstyle') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_style, this.properties);
              }
              else if (name === 'border-left-style') {
                  return this.wzLoadToChildColl(child, _md.border_left_style, this.properties);
              }
              else if (name === 'borderbottomwidth') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_width, this.properties);
              }
              else if (name === 'border-left-width') {
                  return this.wzLoadToChildColl(child, _md.border_left_width, this.properties);
              }
              else if (name === 'borderimageoutset') {
                  return this.wzLoadToChildColl(child, _md.border_image_outset, this.properties);
              }
              else if (name === 'borderimagerepeat') {
                  return this.wzLoadToChildColl(child, _md.border_image_repeat, this.properties);
              }
              else if (name === 'borderimagesource') {
                  return this.wzLoadToChildColl(child, _md.border_image_source, this.properties);
              }
          }
          if (_l == 17 && _ch == 'c') {
              if (name === 'column-rule-color') {
                  return this.wzLoadToChildColl(child, _md.column_rule_color, this.properties);
              }
              else if (name === 'column-rule-style') {
                  return this.wzLoadToChildColl(child, _md.column_rule_style, this.properties);
              }
              else if (name === 'column-rule-width') {
                  return this.wzLoadToChildColl(child, _md.column_rule_width, this.properties);
              }
              else if (name === 'counter-increment') {
                  return this.wzLoadToChildColl(child, _md.counter_increment, this.properties);
              }
          }
          if (_l == 17 && _ch == 'g') {
              if (name === 'gridtemplateareas') {
                  return this.wzLoadToChildColl(child, _md.gridTemplateAreas, this.properties);
              }
              else if (name === 'grid-auto-columns') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_columns, this.properties);
              }
              else if (name === 'grid-column-start') {
                  return this.wzLoadToChildColl(child, _md.grid_column_start, this.properties);
              }
          }
          if (_l == 17 && _ch == 'l') {
              if (name === 'liststyleposition') {
                  return this.wzLoadToChildColl(child, _md.list_style_position, this.properties);
              }
          }
          if (_l == 17 && _ch == 'p') {
              if (name === 'page-break-before') {
                  return this.wzLoadToChildColl(child, _md.page_break_before, this.properties);
              }
              else if (name === 'page-break-inside') {
                  return this.wzLoadToChildColl(child, _md.page_break_inside, this.properties);
              }
              else if (name === 'perspectiveorigin') {
                  return this.wzLoadToChildColl(child, _md.perspective_origin, this.properties);
              }
          }
          if (_l == 17 && _ch == 's') {
              if (name === 'speak-punctuation') {
                  return this.wzLoadToChildColl(child, _md.speak_punctuation, this.properties);
              }
          }
          if (_l == 18 && _ch == 'a') {
              if (name === 'animationdirection') {
                  return this.wzLoadToChildColl(child, _md.animation_direction, this.properties);
              }
              else if (name === 'animation-duration') {
                  return this.wzLoadToChildColl(child, _md.animation_duration, this.properties);
              }
              else if (name === 'animationplaystate') {
                  return this.wzLoadToChildColl(child, _md.animation_play_state, this.properties);
              }
          }
          if (_l == 18 && _ch == 'b') {
              if (name === 'backgroundposition') {
                  return this.wzLoadToChildColl(child, _md.background_position, this.properties);
              }
              else if (name === 'backfacevisibility') {
                  return this.wzLoadToChildColl(child, _md.backface_visibility, this.properties);
              }
              else if (name === 'border-right-color') {
                  return this.wzLoadToChildColl(child, _md.border_right_color, this.properties);
              }
              else if (name === 'border-right-style') {
                  return this.wzLoadToChildColl(child, _md.border_right_style, this.properties);
              }
              else if (name === 'border-right-width') {
                  return this.wzLoadToChildColl(child, _md.border_right_width, this.properties);
              }
              else if (name === 'border-image-slice') {
                  return this.wzLoadToChildColl(child, _md.border_image_slice, this.properties);
              }
              else if (name === 'border-image-width') {
                  return this.wzLoadToChildColl(child, _md.border_image_width, this.properties);
              }
              else if (name === 'boxdecorationbreak') {
                  return this.wzLoadToChildColl(child, _md.box_decoration_break, this.properties);
              }
          }
          if (_l == 18 && _ch == 'g') {
              if (name === 'grid-template-rows') {
                  return this.wzLoadToChildColl(child, _md.grid_template_rows, this.properties);
              }
          }
          if (_l == 18 && _ch == 'h') {
              if (name === 'hangingpunctuation') {
                  return this.wzLoadToChildColl(child, _md.hanging_punctuation, this.properties);
              }
          }
          if (_l == 18 && _ch == 'p') {
              if (name === 'perspective-origin') {
                  return this.wzLoadToChildColl(child, _md.perspective_origin, this.properties);
              }
          }
          if (_l == 18 && _ch == 't') {
              if (name === 'textdecorationline') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_line, this.properties);
              }
              else if (name === 'textdecorationskip') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_skip, this.properties);
              }
              else if (name === 'transitionduration') {
                  return this.wzLoadToChildColl(child, _md.transition_duration, this.properties);
              }
              else if (name === 'transitionproperty') {
                  return this.wzLoadToChildColl(child, _md.transition_property, this.properties);
              }
          }
          if (_l == 19 && _ch == 'a') {
              if (name === 'animation-direction') {
                  return this.wzLoadToChildColl(child, _md.animation_direction, this.properties);
              }
              else if (name === 'animation-fill-mode') {
                  return this.wzLoadToChildColl(child, _md.animation_fill_mode, this.properties);
              }
          }
          if (_l == 19 && _ch == 'b') {
              if (name === 'background-position') {
                  return this.wzLoadToChildColl(child, _md.background_position, this.properties);
              }
              else if (name === 'backgroundblendmode') {
                  return this.wzLoadToChildColl(child, _md.background_blend_mode, this.properties);
              }
              else if (name === 'backface-visibility') {
                  return this.wzLoadToChildColl(child, _md.backface_visibility, this.properties);
              }
              else if (name === 'border-bottom-color') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_color, this.properties);
              }
              else if (name === 'border-bottom-style') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_style, this.properties);
              }
              else if (name === 'border-bottom-width') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_width, this.properties);
              }
              else if (name === 'bordertopleftradius') {
                  return this.wzLoadToChildColl(child, _md.border_top_left_radius, this.properties);
              }
              else if (name === 'border-image-outset') {
                  return this.wzLoadToChildColl(child, _md.border_image_outset, this.properties);
              }
              else if (name === 'border-image-repeat') {
                  return this.wzLoadToChildColl(child, _md.border_image_repeat, this.properties);
              }
              else if (name === 'border-image-source') {
                  return this.wzLoadToChildColl(child, _md.border_image_source, this.properties);
              }
          }
          if (_l == 19 && _ch == 'g') {
              if (name === 'gridtemplatecolumns') {
                  return this.wzLoadToChildColl(child, _md.grid_template_columns, this.properties);
              }
              else if (name === 'grid-template-areas') {
                  return this.wzLoadToChildColl(child, _md.gridTemplateAreas, this.properties);
              }
          }
          if (_l == 19 && _ch == 'h') {
              if (name === 'hanging-punctuation') {
                  return this.wzLoadToChildColl(child, _md.hanging_punctuation, this.properties);
              }
          }
          if (_l == 19 && _ch == 'l') {
              if (name === 'list-style-position') {
                  return this.wzLoadToChildColl(child, _md.list_style_position, this.properties);
              }
          }
          if (_l == 19 && _ch == 't') {
              if (name === 'textdecorationstyle') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_style, this.properties);
              }
              else if (name === 'textdecorationcolor') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_color, this.properties);
              }
              else if (name === 'transition-duration') {
                  return this.wzLoadToChildColl(child, _md.transition_duration, this.properties);
              }
              else if (name === 'transition-property') {
                  return this.wzLoadToChildColl(child, _md.transition_property, this.properties);
              }
          }
          if (_l == 20 && _ch == 'a') {
              if (name === 'animation-play-state') {
                  return this.wzLoadToChildColl(child, _md.animation_play_state, this.properties);
              }
          }
          if (_l == 20 && _ch == 'b') {
              if (name === 'backgroundattachment') {
                  return this.wzLoadToChildColl(child, _md.background_attachment, this.properties);
              }
              else if (name === 'bordertoprightradius') {
                  return this.wzLoadToChildColl(child, _md.border_top_right_radius, this.properties);
              }
              else if (name === 'box-decoration-break') {
                  return this.wzLoadToChildColl(child, _md.box_decoration_break, this.properties);
              }
          }
          if (_l == 20 && _ch == 't') {
              if (name === 'text-decoration-line') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_line, this.properties);
              }
              else if (name === 'text-decoration-skip') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_skip, this.properties);
              }
          }
          if (_l == 21 && _ch == 'b') {
              if (name === 'background-attachment') {
                  return this.wzLoadToChildColl(child, _md.background_attachment, this.properties);
              }
              else if (name === 'background-blend-mode') {
                  return this.wzLoadToChildColl(child, _md.background_blend_mode, this.properties);
              }
          }
          if (_l == 21 && _ch == 'g') {
              if (name === 'grid-template-columns') {
                  return this.wzLoadToChildColl(child, _md.grid_template_columns, this.properties);
              }
          }
          if (_l == 21 && _ch == 't') {
              if (name === 'text-decoration-style') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_style, this.properties);
              }
              else if (name === 'text-decoration-color') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_color, this.properties);
              }
              else if (name === 'textunderlineposition') {
                  return this.wzLoadToChildColl(child, _md.text_underline_position, this.properties);
              }
          }
          if (_l == 22 && _ch == 'b') {
              if (name === 'border-top-left-radius') {
                  return this.wzLoadToChildColl(child, _md.border_top_left_radius, this.properties);
              }
              else if (name === 'borderbottomleftradius') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_left_radius, this.properties);
              }
          }
          if (_l == 23 && _ch == 'a') {
              if (name === 'animationiterationcount') {
                  return this.wzLoadToChildColl(child, _md.animation_iteration_count, this.properties);
              }
              else if (name === 'animationtimingfunction') {
                  return this.wzLoadToChildColl(child, _md.animation_timing_function, this.properties);
              }
          }
          if (_l == 23 && _ch == 'b') {
              if (name === 'border-top-right-radius') {
                  return this.wzLoadToChildColl(child, _md.border_top_right_radius, this.properties);
              }
              else if (name === 'borderbottomrightradius') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_right_radius, this.properties);
              }
          }
          if (_l == 23 && _ch == 't') {
              if (name === 'text-underline-position') {
                  return this.wzLoadToChildColl(child, _md.text_underline_position, this.properties);
              }
          }
          if (_l == 24 && _ch == 't') {
              if (name === 'transitiontimingfunction') {
                  return this.wzLoadToChildColl(child, _md.transition_timing_function, this.properties);
              }
          }
          if (_l == 25 && _ch == 'a') {
              if (name === 'animation-iteration-count') {
                  return this.wzLoadToChildColl(child, _md.animation_iteration_count, this.properties);
              }
              else if (name === 'animation-timing-function') {
                  return this.wzLoadToChildColl(child, _md.animation_timing_function, this.properties);
              }
          }
          if (_l == 25 && _ch == 'b') {
              if (name === 'border-bottom-left-radius') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_left_radius, this.properties);
              }
          }
          if (_l == 26 && _ch == 'b') {
              if (name === 'border-bottom-right-radius') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_right_radius, this.properties);
              }
          }
          if (_l == 26 && _ch == 't') {
              if (name === 'transition-timing-function') {
                  return this.wzLoadToChildColl(child, _md.transition_timing_function, this.properties);
              }
          }
          ok = _md.comment.prototype.loadChild.call(this, child);
          return ok;
      }
      rule.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      rule.prototype.wzVerify = function(ctx) {
          var i, i_items=this.properties, i_len=this.properties.length, item;
          for (i=0; i<i_len; i++) {
              item = this.properties[i];
              item.wzVerify(ctx);
          }
          _md.comment.prototype.wzVerify.call(this, ctx);
      }
      rule.prototype.wzInitialize = function(ctx) {
          var i, i_items=this.properties, i_len=this.properties.length, item;
          for (i=0; i<i_len; i++) {
              item = this.properties[i];
              item.wzInitialize(ctx);
          }
          _md.comment.prototype.wzInitialize.call(this, ctx);
      }
      rule.prototype.getProperties = function() {
          var retval = [];
          var i, i_items=this.properties, i_len=this.properties.length, prop;
          for (i=0; i<i_len; i++) {
              prop = this.properties[i];
              if (prop.wzElement === 'property') {
                  var p = verify.parseNameValue(prop.wzName, prop);
                  if (prop.properties.length > 0) {
                      if (p.hasValue()) {
                          retval.push({ name: p.name(), value: p.value() });
                      }
                      var j, j_items=prop.properties, j_len=prop.properties.length, nestedprop;
                      for (j=0; j<j_len; j++) {
                          nestedprop = prop.properties[j];
                          var p_nested = lineParser.parseNameValueRaw(nestedprop.wzName, nestedprop);
                          retval.push({ name: p.name() + '-' + p_nested.name(), value: p_nested.value() });
                      }
                  }
                  else {
                      if (p.hasValue()) {
                          retval.push({ name: p.name(), value: p.value() });
                      }
                  }
              }
              else {
                  if (verify.isNotEmpty(prop.wzName)) {
                      retval.push({ name: prop.wzTag, value: prop.wzName });
                  }
              }
          }
          return retval;
      }
      return rule;
  })(comment);
  
  _md.rule = rule;
  /**
      element cueRule
       ittf
       style
       ::
       color papayawhip
       vtt
       STYLE
       ::cue {
       color: papayawhip;
       }
  */
  var cueRule = (function (rule) {
      _inherits(cueRule, rule);
      function cueRule(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(cueRule.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, cueRule);
          this.wzElement = "cueRule";
      }
      cueRule.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      cueRule.prototype.toJsonProperties = function(result) {
          _md.rule.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      cueRule.prototype.toJsonChildren = function(result) {
          _md.rule.prototype.toJsonChildren.call(this, result);
      }
      return cueRule;
  })(rule);
  
  _md.cueRule = cueRule;
  /**
      element property
       A generic rule property.
       You should find a proper schema element that extends this one for every valid css3 property.
       In any case this element is not abstract and can fit for missing properties.
       In this case must contain a name-value pair separated by a blank: name is
       the property name and value the property value.
       ittf
       . wrapper
       @ webkit-super-exotic quark
       css
       .wrapper {
       webkit-super-exotic: quark;
       }
  */
  var property = (function (vttBase) {
      _inherits(property, vttBase);
      function property(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(property.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, property);
          this.wzElement = "property";
          // relation property
          // Nested property
          this.properties = [];
      }
      property.prototype.addProperty = function(name, sourceLineInfo) {
          var retval = new _md.property(name, sourceLineInfo);
          retval.wzParent = this;
          this.properties.push(retval);
          return retval;
      }
      property.prototype.getProperty = function(name) {
          var found = null;
          this.properties.forEach(function(item) {
              found = found || (item.wzName === name ? item : null);
          });
          return found;
      }
      property.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      property.prototype.toJsonProperties = function(result) {
          _md.vttBase.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      property.prototype.toJsonChildren = function(result) {
          _md.vttBase.prototype.toJsonChildren.call(this, result);
          var items, item;
          items = [];
          var i, i_items=this.properties, i_len=this.properties.length, item;
          for (i=0; i<i_len; i++) {
              item = this.properties[i];
              items.push(item.toJson());
          }
          result['properties'] = items;
      }
      property.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 1 && _ch == '@') {
              if (name === '@') {
                  return this.wzLoadToChildColl(child, _md.property, this.properties);
              }
          }
          if (_l == 3 && _ch == 'c') {
              if (name === 'cue') {
                  return this.wzLoadToChildColl(child, _md.cue, this.properties);
              }
          }
          if (_l == 3 && _ch == 't') {
              if (name === 'top') {
                  return this.wzLoadToChildColl(child, _md.top, this.properties);
              }
          }
          if (_l == 4 && _ch == 'c') {
              if (name === 'clip') {
                  return this.wzLoadToChildColl(child, _md.clip, this.properties);
              }
          }
          if (_l == 4 && _ch == 'f') {
              if (name === 'flex') {
                  return this.wzLoadToChildColl(child, _md.flex, this.properties);
              }
              else if (name === 'fill') {
                  return this.wzLoadToChildColl(child, _md.fill, this.properties);
              }
              else if (name === 'font') {
                  return this.wzLoadToChildColl(child, _md.font, this.properties);
              }
          }
          if (_l == 4 && _ch == 'g') {
              if (name === 'grid') {
                  return this.wzLoadToChildColl(child, _md.grid, this.properties);
              }
          }
          if (_l == 4 && _ch == 'l') {
              if (name === 'left') {
                  return this.wzLoadToChildColl(child, _md.left, this.properties);
              }
          }
          if (_l == 4 && _ch == 'z') {
              if (name === 'zoom') {
                  return this.wzLoadToChildColl(child, _md.zoom, this.properties);
              }
          }
          if (_l == 5 && _ch == 'c') {
              if (name === 'clear') {
                  return this.wzLoadToChildColl(child, _md.clear, this.properties);
              }
              else if (name === 'color') {
                  return this.wzLoadToChildColl(child, _md.color, this.properties);
              }
          }
          if (_l == 5 && _ch == 'f') {
              if (name === 'float') {
                  return this.wzLoadToChildColl(child, _md.xfloat, this.properties);
              }
          }
          if (_l == 5 && _ch == 'n') {
              if (name === 'navup') {
                  return this.wzLoadToChildColl(child, _md.nav_up, this.properties);
              }
          }
          if (_l == 5 && _ch == 'o') {
              if (name === 'order') {
                  return this.wzLoadToChildColl(child, _md.order, this.properties);
              }
          }
          if (_l == 5 && _ch == 'p') {
              if (name === 'pause') {
                  return this.wzLoadToChildColl(child, _md.pause, this.properties);
              }
              else if (name === 'pitch') {
                  return this.wzLoadToChildColl(child, _md.pitch, this.properties);
              }
          }
          if (_l == 5 && _ch == 'r') {
              if (name === 'right') {
                  return this.wzLoadToChildColl(child, _md.right, this.properties);
              }
          }
          if (_l == 5 && _ch == 's') {
              if (name === 'speak') {
                  return this.wzLoadToChildColl(child, _md.speak, this.properties);
              }
          }
          if (_l == 5 && _ch == 'w') {
              if (name === 'width') {
                  return this.wzLoadToChildColl(child, _md.width, this.properties);
              }
          }
          if (_l == 6 && _ch == 'b') {
              if (name === 'border') {
                  return this.wzLoadToChildColl(child, _md.border, this.properties);
              }
              else if (name === 'bottom') {
                  return this.wzLoadToChildColl(child, _md.bottom, this.properties);
              }
          }
          if (_l == 6 && _ch == 'c') {
              if (name === 'cursor') {
                  return this.wzLoadToChildColl(child, _md.cursor, this.properties);
              }
          }
          if (_l == 6 && _ch == 'f') {
              if (name === 'filter') {
                  return this.wzLoadToChildColl(child, _md.filter, this.properties);
              }
          }
          if (_l == 6 && _ch == 'h') {
              if (name === 'height') {
                  return this.wzLoadToChildColl(child, _md.height, this.properties);
              }
          }
          if (_l == 6 && _ch == 'm') {
              if (name === 'margin') {
                  return this.wzLoadToChildColl(child, _md.margin, this.properties);
              }
          }
          if (_l == 6 && _ch == 'n') {
              if (name === 'nav-up') {
                  return this.wzLoadToChildColl(child, _md.nav_up, this.properties);
              }
          }
          if (_l == 6 && _ch == 'q') {
              if (name === 'quotes') {
                  return this.wzLoadToChildColl(child, _md.quotes, this.properties);
              }
          }
          if (_l == 6 && _ch == 'r') {
              if (name === 'resize') {
                  return this.wzLoadToChildColl(child, _md.resize, this.properties);
              }
          }
          if (_l == 6 && _ch == 's') {
              if (name === 'stress') {
                  return this.wzLoadToChildColl(child, _md.stress, this.properties);
              }
          }
          if (_l == 6 && _ch == 'v') {
              if (name === 'volume') {
                  return this.wzLoadToChildColl(child, _md.volume, this.properties);
              }
          }
          if (_l == 6 && _ch == 'w') {
              if (name === 'widows') {
                  return this.wzLoadToChildColl(child, _md.widows, this.properties);
              }
          }
          if (_l == 6 && _ch == 'z') {
              if (name === 'zindex') {
                  return this.wzLoadToChildColl(child, _md.z_index, this.properties);
              }
          }
          if (_l == 7 && _ch == 'a') {
              if (name === 'azimuth') {
                  return this.wzLoadToChildColl(child, _md.azimuth, this.properties);
              }
          }
          if (_l == 7 && _ch == 'c') {
              if (name === 'columns') {
                  return this.wzLoadToChildColl(child, _md.columns, this.properties);
              }
              else if (name === 'content') {
                  return this.wzLoadToChildColl(child, _md.content, this.properties);
              }
          }
          if (_l == 7 && _ch == 'd') {
              if (name === 'display') {
                  return this.wzLoadToChildColl(child, _md.display, this.properties);
              }
          }
          if (_l == 7 && _ch == 'g') {
              if (name === 'gridgap') {
                  return this.wzLoadToChildColl(child, _md.grid_gap, this.properties);
              }
              else if (name === 'gridrow') {
                  return this.wzLoadToChildColl(child, _md.grid_row, this.properties);
              }
          }
          if (_l == 7 && _ch == 'h') {
              if (name === 'hyphens') {
                  return this.wzLoadToChildColl(child, _md.hyphens, this.properties);
              }
          }
          if (_l == 7 && _ch == 'n') {
              if (name === 'navdown') {
                  return this.wzLoadToChildColl(child, _md.nav_down, this.properties);
              }
              else if (name === 'navleft') {
                  return this.wzLoadToChildColl(child, _md.nav_left, this.properties);
              }
          }
          if (_l == 7 && _ch == 'o') {
              if (name === 'opacity') {
                  return this.wzLoadToChildColl(child, _md.opacity, this.properties);
              }
              else if (name === 'orphans') {
                  return this.wzLoadToChildColl(child, _md.orphans, this.properties);
              }
              else if (name === 'outline') {
                  return this.wzLoadToChildColl(child, _md.outline, this.properties);
              }
          }
          if (_l == 7 && _ch == 'p') {
              if (name === 'padding') {
                  return this.wzLoadToChildColl(child, _md.padding, this.properties);
              }
          }
          if (_l == 7 && _ch == 't') {
              if (name === 'tabsize') {
                  return this.wzLoadToChildColl(child, _md.tab_size, this.properties);
              }
          }
          if (_l == 7 && _ch == 'z') {
              if (name === 'z-index') {
                  return this.wzLoadToChildColl(child, _md.z_index, this.properties);
              }
          }
          if (_l == 8 && _ch == 'c') {
              if (name === 'cueafter') {
                  return this.wzLoadToChildColl(child, _md.cue_after, this.properties);
              }
          }
          if (_l == 8 && _ch == 'f') {
              if (name === 'flexflow') {
                  return this.wzLoadToChildColl(child, _md.flex_flow, this.properties);
              }
              else if (name === 'flexgrow') {
                  return this.wzLoadToChildColl(child, _md.flex_grow, this.properties);
              }
              else if (name === 'flexwrap') {
                  return this.wzLoadToChildColl(child, _md.flex_wrap, this.properties);
              }
              else if (name === 'fontsize') {
                  return this.wzLoadToChildColl(child, _md.font_size, this.properties);
              }
          }
          if (_l == 8 && _ch == 'g') {
              if (name === 'grid-gap') {
                  return this.wzLoadToChildColl(child, _md.grid_gap, this.properties);
              }
              else if (name === 'grid-row') {
                  return this.wzLoadToChildColl(child, _md.grid_row, this.properties);
              }
              else if (name === 'gridarea') {
                  return this.wzLoadToChildColl(child, _md.grid_area, this.properties);
              }
          }
          if (_l == 8 && _ch == 'm') {
              if (name === 'maxwidth') {
                  return this.wzLoadToChildColl(child, _md.max_width, this.properties);
              }
              else if (name === 'minwidth') {
                  return this.wzLoadToChildColl(child, _md.min_width, this.properties);
              }
          }
          if (_l == 8 && _ch == 'n') {
              if (name === 'nav-down') {
                  return this.wzLoadToChildColl(child, _md.nav_down, this.properties);
              }
              else if (name === 'nav-left') {
                  return this.wzLoadToChildColl(child, _md.nav_left, this.properties);
              }
              else if (name === 'navright') {
                  return this.wzLoadToChildColl(child, _md.nav_right, this.properties);
              }
          }
          if (_l == 8 && _ch == 'o') {
              if (name === 'overflow') {
                  return this.wzLoadToChildColl(child, _md.overflow, this.properties);
              }
          }
          if (_l == 8 && _ch == 'p') {
              if (name === 'position') {
                  return this.wzLoadToChildColl(child, _md.position, this.properties);
              }
          }
          if (_l == 8 && _ch == 'r') {
              if (name === 'richness') {
                  return this.wzLoadToChildColl(child, _md.richness, this.properties);
              }
          }
          if (_l == 8 && _ch == 't') {
              if (name === 'tab-size') {
                  return this.wzLoadToChildColl(child, _md.tab_size, this.properties);
              }
          }
          if (_l == 8 && _ch == 'w') {
              if (name === 'wordwrap') {
                  return this.wzLoadToChildColl(child, _md.word_wrap, this.properties);
              }
          }
          if (_l == 9 && _ch == 'a') {
              if (name === 'alignself') {
                  return this.wzLoadToChildColl(child, _md.align_self, this.properties);
              }
              else if (name === 'animation') {
                  return this.wzLoadToChildColl(child, _md.animation, this.properties);
              }
          }
          if (_l == 9 && _ch == 'b') {
              if (name === 'bordertop') {
                  return this.wzLoadToChildColl(child, _md.border_top, this.properties);
              }
              else if (name === 'boxsizing') {
                  return this.wzLoadToChildColl(child, _md.box_sizing, this.properties);
              }
              else if (name === 'boxshadow') {
                  return this.wzLoadToChildColl(child, _md.box_shadow, this.properties);
              }
          }
          if (_l == 9 && _ch == 'c') {
              if (name === 'columngap') {
                  return this.wzLoadToChildColl(child, _md.column_gap, this.properties);
              }
              else if (name === 'cue-after') {
                  return this.wzLoadToChildColl(child, _md.cue_after, this.properties);
              }
              else if (name === 'cuebefore') {
                  return this.wzLoadToChildColl(child, _md.cue_before, this.properties);
              }
          }
          if (_l == 9 && _ch == 'd') {
              if (name === 'direction') {
                  return this.wzLoadToChildColl(child, _md.direction, this.properties);
              }
          }
          if (_l == 9 && _ch == 'e') {
              if (name === 'elevation') {
                  return this.wzLoadToChildColl(child, _md.elevation, this.properties);
              }
          }
          if (_l == 9 && _ch == 'f') {
              if (name === 'flexbasis') {
                  return this.wzLoadToChildColl(child, _md.flex_basis, this.properties);
              }
              else if (name === 'flex-flow') {
                  return this.wzLoadToChildColl(child, _md.flex_flow, this.properties);
              }
              else if (name === 'flex-grow') {
                  return this.wzLoadToChildColl(child, _md.flex_grow, this.properties);
              }
              else if (name === 'flex-wrap') {
                  return this.wzLoadToChildColl(child, _md.flex_wrap, this.properties);
              }
              else if (name === 'font-size') {
                  return this.wzLoadToChildColl(child, _md.font_size, this.properties);
              }
              else if (name === 'fontstyle') {
                  return this.wzLoadToChildColl(child, _md.font_style, this.properties);
              }
          }
          if (_l == 9 && _ch == 'g') {
              if (name === 'grid-area') {
                  return this.wzLoadToChildColl(child, _md.grid_area, this.properties);
              }
          }
          if (_l == 9 && _ch == 'i') {
              if (name === 'isolation') {
                  return this.wzLoadToChildColl(child, _md.isolation, this.properties);
              }
          }
          if (_l == 9 && _ch == 'l') {
              if (name === 'linebreak') {
                  return this.wzLoadToChildColl(child, _md.line_break, this.properties);
              }
              else if (name === 'liststyle') {
                  return this.wzLoadToChildColl(child, _md.list_style, this.properties);
              }
          }
          if (_l == 9 && _ch == 'm') {
              if (name === 'margintop') {
                  return this.wzLoadToChildColl(child, _md.margin_top, this.properties);
              }
              else if (name === 'maxheight') {
                  return this.wzLoadToChildColl(child, _md.max_height, this.properties);
              }
              else if (name === 'max-width') {
                  return this.wzLoadToChildColl(child, _md.max_width, this.properties);
              }
              else if (name === 'minheight') {
                  return this.wzLoadToChildColl(child, _md.min_height, this.properties);
              }
              else if (name === 'min-width') {
                  return this.wzLoadToChildColl(child, _md.min_width, this.properties);
              }
          }
          if (_l == 9 && _ch == 'n') {
              if (name === 'nav-right') {
                  return this.wzLoadToChildColl(child, _md.nav_right, this.properties);
              }
          }
          if (_l == 9 && _ch == 'o') {
              if (name === 'overflowx') {
                  return this.wzLoadToChildColl(child, _md.overflow_x, this.properties);
              }
              else if (name === 'overflowy') {
                  return this.wzLoadToChildColl(child, _md.overflow_y, this.properties);
              }
          }
          if (_l == 9 && _ch == 't') {
              if (name === 'targetnew') {
                  return this.wzLoadToChildColl(child, _md.target_new, this.properties);
              }
              else if (name === 'textalign') {
                  return this.wzLoadToChildColl(child, _md.text_align, this.properties);
              }
              else if (name === 'transform') {
                  return this.wzLoadToChildColl(child, _md.transform, this.properties);
              }
          }
          if (_l == 9 && _ch == 'w') {
              if (name === 'wordbreak') {
                  return this.wzLoadToChildColl(child, _md.word_break, this.properties);
              }
              else if (name === 'word-wrap') {
                  return this.wzLoadToChildColl(child, _md.word_wrap, this.properties);
              }
          }
          if (_l == 10 && _ch == 'a') {
              if (name === 'alignitems') {
                  return this.wzLoadToChildColl(child, _md.align_items, this.properties);
              }
              else if (name === 'align-self') {
                  return this.wzLoadToChildColl(child, _md.align_self, this.properties);
              }
              else if (name === 'appearance') {
                  return this.wzLoadToChildColl(child, _md.appearance, this.properties);
              }
          }
          if (_l == 10 && _ch == 'b') {
              if (name === 'background') {
                  return this.wzLoadToChildColl(child, _md.background, this.properties);
              }
              else if (name === 'border-top') {
                  return this.wzLoadToChildColl(child, _md.border_top, this.properties);
              }
              else if (name === 'borderleft') {
                  return this.wzLoadToChildColl(child, _md.border_left, this.properties);
              }
              else if (name === 'box-sizing') {
                  return this.wzLoadToChildColl(child, _md.box_sizing, this.properties);
              }
              else if (name === 'box-shadow') {
                  return this.wzLoadToChildColl(child, _md.box_shadow, this.properties);
              }
              else if (name === 'breakafter') {
                  return this.wzLoadToChildColl(child, _md.break_after, this.properties);
              }
          }
          if (_l == 10 && _ch == 'c') {
              if (name === 'columnfill') {
                  return this.wzLoadToChildColl(child, _md.column_fill, this.properties);
              }
              else if (name === 'column-gap') {
                  return this.wzLoadToChildColl(child, _md.column_gap, this.properties);
              }
              else if (name === 'columnrule') {
                  return this.wzLoadToChildColl(child, _md.column_rule, this.properties);
              }
              else if (name === 'columnspan') {
                  return this.wzLoadToChildColl(child, _md.column_span, this.properties);
              }
              else if (name === 'cue-before') {
                  return this.wzLoadToChildColl(child, _md.cue_before, this.properties);
              }
          }
          if (_l == 10 && _ch == 'e') {
              if (name === 'emptycells') {
                  return this.wzLoadToChildColl(child, _md.empty_cells, this.properties);
              }
          }
          if (_l == 10 && _ch == 'f') {
              if (name === 'flex-basis') {
                  return this.wzLoadToChildColl(child, _md.flex_basis, this.properties);
              }
              else if (name === 'flexshrink') {
                  return this.wzLoadToChildColl(child, _md.flex_shrink, this.properties);
              }
              else if (name === 'fontfamily') {
                  return this.wzLoadToChildColl(child, _md.font_family, this.properties);
              }
              else if (name === 'font-style') {
                  return this.wzLoadToChildColl(child, _md.font_style, this.properties);
              }
              else if (name === 'fontweight') {
                  return this.wzLoadToChildColl(child, _md.font_weight, this.properties);
              }
          }
          if (_l == 10 && _ch == 'g') {
              if (name === 'gridrowgap') {
                  return this.wzLoadToChildColl(child, _md.grid_row_gap, this.properties);
              }
              else if (name === 'gridrowend') {
                  return this.wzLoadToChildColl(child, _md.grid_row_end, this.properties);
              }
              else if (name === 'gridcolumn') {
                  return this.wzLoadToChildColl(child, _md.grid_column, this.properties);
              }
          }
          if (_l == 10 && _ch == 'l') {
              if (name === 'line-break') {
                  return this.wzLoadToChildColl(child, _md.line_break, this.properties);
              }
              else if (name === 'lineheight') {
                  return this.wzLoadToChildColl(child, _md.line_height, this.properties);
              }
              else if (name === 'list-style') {
                  return this.wzLoadToChildColl(child, _md.list_style, this.properties);
              }
          }
          if (_l == 10 && _ch == 'm') {
              if (name === 'margin-top') {
                  return this.wzLoadToChildColl(child, _md.margin_top, this.properties);
              }
              else if (name === 'marginleft') {
                  return this.wzLoadToChildColl(child, _md.margin_left, this.properties);
              }
              else if (name === 'max-height') {
                  return this.wzLoadToChildColl(child, _md.max_height, this.properties);
              }
              else if (name === 'min-height') {
                  return this.wzLoadToChildColl(child, _md.min_height, this.properties);
              }
          }
          if (_l == 10 && _ch == 'o') {
              if (name === 'overflow-x') {
                  return this.wzLoadToChildColl(child, _md.overflow_x, this.properties);
              }
              else if (name === 'overflow-y') {
                  return this.wzLoadToChildColl(child, _md.overflow_y, this.properties);
              }
          }
          if (_l == 10 && _ch == 'p') {
              if (name === 'paddingtop') {
                  return this.wzLoadToChildColl(child, _md.padding_top, this.properties);
              }
              else if (name === 'pauseafter') {
                  return this.wzLoadToChildColl(child, _md.pause_after, this.properties);
              }
              else if (name === 'pitchrange') {
                  return this.wzLoadToChildColl(child, _md.pitch_range, this.properties);
              }
              else if (name === 'playduring') {
                  return this.wzLoadToChildColl(child, _md.play_during, this.properties);
              }
          }
          if (_l == 10 && _ch == 's') {
              if (name === 'speechrate') {
                  return this.wzLoadToChildColl(child, _md.speech_rate, this.properties);
              }
          }
          if (_l == 10 && _ch == 't') {
              if (name === 'targetname') {
                  return this.wzLoadToChildColl(child, _md.target_name, this.properties);
              }
              else if (name === 'target-new') {
                  return this.wzLoadToChildColl(child, _md.target_new, this.properties);
              }
              else if (name === 'text-align') {
                  return this.wzLoadToChildColl(child, _md.text_align, this.properties);
              }
              else if (name === 'textindent') {
                  return this.wzLoadToChildColl(child, _md.text_indent, this.properties);
              }
              else if (name === 'textshadow') {
                  return this.wzLoadToChildColl(child, _md.text_shadow, this.properties);
              }
              else if (name === 'transition') {
                  return this.wzLoadToChildColl(child, _md.transition, this.properties);
              }
          }
          if (_l == 10 && _ch == 'u') {
              if (name === 'userselect') {
                  return this.wzLoadToChildColl(child, _md.user_select, this.properties);
              }
          }
          if (_l == 10 && _ch == 'v') {
              if (name === 'visibility') {
                  return this.wzLoadToChildColl(child, _md.visibility, this.properties);
              }
          }
          if (_l == 10 && _ch == 'w') {
              if (name === 'whitespace') {
                  return this.wzLoadToChildColl(child, _md.white_space, this.properties);
              }
              else if (name === 'willchange') {
                  return this.wzLoadToChildColl(child, _md.will_change, this.properties);
              }
              else if (name === 'word-break') {
                  return this.wzLoadToChildColl(child, _md.word_break, this.properties);
              }
          }
          if (_l == 11 && _ch == 'a') {
              if (name === 'align-items') {
                  return this.wzLoadToChildColl(child, _md.align_items, this.properties);
              }
          }
          if (_l == 11 && _ch == 'b') {
              if (name === 'bordercolor') {
                  return this.wzLoadToChildColl(child, _md.border_color, this.properties);
              }
              else if (name === 'borderstyle') {
                  return this.wzLoadToChildColl(child, _md.border_style, this.properties);
              }
              else if (name === 'borderright') {
                  return this.wzLoadToChildColl(child, _md.border_right, this.properties);
              }
              else if (name === 'border-left') {
                  return this.wzLoadToChildColl(child, _md.border_left, this.properties);
              }
              else if (name === 'borderwidth') {
                  return this.wzLoadToChildColl(child, _md.border_width, this.properties);
              }
              else if (name === 'borderimage') {
                  return this.wzLoadToChildColl(child, _md.border_image, this.properties);
              }
              else if (name === 'break-after') {
                  return this.wzLoadToChildColl(child, _md.break_after, this.properties);
              }
              else if (name === 'breakbefore') {
                  return this.wzLoadToChildColl(child, _md.break_before, this.properties);
              }
              else if (name === 'breakinside') {
                  return this.wzLoadToChildColl(child, _md.break_inside, this.properties);
              }
          }
          if (_l == 11 && _ch == 'c') {
              if (name === 'captionside') {
                  return this.wzLoadToChildColl(child, _md.caption_side, this.properties);
              }
              else if (name === 'columncount') {
                  return this.wzLoadToChildColl(child, _md.column_count, this.properties);
              }
              else if (name === 'column-fill') {
                  return this.wzLoadToChildColl(child, _md.column_fill, this.properties);
              }
              else if (name === 'column-rule') {
                  return this.wzLoadToChildColl(child, _md.column_rule, this.properties);
              }
              else if (name === 'column-span') {
                  return this.wzLoadToChildColl(child, _md.column_span, this.properties);
              }
              else if (name === 'columnwidth') {
                  return this.wzLoadToChildColl(child, _md.column_width, this.properties);
              }
          }
          if (_l == 11 && _ch == 'e') {
              if (name === 'empty-cells') {
                  return this.wzLoadToChildColl(child, _md.empty_cells, this.properties);
              }
          }
          if (_l == 11 && _ch == 'f') {
              if (name === 'flex-shrink') {
                  return this.wzLoadToChildColl(child, _md.flex_shrink, this.properties);
              }
              else if (name === 'font-family') {
                  return this.wzLoadToChildColl(child, _md.font_family, this.properties);
              }
              else if (name === 'fontvariant') {
                  return this.wzLoadToChildColl(child, _md.font_variant, this.properties);
              }
              else if (name === 'font-weight') {
                  return this.wzLoadToChildColl(child, _md.font_weight, this.properties);
              }
          }
          if (_l == 11 && _ch == 'g') {
              if (name === 'grid-column') {
                  return this.wzLoadToChildColl(child, _md.grid_column, this.properties);
              }
          }
          if (_l == 11 && _ch == 'j') {
              if (name === 'justifyself') {
                  return this.wzLoadToChildColl(child, _md.justify_self, this.properties);
              }
          }
          if (_l == 11 && _ch == 'l') {
              if (name === 'line-height') {
                  return this.wzLoadToChildColl(child, _md.line_height, this.properties);
              }
          }
          if (_l == 11 && _ch == 'm') {
              if (name === 'marginright') {
                  return this.wzLoadToChildColl(child, _md.margin_right, this.properties);
              }
              else if (name === 'margin-left') {
                  return this.wzLoadToChildColl(child, _md.margin_left, this.properties);
              }
          }
          if (_l == 11 && _ch == 'p') {
              if (name === 'padding-top') {
                  return this.wzLoadToChildColl(child, _md.padding_top, this.properties);
              }
              else if (name === 'paddingleft') {
                  return this.wzLoadToChildColl(child, _md.padding_left, this.properties);
              }
              else if (name === 'pause-after') {
                  return this.wzLoadToChildColl(child, _md.pause_after, this.properties);
              }
              else if (name === 'pausebefore') {
                  return this.wzLoadToChildColl(child, _md.pause_before, this.properties);
              }
              else if (name === 'perspective') {
                  return this.wzLoadToChildColl(child, _md.perspective, this.properties);
              }
              else if (name === 'pitch-range') {
                  return this.wzLoadToChildColl(child, _md.pitch_range, this.properties);
              }
              else if (name === 'play-during') {
                  return this.wzLoadToChildColl(child, _md.play_during, this.properties);
              }
          }
          if (_l == 11 && _ch == 's') {
              if (name === 'speakheader') {
                  return this.wzLoadToChildColl(child, _md.speak_header, this.properties);
              }
              else if (name === 'speech-rate') {
                  return this.wzLoadToChildColl(child, _md.speech_rate, this.properties);
              }
          }
          if (_l == 11 && _ch == 't') {
              if (name === 'tablelayout') {
                  return this.wzLoadToChildColl(child, _md.table_layout, this.properties);
              }
              else if (name === 'target-name') {
                  return this.wzLoadToChildColl(child, _md.target_name, this.properties);
              }
              else if (name === 'text-indent') {
                  return this.wzLoadToChildColl(child, _md.text_indent, this.properties);
              }
              else if (name === 'text-shadow') {
                  return this.wzLoadToChildColl(child, _md.text_shadow, this.properties);
              }
              else if (name === 'touchaction') {
                  return this.wzLoadToChildColl(child, _md.touch_action, this.properties);
              }
          }
          if (_l == 11 && _ch == 'u') {
              if (name === 'unicodebidi') {
                  return this.wzLoadToChildColl(child, _md.unicode_bidi, this.properties);
              }
              else if (name === 'user-select') {
                  return this.wzLoadToChildColl(child, _md.user_select, this.properties);
              }
          }
          if (_l == 11 && _ch == 'v') {
              if (name === 'voicefamily') {
                  return this.wzLoadToChildColl(child, _md.voice_family, this.properties);
              }
          }
          if (_l == 11 && _ch == 'w') {
              if (name === 'white-space') {
                  return this.wzLoadToChildColl(child, _md.white_space, this.properties);
              }
              else if (name === 'will-change') {
                  return this.wzLoadToChildColl(child, _md.will_change, this.properties);
              }
              else if (name === 'wordspacing') {
                  return this.wzLoadToChildColl(child, _md.word_spacing, this.properties);
              }
          }
          if (_l == 12 && _ch == 'a') {
              if (name === 'aligncontent') {
                  return this.wzLoadToChildColl(child, _md.align_content, this.properties);
              }
          }
          if (_l == 12 && _ch == 'b') {
              if (name === 'border-color') {
                  return this.wzLoadToChildColl(child, _md.border_color, this.properties);
              }
              else if (name === 'border-style') {
                  return this.wzLoadToChildColl(child, _md.border_style, this.properties);
              }
              else if (name === 'border-right') {
                  return this.wzLoadToChildColl(child, _md.border_right, this.properties);
              }
              else if (name === 'borderbottom') {
                  return this.wzLoadToChildColl(child, _md.border_bottom, this.properties);
              }
              else if (name === 'border-width') {
                  return this.wzLoadToChildColl(child, _md.border_width, this.properties);
              }
              else if (name === 'borderradius') {
                  return this.wzLoadToChildColl(child, _md.border_radius, this.properties);
              }
              else if (name === 'border-image') {
                  return this.wzLoadToChildColl(child, _md.border_image, this.properties);
              }
              else if (name === 'break-before') {
                  return this.wzLoadToChildColl(child, _md.break_before, this.properties);
              }
              else if (name === 'break-inside') {
                  return this.wzLoadToChildColl(child, _md.break_inside, this.properties);
              }
          }
          if (_l == 12 && _ch == 'c') {
              if (name === 'caption-side') {
                  return this.wzLoadToChildColl(child, _md.caption_side, this.properties);
              }
              else if (name === 'column-count') {
                  return this.wzLoadToChildColl(child, _md.column_count, this.properties);
              }
              else if (name === 'column-width') {
                  return this.wzLoadToChildColl(child, _md.column_width, this.properties);
              }
              else if (name === 'counterreset') {
                  return this.wzLoadToChildColl(child, _md.counter_reset, this.properties);
              }
          }
          if (_l == 12 && _ch == 'f') {
              if (name === 'font-variant') {
                  return this.wzLoadToChildColl(child, _md.font_variant, this.properties);
              }
          }
          if (_l == 12 && _ch == 'g') {
              if (name === 'grid-row-gap') {
                  return this.wzLoadToChildColl(child, _md.grid_row_gap, this.properties);
              }
              else if (name === 'gridautorows') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_rows, this.properties);
              }
              else if (name === 'gridautoflow') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_flow, this.properties);
              }
              else if (name === 'gridrowstart') {
                  return this.wzLoadToChildColl(child, _md.grid_row_start, this.properties);
              }
              else if (name === 'grid-row-end') {
                  return this.wzLoadToChildColl(child, _md.grid_row_end, this.properties);
              }
          }
          if (_l == 12 && _ch == 'j') {
              if (name === 'justifyitems') {
                  return this.wzLoadToChildColl(child, _md.justify_items, this.properties);
              }
              else if (name === 'justify-self') {
                  return this.wzLoadToChildColl(child, _md.justify_self, this.properties);
              }
          }
          if (_l == 12 && _ch == 'm') {
              if (name === 'margin-right') {
                  return this.wzLoadToChildColl(child, _md.margin_right, this.properties);
              }
              else if (name === 'marginbottom') {
                  return this.wzLoadToChildColl(child, _md.margin_bottom, this.properties);
              }
              else if (name === 'mixblendmode') {
                  return this.wzLoadToChildColl(child, _md.mix_blend_mode, this.properties);
              }
          }
          if (_l == 12 && _ch == 'o') {
              if (name === 'outlinecolor') {
                  return this.wzLoadToChildColl(child, _md.outline_color, this.properties);
              }
              else if (name === 'outlinestyle') {
                  return this.wzLoadToChildColl(child, _md.outline_style, this.properties);
              }
              else if (name === 'outlinewidth') {
                  return this.wzLoadToChildColl(child, _md.outline_width, this.properties);
              }
              else if (name === 'overflowwrap') {
                  return this.wzLoadToChildColl(child, _md.overflow_wrap, this.properties);
              }
          }
          if (_l == 12 && _ch == 'p') {
              if (name === 'paddingright') {
                  return this.wzLoadToChildColl(child, _md.padding_right, this.properties);
              }
              else if (name === 'padding-left') {
                  return this.wzLoadToChildColl(child, _md.padding_left, this.properties);
              }
              else if (name === 'pause-before') {
                  return this.wzLoadToChildColl(child, _md.pause_before, this.properties);
              }
          }
          if (_l == 12 && _ch == 's') {
              if (name === 'speak-header') {
                  return this.wzLoadToChildColl(child, _md.speak_header, this.properties);
              }
              else if (name === 'speaknumeral') {
                  return this.wzLoadToChildColl(child, _md.speak_numeral, this.properties);
              }
          }
          if (_l == 12 && _ch == 't') {
              if (name === 'table-layout') {
                  return this.wzLoadToChildColl(child, _md.table_layout, this.properties);
              }
              else if (name === 'textoverflow') {
                  return this.wzLoadToChildColl(child, _md.text_overflow, this.properties);
              }
              else if (name === 'touch-action') {
                  return this.wzLoadToChildColl(child, _md.touch_action, this.properties);
              }
          }
          if (_l == 12 && _ch == 'u') {
              if (name === 'unicode-bidi') {
                  return this.wzLoadToChildColl(child, _md.unicode_bidi, this.properties);
              }
          }
          if (_l == 12 && _ch == 'v') {
              if (name === 'voice-family') {
                  return this.wzLoadToChildColl(child, _md.voice_family, this.properties);
              }
          }
          if (_l == 12 && _ch == 'w') {
              if (name === 'word-spacing') {
                  return this.wzLoadToChildColl(child, _md.word_spacing, this.properties);
              }
          }
          if (_l == 13 && _ch == 'a') {
              if (name === 'align-content') {
                  return this.wzLoadToChildColl(child, _md.align_content, this.properties);
              }
              else if (name === 'animationname') {
                  return this.wzLoadToChildColl(child, _md.animation_name, this.properties);
              }
          }
          if (_l == 13 && _ch == 'b') {
              if (name === 'borderspacing') {
                  return this.wzLoadToChildColl(child, _md.border_spacing, this.properties);
              }
              else if (name === 'border-bottom') {
                  return this.wzLoadToChildColl(child, _md.border_bottom, this.properties);
              }
              else if (name === 'border-radius') {
                  return this.wzLoadToChildColl(child, _md.border_radius, this.properties);
              }
          }
          if (_l == 13 && _ch == 'c') {
              if (name === 'counter-reset') {
                  return this.wzLoadToChildColl(child, _md.counter_reset, this.properties);
              }
          }
          if (_l == 13 && _ch == 'f') {
              if (name === 'flexdirection') {
                  return this.wzLoadToChildColl(child, _md.flex_direction, this.properties);
              }
          }
          if (_l == 13 && _ch == 'g') {
              if (name === 'gridcolumngap') {
                  return this.wzLoadToChildColl(child, _md.grid_column_gap, this.properties);
              }
              else if (name === 'gridcolumnend') {
                  return this.wzLoadToChildColl(child, _md.grid_column_end, this.properties);
              }
          }
          if (_l == 13 && _ch == 'j') {
              if (name === 'justify-items') {
                  return this.wzLoadToChildColl(child, _md.justify_items, this.properties);
              }
          }
          if (_l == 13 && _ch == 'l') {
              if (name === 'letterspacing') {
                  return this.wzLoadToChildColl(child, _md.letter_spacing, this.properties);
              }
              else if (name === 'liststyletype') {
                  return this.wzLoadToChildColl(child, _md.list_style_type, this.properties);
              }
          }
          if (_l == 13 && _ch == 'm') {
              if (name === 'margin-bottom') {
                  return this.wzLoadToChildColl(child, _md.margin_bottom, this.properties);
              }
          }
          if (_l == 13 && _ch == 'o') {
              if (name === 'outline-color') {
                  return this.wzLoadToChildColl(child, _md.outline_color, this.properties);
              }
              else if (name === 'outline-style') {
                  return this.wzLoadToChildColl(child, _md.outline_style, this.properties);
              }
              else if (name === 'outline-width') {
                  return this.wzLoadToChildColl(child, _md.outline_width, this.properties);
              }
              else if (name === 'outlineoffset') {
                  return this.wzLoadToChildColl(child, _md.outline_offset, this.properties);
              }
              else if (name === 'overflow-wrap') {
                  return this.wzLoadToChildColl(child, _md.overflow_wrap, this.properties);
              }
          }
          if (_l == 13 && _ch == 'p') {
              if (name === 'padding-right') {
                  return this.wzLoadToChildColl(child, _md.padding_right, this.properties);
              }
              else if (name === 'paddingbottom') {
                  return this.wzLoadToChildColl(child, _md.padding_bottom, this.properties);
              }
              else if (name === 'pointerevents') {
                  return this.wzLoadToChildColl(child, _md.pointer_events, this.properties);
              }
          }
          if (_l == 13 && _ch == 's') {
              if (name === 'speak-numeral') {
                  return this.wzLoadToChildColl(child, _md.speak_numeral, this.properties);
              }
          }
          if (_l == 13 && _ch == 't') {
              if (name === 'textalignlast') {
                  return this.wzLoadToChildColl(child, _md.text_align_last, this.properties);
              }
              else if (name === 'text-overflow') {
                  return this.wzLoadToChildColl(child, _md.text_overflow, this.properties);
              }
              else if (name === 'textrendering') {
                  return this.wzLoadToChildColl(child, _md.text_rendering, this.properties);
              }
              else if (name === 'texttransform') {
                  return this.wzLoadToChildColl(child, _md.text_transform, this.properties);
              }
          }
          if (_l == 13 && _ch == 'v') {
              if (name === 'verticalalign') {
                  return this.wzLoadToChildColl(child, _md.vertical_align, this.properties);
              }
          }
          if (_l == 14 && _ch == 'a') {
              if (name === 'animationdelay') {
                  return this.wzLoadToChildColl(child, _md.animation_delay, this.properties);
              }
              else if (name === 'animation-name') {
                  return this.wzLoadToChildColl(child, _md.animation_name, this.properties);
              }
          }
          if (_l == 14 && _ch == 'b') {
              if (name === 'backgroundclip') {
                  return this.wzLoadToChildColl(child, _md.background_clip, this.properties);
              }
              else if (name === 'backgroundsize') {
                  return this.wzLoadToChildColl(child, _md.background_size, this.properties);
              }
              else if (name === 'bordercollapse') {
                  return this.wzLoadToChildColl(child, _md.border_collapse, this.properties);
              }
              else if (name === 'border-spacing') {
                  return this.wzLoadToChildColl(child, _md.border_spacing, this.properties);
              }
              else if (name === 'bordertopcolor') {
                  return this.wzLoadToChildColl(child, _md.border_top_color, this.properties);
              }
              else if (name === 'bordertopstyle') {
                  return this.wzLoadToChildColl(child, _md.border_top_style, this.properties);
              }
              else if (name === 'bordertopwidth') {
                  return this.wzLoadToChildColl(child, _md.border_top_width, this.properties);
              }
          }
          if (_l == 14 && _ch == 'f') {
              if (name === 'flex-direction') {
                  return this.wzLoadToChildColl(child, _md.flex_direction, this.properties);
              }
          }
          if (_l == 14 && _ch == 'g') {
              if (name === 'grid-auto-rows') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_rows, this.properties);
              }
              else if (name === 'grid-auto-flow') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_flow, this.properties);
              }
              else if (name === 'grid-row-start') {
                  return this.wzLoadToChildColl(child, _md.grid_row_start, this.properties);
              }
          }
          if (_l == 14 && _ch == 'j') {
              if (name === 'justifycontent') {
                  return this.wzLoadToChildColl(child, _md.justify_content, this.properties);
              }
          }
          if (_l == 14 && _ch == 'l') {
              if (name === 'letter-spacing') {
                  return this.wzLoadToChildColl(child, _md.letter_spacing, this.properties);
              }
              else if (name === 'liststyleimage') {
                  return this.wzLoadToChildColl(child, _md.list_style_image, this.properties);
              }
          }
          if (_l == 14 && _ch == 'm') {
              if (name === 'mix-blend-mode') {
                  return this.wzLoadToChildColl(child, _md.mix_blend_mode, this.properties);
              }
          }
          if (_l == 14 && _ch == 'o') {
              if (name === 'outline-offset') {
                  return this.wzLoadToChildColl(child, _md.outline_offset, this.properties);
              }
          }
          if (_l == 14 && _ch == 'p') {
              if (name === 'padding-bottom') {
                  return this.wzLoadToChildColl(child, _md.padding_bottom, this.properties);
              }
              else if (name === 'pagebreakafter') {
                  return this.wzLoadToChildColl(child, _md.page_break_after, this.properties);
              }
              else if (name === 'pointer-events') {
                  return this.wzLoadToChildColl(child, _md.pointer_events, this.properties);
              }
          }
          if (_l == 14 && _ch == 't') {
              if (name === 'targetposition') {
                  return this.wzLoadToChildColl(child, _md.target_position, this.properties);
              }
              else if (name === 'textdecoration') {
                  return this.wzLoadToChildColl(child, _md.text_decoration, this.properties);
              }
              else if (name === 'text-rendering') {
                  return this.wzLoadToChildColl(child, _md.text_rendering, this.properties);
              }
              else if (name === 'text-transform') {
                  return this.wzLoadToChildColl(child, _md.text_transform, this.properties);
              }
              else if (name === 'transformstyle') {
                  return this.wzLoadToChildColl(child, _md.transform_style, this.properties);
              }
          }
          if (_l == 14 && _ch == 'v') {
              if (name === 'vertical-align') {
                  return this.wzLoadToChildColl(child, _md.vertical_align, this.properties);
              }
          }
          if (_l == 15 && _ch == 'a') {
              if (name === 'animation-delay') {
                  return this.wzLoadToChildColl(child, _md.animation_delay, this.properties);
              }
          }
          if (_l == 15 && _ch == 'b') {
              if (name === 'backgroundcolor') {
                  return this.wzLoadToChildColl(child, _md.background_color, this.properties);
              }
              else if (name === 'backgroundimage') {
                  return this.wzLoadToChildColl(child, _md.background_image, this.properties);
              }
              else if (name === 'background-clip') {
                  return this.wzLoadToChildColl(child, _md.background_clip, this.properties);
              }
              else if (name === 'background-size') {
                  return this.wzLoadToChildColl(child, _md.background_size, this.properties);
              }
              else if (name === 'border-collapse') {
                  return this.wzLoadToChildColl(child, _md.border_collapse, this.properties);
              }
              else if (name === 'borderleftcolor') {
                  return this.wzLoadToChildColl(child, _md.border_left_color, this.properties);
              }
              else if (name === 'borderleftstyle') {
                  return this.wzLoadToChildColl(child, _md.border_left_style, this.properties);
              }
              else if (name === 'borderleftwidth') {
                  return this.wzLoadToChildColl(child, _md.border_left_width, this.properties);
              }
          }
          if (_l == 15 && _ch == 'c') {
              if (name === 'columnrulecolor') {
                  return this.wzLoadToChildColl(child, _md.column_rule_color, this.properties);
              }
              else if (name === 'columnrulestyle') {
                  return this.wzLoadToChildColl(child, _md.column_rule_style, this.properties);
              }
              else if (name === 'columnrulewidth') {
                  return this.wzLoadToChildColl(child, _md.column_rule_width, this.properties);
              }
          }
          if (_l == 15 && _ch == 'g') {
              if (name === 'grid-column-gap') {
                  return this.wzLoadToChildColl(child, _md.grid_column_gap, this.properties);
              }
              else if (name === 'gridautocolumns') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_columns, this.properties);
              }
              else if (name === 'gridcolumnstart') {
                  return this.wzLoadToChildColl(child, _md.grid_column_start, this.properties);
              }
              else if (name === 'grid-column-end') {
                  return this.wzLoadToChildColl(child, _md.grid_column_end, this.properties);
              }
          }
          if (_l == 15 && _ch == 'j') {
              if (name === 'justify-content') {
                  return this.wzLoadToChildColl(child, _md.justify_content, this.properties);
              }
          }
          if (_l == 15 && _ch == 'l') {
              if (name === 'list-style-type') {
                  return this.wzLoadToChildColl(child, _md.list_style_type, this.properties);
              }
          }
          if (_l == 15 && _ch == 'p') {
              if (name === 'pagebreakbefore') {
                  return this.wzLoadToChildColl(child, _md.page_break_before, this.properties);
              }
              else if (name === 'pagebreakinside') {
                  return this.wzLoadToChildColl(child, _md.page_break_inside, this.properties);
              }
          }
          if (_l == 15 && _ch == 't') {
              if (name === 'target-position') {
                  return this.wzLoadToChildColl(child, _md.target_position, this.properties);
              }
              else if (name === 'text-align-last') {
                  return this.wzLoadToChildColl(child, _md.text_align_last, this.properties);
              }
              else if (name === 'text-decoration') {
                  return this.wzLoadToChildColl(child, _md.text_decoration, this.properties);
              }
              else if (name === 'transformorigin') {
                  return this.wzLoadToChildColl(child, _md.transform_origin, this.properties);
              }
              else if (name === 'transform-style') {
                  return this.wzLoadToChildColl(child, _md.transform_style, this.properties);
              }
              else if (name === 'transitiondelay') {
                  return this.wzLoadToChildColl(child, _md.transition_delay, this.properties);
              }
          }
          if (_l == 16 && _ch == 'b') {
              if (name === 'background-color') {
                  return this.wzLoadToChildColl(child, _md.background_color, this.properties);
              }
              else if (name === 'background-image') {
                  return this.wzLoadToChildColl(child, _md.background_image, this.properties);
              }
              else if (name === 'backgroundrepeat') {
                  return this.wzLoadToChildColl(child, _md.background_repeat, this.properties);
              }
              else if (name === 'backgroundorigin') {
                  return this.wzLoadToChildColl(child, _md.background_origin, this.properties);
              }
              else if (name === 'border-top-color') {
                  return this.wzLoadToChildColl(child, _md.border_top_color, this.properties);
              }
              else if (name === 'borderrightcolor') {
                  return this.wzLoadToChildColl(child, _md.border_right_color, this.properties);
              }
              else if (name === 'border-top-style') {
                  return this.wzLoadToChildColl(child, _md.border_top_style, this.properties);
              }
              else if (name === 'borderrightstyle') {
                  return this.wzLoadToChildColl(child, _md.border_right_style, this.properties);
              }
              else if (name === 'border-top-width') {
                  return this.wzLoadToChildColl(child, _md.border_top_width, this.properties);
              }
              else if (name === 'borderrightwidth') {
                  return this.wzLoadToChildColl(child, _md.border_right_width, this.properties);
              }
              else if (name === 'borderimageslice') {
                  return this.wzLoadToChildColl(child, _md.border_image_slice, this.properties);
              }
              else if (name === 'borderimagewidth') {
                  return this.wzLoadToChildColl(child, _md.border_image_width, this.properties);
              }
          }
          if (_l == 16 && _ch == 'c') {
              if (name === 'counterincrement') {
                  return this.wzLoadToChildColl(child, _md.counter_increment, this.properties);
              }
          }
          if (_l == 16 && _ch == 'g') {
              if (name === 'gridtemplaterows') {
                  return this.wzLoadToChildColl(child, _md.grid_template_rows, this.properties);
              }
          }
          if (_l == 16 && _ch == 'l') {
              if (name === 'list-style-image') {
                  return this.wzLoadToChildColl(child, _md.list_style_image, this.properties);
              }
          }
          if (_l == 16 && _ch == 'p') {
              if (name === 'page-break-after') {
                  return this.wzLoadToChildColl(child, _md.page_break_after, this.properties);
              }
          }
          if (_l == 16 && _ch == 's') {
              if (name === 'speakpunctuation') {
                  return this.wzLoadToChildColl(child, _md.speak_punctuation, this.properties);
              }
          }
          if (_l == 16 && _ch == 't') {
              if (name === 'transform-origin') {
                  return this.wzLoadToChildColl(child, _md.transform_origin, this.properties);
              }
              else if (name === 'transition-delay') {
                  return this.wzLoadToChildColl(child, _md.transition_delay, this.properties);
              }
          }
          if (_l == 17 && _ch == 'a') {
              if (name === 'animationduration') {
                  return this.wzLoadToChildColl(child, _md.animation_duration, this.properties);
              }
              else if (name === 'animationfillmode') {
                  return this.wzLoadToChildColl(child, _md.animation_fill_mode, this.properties);
              }
          }
          if (_l == 17 && _ch == 'b') {
              if (name === 'background-repeat') {
                  return this.wzLoadToChildColl(child, _md.background_repeat, this.properties);
              }
              else if (name === 'background-origin') {
                  return this.wzLoadToChildColl(child, _md.background_origin, this.properties);
              }
              else if (name === 'borderbottomcolor') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_color, this.properties);
              }
              else if (name === 'border-left-color') {
                  return this.wzLoadToChildColl(child, _md.border_left_color, this.properties);
              }
              else if (name === 'borderbottomstyle') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_style, this.properties);
              }
              else if (name === 'border-left-style') {
                  return this.wzLoadToChildColl(child, _md.border_left_style, this.properties);
              }
              else if (name === 'borderbottomwidth') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_width, this.properties);
              }
              else if (name === 'border-left-width') {
                  return this.wzLoadToChildColl(child, _md.border_left_width, this.properties);
              }
              else if (name === 'borderimageoutset') {
                  return this.wzLoadToChildColl(child, _md.border_image_outset, this.properties);
              }
              else if (name === 'borderimagerepeat') {
                  return this.wzLoadToChildColl(child, _md.border_image_repeat, this.properties);
              }
              else if (name === 'borderimagesource') {
                  return this.wzLoadToChildColl(child, _md.border_image_source, this.properties);
              }
          }
          if (_l == 17 && _ch == 'c') {
              if (name === 'column-rule-color') {
                  return this.wzLoadToChildColl(child, _md.column_rule_color, this.properties);
              }
              else if (name === 'column-rule-style') {
                  return this.wzLoadToChildColl(child, _md.column_rule_style, this.properties);
              }
              else if (name === 'column-rule-width') {
                  return this.wzLoadToChildColl(child, _md.column_rule_width, this.properties);
              }
              else if (name === 'counter-increment') {
                  return this.wzLoadToChildColl(child, _md.counter_increment, this.properties);
              }
          }
          if (_l == 17 && _ch == 'g') {
              if (name === 'gridtemplateareas') {
                  return this.wzLoadToChildColl(child, _md.gridTemplateAreas, this.properties);
              }
              else if (name === 'grid-auto-columns') {
                  return this.wzLoadToChildColl(child, _md.grid_auto_columns, this.properties);
              }
              else if (name === 'grid-column-start') {
                  return this.wzLoadToChildColl(child, _md.grid_column_start, this.properties);
              }
          }
          if (_l == 17 && _ch == 'l') {
              if (name === 'liststyleposition') {
                  return this.wzLoadToChildColl(child, _md.list_style_position, this.properties);
              }
          }
          if (_l == 17 && _ch == 'p') {
              if (name === 'page-break-before') {
                  return this.wzLoadToChildColl(child, _md.page_break_before, this.properties);
              }
              else if (name === 'page-break-inside') {
                  return this.wzLoadToChildColl(child, _md.page_break_inside, this.properties);
              }
              else if (name === 'perspectiveorigin') {
                  return this.wzLoadToChildColl(child, _md.perspective_origin, this.properties);
              }
          }
          if (_l == 17 && _ch == 's') {
              if (name === 'speak-punctuation') {
                  return this.wzLoadToChildColl(child, _md.speak_punctuation, this.properties);
              }
          }
          if (_l == 18 && _ch == 'a') {
              if (name === 'animationdirection') {
                  return this.wzLoadToChildColl(child, _md.animation_direction, this.properties);
              }
              else if (name === 'animation-duration') {
                  return this.wzLoadToChildColl(child, _md.animation_duration, this.properties);
              }
              else if (name === 'animationplaystate') {
                  return this.wzLoadToChildColl(child, _md.animation_play_state, this.properties);
              }
          }
          if (_l == 18 && _ch == 'b') {
              if (name === 'backgroundposition') {
                  return this.wzLoadToChildColl(child, _md.background_position, this.properties);
              }
              else if (name === 'backfacevisibility') {
                  return this.wzLoadToChildColl(child, _md.backface_visibility, this.properties);
              }
              else if (name === 'border-right-color') {
                  return this.wzLoadToChildColl(child, _md.border_right_color, this.properties);
              }
              else if (name === 'border-right-style') {
                  return this.wzLoadToChildColl(child, _md.border_right_style, this.properties);
              }
              else if (name === 'border-right-width') {
                  return this.wzLoadToChildColl(child, _md.border_right_width, this.properties);
              }
              else if (name === 'border-image-slice') {
                  return this.wzLoadToChildColl(child, _md.border_image_slice, this.properties);
              }
              else if (name === 'border-image-width') {
                  return this.wzLoadToChildColl(child, _md.border_image_width, this.properties);
              }
              else if (name === 'boxdecorationbreak') {
                  return this.wzLoadToChildColl(child, _md.box_decoration_break, this.properties);
              }
          }
          if (_l == 18 && _ch == 'g') {
              if (name === 'grid-template-rows') {
                  return this.wzLoadToChildColl(child, _md.grid_template_rows, this.properties);
              }
          }
          if (_l == 18 && _ch == 'h') {
              if (name === 'hangingpunctuation') {
                  return this.wzLoadToChildColl(child, _md.hanging_punctuation, this.properties);
              }
          }
          if (_l == 18 && _ch == 'p') {
              if (name === 'perspective-origin') {
                  return this.wzLoadToChildColl(child, _md.perspective_origin, this.properties);
              }
          }
          if (_l == 18 && _ch == 't') {
              if (name === 'textdecorationline') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_line, this.properties);
              }
              else if (name === 'textdecorationskip') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_skip, this.properties);
              }
              else if (name === 'transitionduration') {
                  return this.wzLoadToChildColl(child, _md.transition_duration, this.properties);
              }
              else if (name === 'transitionproperty') {
                  return this.wzLoadToChildColl(child, _md.transition_property, this.properties);
              }
          }
          if (_l == 19 && _ch == 'a') {
              if (name === 'animation-direction') {
                  return this.wzLoadToChildColl(child, _md.animation_direction, this.properties);
              }
              else if (name === 'animation-fill-mode') {
                  return this.wzLoadToChildColl(child, _md.animation_fill_mode, this.properties);
              }
          }
          if (_l == 19 && _ch == 'b') {
              if (name === 'background-position') {
                  return this.wzLoadToChildColl(child, _md.background_position, this.properties);
              }
              else if (name === 'backgroundblendmode') {
                  return this.wzLoadToChildColl(child, _md.background_blend_mode, this.properties);
              }
              else if (name === 'backface-visibility') {
                  return this.wzLoadToChildColl(child, _md.backface_visibility, this.properties);
              }
              else if (name === 'border-bottom-color') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_color, this.properties);
              }
              else if (name === 'border-bottom-style') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_style, this.properties);
              }
              else if (name === 'border-bottom-width') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_width, this.properties);
              }
              else if (name === 'bordertopleftradius') {
                  return this.wzLoadToChildColl(child, _md.border_top_left_radius, this.properties);
              }
              else if (name === 'border-image-outset') {
                  return this.wzLoadToChildColl(child, _md.border_image_outset, this.properties);
              }
              else if (name === 'border-image-repeat') {
                  return this.wzLoadToChildColl(child, _md.border_image_repeat, this.properties);
              }
              else if (name === 'border-image-source') {
                  return this.wzLoadToChildColl(child, _md.border_image_source, this.properties);
              }
          }
          if (_l == 19 && _ch == 'g') {
              if (name === 'gridtemplatecolumns') {
                  return this.wzLoadToChildColl(child, _md.grid_template_columns, this.properties);
              }
              else if (name === 'grid-template-areas') {
                  return this.wzLoadToChildColl(child, _md.gridTemplateAreas, this.properties);
              }
          }
          if (_l == 19 && _ch == 'h') {
              if (name === 'hanging-punctuation') {
                  return this.wzLoadToChildColl(child, _md.hanging_punctuation, this.properties);
              }
          }
          if (_l == 19 && _ch == 'l') {
              if (name === 'list-style-position') {
                  return this.wzLoadToChildColl(child, _md.list_style_position, this.properties);
              }
          }
          if (_l == 19 && _ch == 't') {
              if (name === 'textdecorationstyle') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_style, this.properties);
              }
              else if (name === 'textdecorationcolor') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_color, this.properties);
              }
              else if (name === 'transition-duration') {
                  return this.wzLoadToChildColl(child, _md.transition_duration, this.properties);
              }
              else if (name === 'transition-property') {
                  return this.wzLoadToChildColl(child, _md.transition_property, this.properties);
              }
          }
          if (_l == 20 && _ch == 'a') {
              if (name === 'animation-play-state') {
                  return this.wzLoadToChildColl(child, _md.animation_play_state, this.properties);
              }
          }
          if (_l == 20 && _ch == 'b') {
              if (name === 'backgroundattachment') {
                  return this.wzLoadToChildColl(child, _md.background_attachment, this.properties);
              }
              else if (name === 'bordertoprightradius') {
                  return this.wzLoadToChildColl(child, _md.border_top_right_radius, this.properties);
              }
              else if (name === 'box-decoration-break') {
                  return this.wzLoadToChildColl(child, _md.box_decoration_break, this.properties);
              }
          }
          if (_l == 20 && _ch == 't') {
              if (name === 'text-decoration-line') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_line, this.properties);
              }
              else if (name === 'text-decoration-skip') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_skip, this.properties);
              }
          }
          if (_l == 21 && _ch == 'b') {
              if (name === 'background-attachment') {
                  return this.wzLoadToChildColl(child, _md.background_attachment, this.properties);
              }
              else if (name === 'background-blend-mode') {
                  return this.wzLoadToChildColl(child, _md.background_blend_mode, this.properties);
              }
          }
          if (_l == 21 && _ch == 'g') {
              if (name === 'grid-template-columns') {
                  return this.wzLoadToChildColl(child, _md.grid_template_columns, this.properties);
              }
          }
          if (_l == 21 && _ch == 't') {
              if (name === 'text-decoration-style') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_style, this.properties);
              }
              else if (name === 'text-decoration-color') {
                  return this.wzLoadToChildColl(child, _md.text_decoration_color, this.properties);
              }
              else if (name === 'textunderlineposition') {
                  return this.wzLoadToChildColl(child, _md.text_underline_position, this.properties);
              }
          }
          if (_l == 22 && _ch == 'b') {
              if (name === 'border-top-left-radius') {
                  return this.wzLoadToChildColl(child, _md.border_top_left_radius, this.properties);
              }
              else if (name === 'borderbottomleftradius') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_left_radius, this.properties);
              }
          }
          if (_l == 23 && _ch == 'a') {
              if (name === 'animationiterationcount') {
                  return this.wzLoadToChildColl(child, _md.animation_iteration_count, this.properties);
              }
              else if (name === 'animationtimingfunction') {
                  return this.wzLoadToChildColl(child, _md.animation_timing_function, this.properties);
              }
          }
          if (_l == 23 && _ch == 'b') {
              if (name === 'border-top-right-radius') {
                  return this.wzLoadToChildColl(child, _md.border_top_right_radius, this.properties);
              }
              else if (name === 'borderbottomrightradius') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_right_radius, this.properties);
              }
          }
          if (_l == 23 && _ch == 't') {
              if (name === 'text-underline-position') {
                  return this.wzLoadToChildColl(child, _md.text_underline_position, this.properties);
              }
          }
          if (_l == 24 && _ch == 't') {
              if (name === 'transitiontimingfunction') {
                  return this.wzLoadToChildColl(child, _md.transition_timing_function, this.properties);
              }
          }
          if (_l == 25 && _ch == 'a') {
              if (name === 'animation-iteration-count') {
                  return this.wzLoadToChildColl(child, _md.animation_iteration_count, this.properties);
              }
              else if (name === 'animation-timing-function') {
                  return this.wzLoadToChildColl(child, _md.animation_timing_function, this.properties);
              }
          }
          if (_l == 25 && _ch == 'b') {
              if (name === 'border-bottom-left-radius') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_left_radius, this.properties);
              }
          }
          if (_l == 26 && _ch == 'b') {
              if (name === 'border-bottom-right-radius') {
                  return this.wzLoadToChildColl(child, _md.border_bottom_right_radius, this.properties);
              }
          }
          if (_l == 26 && _ch == 't') {
              if (name === 'transition-timing-function') {
                  return this.wzLoadToChildColl(child, _md.transition_timing_function, this.properties);
              }
          }
          return ok;
      }
      property.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      property.prototype.wzVerify = function(ctx) {
          var i, i_items=this.properties, i_len=this.properties.length, item;
          for (i=0; i<i_len; i++) {
              item = this.properties[i];
              item.wzVerify(ctx);
          }
          _md.vttBase.prototype.wzVerify.call(this, ctx);
      }
      property.prototype.wzInitialize = function(ctx) {
          var i, i_items=this.properties, i_len=this.properties.length, item;
          for (i=0; i<i_len; i++) {
              item = this.properties[i];
              item.wzInitialize(ctx);
          }
          _md.vttBase.prototype.wzInitialize.call(this, ctx);
      }
      return property;
  })(vttBase);
  
  _md.property = property;
  // element align_content
  var align_content = (function (property) {
      _inherits(align_content, property);
      function align_content(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(align_content.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, align_content);
          this.wzElement = "align_content";
      }
      align_content.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      align_content.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      align_content.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return align_content;
  })(property);
  
  _md.align_content = align_content;
  // element align_items
  var align_items = (function (property) {
      _inherits(align_items, property);
      function align_items(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(align_items.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, align_items);
          this.wzElement = "align_items";
      }
      align_items.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      align_items.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      align_items.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return align_items;
  })(property);
  
  _md.align_items = align_items;
  // element align_self
  var align_self = (function (property) {
      _inherits(align_self, property);
      function align_self(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(align_self.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, align_self);
          this.wzElement = "align_self";
      }
      align_self.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      align_self.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      align_self.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return align_self;
  })(property);
  
  _md.align_self = align_self;
  // element animation
  var animation = (function (property) {
      _inherits(animation, property);
      function animation(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation);
          this.wzElement = "animation";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.delay = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.direction = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.duration = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.fill_mode = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.iteration_count = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.name = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.play_state = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.timing_function = null
      }
      animation.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.delay)) {
              result["delay"] = this.delay;
          }
          if (!isEmpty(this.direction)) {
              result["direction"] = this.direction;
          }
          if (!isEmpty(this.duration)) {
              result["duration"] = this.duration;
          }
          if (!isEmpty(this.fill_mode)) {
              result["fill_mode"] = this.fill_mode;
          }
          if (!isEmpty(this.iteration_count)) {
              result["iteration_count"] = this.iteration_count;
          }
          if (!isEmpty(this.name)) {
              result["name"] = this.name;
          }
          if (!isEmpty(this.play_state)) {
              result["play_state"] = this.play_state;
          }
          if (!isEmpty(this.timing_function)) {
              result["timing_function"] = this.timing_function;
          }
      }
      animation.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      animation.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 4 && _ch == 'n') {
              if (name === 'name') {
                  this.name = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'd') {
              if (name === 'delay') {
                  this.delay = child.v; return true;
              }
          }
          if (_l == 8 && _ch == 'd') {
              if (name === 'duration') {
                  this.duration = child.v; return true;
              }
          }
          if (_l == 9 && _ch == 'd') {
              if (name === 'direction') {
                  this.direction = child.v; return true;
              }
          }
          if (_l == 9 && _ch == 'f') {
              if (name === 'fill-mode') {
                  this.fill_mode = child.v; return true;
              }
              else if (name === 'fill_mode') {
                  this.fill_mode = child.v; return true;
              }
          }
          if (_l == 10 && _ch == 'p') {
              if (name === 'play-state') {
                  this.play_state = child.v; return true;
              }
              else if (name === 'play_state') {
                  this.play_state = child.v; return true;
              }
          }
          if (_l == 15 && _ch == 'i') {
              if (name === 'iteration-count') {
                  this.iteration_count = child.v; return true;
              }
              else if (name === 'iteration_count') {
                  this.iteration_count = child.v; return true;
              }
          }
          if (_l == 15 && _ch == 't') {
              if (name === 'timing-function') {
                  this.timing_function = child.v; return true;
              }
              else if (name === 'timing_function') {
                  this.timing_function = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      animation.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return animation;
  })(property);
  
  _md.animation = animation;
  // element animation_delay
  var animation_delay = (function (property) {
      _inherits(animation_delay, property);
      function animation_delay(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation_delay.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation_delay);
          this.wzElement = "animation_delay";
      }
      animation_delay.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation_delay.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      animation_delay.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return animation_delay;
  })(property);
  
  _md.animation_delay = animation_delay;
  // element animation_direction
  var animation_direction = (function (property) {
      _inherits(animation_direction, property);
      function animation_direction(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation_direction.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation_direction);
          this.wzElement = "animation_direction";
      }
      animation_direction.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation_direction.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      animation_direction.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return animation_direction;
  })(property);
  
  _md.animation_direction = animation_direction;
  // element animation_duration
  var animation_duration = (function (property) {
      _inherits(animation_duration, property);
      function animation_duration(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation_duration.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation_duration);
          this.wzElement = "animation_duration";
      }
      animation_duration.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation_duration.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      animation_duration.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return animation_duration;
  })(property);
  
  _md.animation_duration = animation_duration;
  // element animation_fill_mode
  var animation_fill_mode = (function (property) {
      _inherits(animation_fill_mode, property);
      function animation_fill_mode(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation_fill_mode.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation_fill_mode);
          this.wzElement = "animation_fill_mode";
      }
      animation_fill_mode.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation_fill_mode.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      animation_fill_mode.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return animation_fill_mode;
  })(property);
  
  _md.animation_fill_mode = animation_fill_mode;
  // element animation_iteration_count
  var animation_iteration_count = (function (property) {
      _inherits(animation_iteration_count, property);
      function animation_iteration_count(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation_iteration_count.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation_iteration_count);
          this.wzElement = "animation_iteration_count";
      }
      animation_iteration_count.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation_iteration_count.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      animation_iteration_count.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return animation_iteration_count;
  })(property);
  
  _md.animation_iteration_count = animation_iteration_count;
  // element animation_name
  var animation_name = (function (property) {
      _inherits(animation_name, property);
      function animation_name(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation_name.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation_name);
          this.wzElement = "animation_name";
      }
      animation_name.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation_name.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      animation_name.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return animation_name;
  })(property);
  
  _md.animation_name = animation_name;
  // element animation_play_state
  var animation_play_state = (function (property) {
      _inherits(animation_play_state, property);
      function animation_play_state(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation_play_state.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation_play_state);
          this.wzElement = "animation_play_state";
      }
      animation_play_state.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation_play_state.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      animation_play_state.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return animation_play_state;
  })(property);
  
  _md.animation_play_state = animation_play_state;
  // element animation_timing_function
  var animation_timing_function = (function (property) {
      _inherits(animation_timing_function, property);
      function animation_timing_function(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(animation_timing_function.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, animation_timing_function);
          this.wzElement = "animation_timing_function";
      }
      animation_timing_function.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      animation_timing_function.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      animation_timing_function.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return animation_timing_function;
  })(property);
  
  _md.animation_timing_function = animation_timing_function;
  // element appearance
  var appearance = (function (property) {
      _inherits(appearance, property);
      function appearance(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(appearance.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, appearance);
          this.wzElement = "appearance";
      }
      appearance.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      appearance.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      appearance.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return appearance;
  })(property);
  
  _md.appearance = appearance;
  // element azimuth
  var azimuth = (function (property) {
      _inherits(azimuth, property);
      function azimuth(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(azimuth.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, azimuth);
          this.wzElement = "azimuth";
      }
      azimuth.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      azimuth.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      azimuth.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return azimuth;
  })(property);
  
  _md.azimuth = azimuth;
  // element background
  var background = (function (property) {
      _inherits(background, property);
      function background(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background);
          this.wzElement = "background";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.attachment = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.color = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.image = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.position = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.repeat = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.blend_mode = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.clip = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.origin = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.size = null
      }
      background.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.attachment)) {
              result["attachment"] = this.attachment;
          }
          if (!isEmpty(this.color)) {
              result["color"] = this.color;
          }
          if (!isEmpty(this.image)) {
              result["image"] = this.image;
          }
          if (!isEmpty(this.position)) {
              result["position"] = this.position;
          }
          if (!isEmpty(this.repeat)) {
              result["repeat"] = this.repeat;
          }
          if (!isEmpty(this.blend_mode)) {
              result["blend_mode"] = this.blend_mode;
          }
          if (!isEmpty(this.clip)) {
              result["clip"] = this.clip;
          }
          if (!isEmpty(this.origin)) {
              result["origin"] = this.origin;
          }
          if (!isEmpty(this.size)) {
              result["size"] = this.size;
          }
      }
      background.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      background.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 4 && _ch == 'c') {
              if (name === 'clip') {
                  this.clip = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 's') {
              if (name === 'size') {
                  this.size = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'c') {
              if (name === 'color') {
                  this.color = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'i') {
              if (name === 'image') {
                  this.image = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'o') {
              if (name === 'origin') {
                  this.origin = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'r') {
              if (name === 'repeat') {
                  this.repeat = child.v; return true;
              }
          }
          if (_l == 8 && _ch == 'p') {
              if (name === 'position') {
                  this.position = child.v; return true;
              }
          }
          if (_l == 10 && _ch == 'a') {
              if (name === 'attachment') {
                  this.attachment = child.v; return true;
              }
          }
          if (_l == 10 && _ch == 'b') {
              if (name === 'blend-mode') {
                  this.blend_mode = child.v; return true;
              }
              else if (name === 'blend_mode') {
                  this.blend_mode = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      background.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return background;
  })(property);
  
  _md.background = background;
  // element background_attachment
  var background_attachment = (function (property) {
      _inherits(background_attachment, property);
      function background_attachment(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_attachment.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_attachment);
          this.wzElement = "background_attachment";
      }
      background_attachment.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_attachment.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_attachment.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return background_attachment;
  })(property);
  
  _md.background_attachment = background_attachment;
  // element background_color
  var background_color = (function (property) {
      _inherits(background_color, property);
      function background_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_color);
          this.wzElement = "background_color";
      }
      background_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return background_color;
  })(property);
  
  _md.background_color = background_color;
  // element background_image
  var background_image = (function (property) {
      _inherits(background_image, property);
      function background_image(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_image.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_image);
          this.wzElement = "background_image";
          this.svg_svg_items = [];
      }
      background_image.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_image.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_image.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      background_image.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 3 && _ch == 's') {
              if (name === 'svg') {
                  // generated by wizzi/lib/wizzi/models/bootstrap/t/wfschema/t/element_load;
                  this.svg_svg_items.push(child);
                  var err, wizziModel;
                  this.wzRoot().wzFactory.loadModelFromMtree( //;
                      'svg',  //;
                      { nodes: [ child ], loadHistory: this.wzRoot().loadHistory }, //;
                      function(cberr, cbwizziModel) { //;
                          err = cberr;
                          wizziModel = cbwizziModel;
                      });
                  this.get_svg = function(callback) { //;
                      // We must wait until the async loadModelFromMtree(..) has returned a wizziModel or an err;
                      var iv = setInterval(function() { //;
                          if (err || wizziModel) { //;
                              clearInterval(iv);
                              if (callback) { //;
                                  callback(err, wizziModel);
                                  callback = null;
                              } //;
                          } //;
                      }, 100);
                  };
                  return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      background_image.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return background_image;
  })(property);
  
  _md.background_image = background_image;
  // element background_position
  var background_position = (function (property) {
      _inherits(background_position, property);
      function background_position(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_position.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_position);
          this.wzElement = "background_position";
      }
      background_position.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_position.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_position.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return background_position;
  })(property);
  
  _md.background_position = background_position;
  // element background_repeat
  var background_repeat = (function (property) {
      _inherits(background_repeat, property);
      function background_repeat(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_repeat.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_repeat);
          this.wzElement = "background_repeat";
      }
      background_repeat.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_repeat.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_repeat.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return background_repeat;
  })(property);
  
  _md.background_repeat = background_repeat;
  // element background_blend_mode
  var background_blend_mode = (function (property) {
      _inherits(background_blend_mode, property);
      function background_blend_mode(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_blend_mode.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_blend_mode);
          this.wzElement = "background_blend_mode";
      }
      background_blend_mode.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_blend_mode.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_blend_mode.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return background_blend_mode;
  })(property);
  
  _md.background_blend_mode = background_blend_mode;
  // element background_clip
  var background_clip = (function (property) {
      _inherits(background_clip, property);
      function background_clip(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_clip.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_clip);
          this.wzElement = "background_clip";
      }
      background_clip.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_clip.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_clip.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return background_clip;
  })(property);
  
  _md.background_clip = background_clip;
  // element background_origin
  var background_origin = (function (property) {
      _inherits(background_origin, property);
      function background_origin(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_origin.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_origin);
          this.wzElement = "background_origin";
      }
      background_origin.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_origin.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_origin.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return background_origin;
  })(property);
  
  _md.background_origin = background_origin;
  // element background_size
  var background_size = (function (property) {
      _inherits(background_size, property);
      function background_size(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(background_size.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, background_size);
          this.wzElement = "background_size";
      }
      background_size.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      background_size.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      background_size.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return background_size;
  })(property);
  
  _md.background_size = background_size;
  // element backface_visibility
  var backface_visibility = (function (property) {
      _inherits(backface_visibility, property);
      function backface_visibility(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(backface_visibility.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, backface_visibility);
          this.wzElement = "backface_visibility";
      }
      backface_visibility.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      backface_visibility.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      backface_visibility.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return backface_visibility;
  })(property);
  
  _md.backface_visibility = backface_visibility;
  // element border
  var border = (function (property) {
      _inherits(border, property);
      function border(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border);
          this.wzElement = "border";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.collapse = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.color = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.spacing = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.style = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.top = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.right = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.bottom = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.left = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.top_color = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.right_color = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.bottom_color = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.left_color = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.top_style = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.right_style = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.bottom_style = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.left_style = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.top_width = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.right_width = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.bottom_width = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.left_width = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.width = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.radius = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.top_left_radius = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.top_right_radius = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.bottom_left_radius = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.bottom_right_radius = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.image = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.image_outset = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.image_repeat = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.image_source = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.image_slice = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.image_width = null
      }
      border.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.collapse)) {
              result["collapse"] = this.collapse;
          }
          if (!isEmpty(this.color)) {
              result["color"] = this.color;
          }
          if (!isEmpty(this.spacing)) {
              result["spacing"] = this.spacing;
          }
          if (!isEmpty(this.style)) {
              result["style"] = this.style;
          }
          if (!isEmpty(this.top)) {
              result["top"] = this.top;
          }
          if (!isEmpty(this.right)) {
              result["right"] = this.right;
          }
          if (!isEmpty(this.bottom)) {
              result["bottom"] = this.bottom;
          }
          if (!isEmpty(this.left)) {
              result["left"] = this.left;
          }
          if (!isEmpty(this.top_color)) {
              result["top_color"] = this.top_color;
          }
          if (!isEmpty(this.right_color)) {
              result["right_color"] = this.right_color;
          }
          if (!isEmpty(this.bottom_color)) {
              result["bottom_color"] = this.bottom_color;
          }
          if (!isEmpty(this.left_color)) {
              result["left_color"] = this.left_color;
          }
          if (!isEmpty(this.top_style)) {
              result["top_style"] = this.top_style;
          }
          if (!isEmpty(this.right_style)) {
              result["right_style"] = this.right_style;
          }
          if (!isEmpty(this.bottom_style)) {
              result["bottom_style"] = this.bottom_style;
          }
          if (!isEmpty(this.left_style)) {
              result["left_style"] = this.left_style;
          }
          if (!isEmpty(this.top_width)) {
              result["top_width"] = this.top_width;
          }
          if (!isEmpty(this.right_width)) {
              result["right_width"] = this.right_width;
          }
          if (!isEmpty(this.bottom_width)) {
              result["bottom_width"] = this.bottom_width;
          }
          if (!isEmpty(this.left_width)) {
              result["left_width"] = this.left_width;
          }
          if (!isEmpty(this.width)) {
              result["width"] = this.width;
          }
          if (!isEmpty(this.radius)) {
              result["radius"] = this.radius;
          }
          if (!isEmpty(this.top_left_radius)) {
              result["top_left_radius"] = this.top_left_radius;
          }
          if (!isEmpty(this.top_right_radius)) {
              result["top_right_radius"] = this.top_right_radius;
          }
          if (!isEmpty(this.bottom_left_radius)) {
              result["bottom_left_radius"] = this.bottom_left_radius;
          }
          if (!isEmpty(this.bottom_right_radius)) {
              result["bottom_right_radius"] = this.bottom_right_radius;
          }
          if (!isEmpty(this.image)) {
              result["image"] = this.image;
          }
          if (!isEmpty(this.image_outset)) {
              result["image_outset"] = this.image_outset;
          }
          if (!isEmpty(this.image_repeat)) {
              result["image_repeat"] = this.image_repeat;
          }
          if (!isEmpty(this.image_source)) {
              result["image_source"] = this.image_source;
          }
          if (!isEmpty(this.image_slice)) {
              result["image_slice"] = this.image_slice;
          }
          if (!isEmpty(this.image_width)) {
              result["image_width"] = this.image_width;
          }
      }
      border.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      border.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 3 && _ch == 't') {
              if (name === 'top') {
                  this.top = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 'l') {
              if (name === 'left') {
                  this.left = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'c') {
              if (name === 'color') {
                  this.color = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'i') {
              if (name === 'image') {
                  this.image = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'r') {
              if (name === 'right') {
                  this.right = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 's') {
              if (name === 'style') {
                  this.style = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'w') {
              if (name === 'width') {
                  this.width = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'b') {
              if (name === 'bottom') {
                  this.bottom = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'r') {
              if (name === 'radius') {
                  this.radius = child.v; return true;
              }
          }
          if (_l == 7 && _ch == 's') {
              if (name === 'spacing') {
                  this.spacing = child.v; return true;
              }
          }
          if (_l == 8 && _ch == 'c') {
              if (name === 'collapse') {
                  this.collapse = child.v; return true;
              }
          }
          if (_l == 9 && _ch == 't') {
              if (name === 'top-color') {
                  this.top_color = child.v; return true;
              }
              else if (name === 'top_color') {
                  this.top_color = child.v; return true;
              }
              else if (name === 'top-style') {
                  this.top_style = child.v; return true;
              }
              else if (name === 'top_style') {
                  this.top_style = child.v; return true;
              }
              else if (name === 'top-width') {
                  this.top_width = child.v; return true;
              }
              else if (name === 'top_width') {
                  this.top_width = child.v; return true;
              }
          }
          if (_l == 10 && _ch == 'l') {
              if (name === 'left-color') {
                  this.left_color = child.v; return true;
              }
              else if (name === 'left_color') {
                  this.left_color = child.v; return true;
              }
              else if (name === 'left-style') {
                  this.left_style = child.v; return true;
              }
              else if (name === 'left_style') {
                  this.left_style = child.v; return true;
              }
              else if (name === 'left-width') {
                  this.left_width = child.v; return true;
              }
              else if (name === 'left_width') {
                  this.left_width = child.v; return true;
              }
          }
          if (_l == 11 && _ch == 'i') {
              if (name === 'image-slice') {
                  this.image_slice = child.v; return true;
              }
              else if (name === 'image_slice') {
                  this.image_slice = child.v; return true;
              }
              else if (name === 'image-width') {
                  this.image_width = child.v; return true;
              }
              else if (name === 'image_width') {
                  this.image_width = child.v; return true;
              }
          }
          if (_l == 11 && _ch == 'r') {
              if (name === 'right-color') {
                  this.right_color = child.v; return true;
              }
              else if (name === 'right_color') {
                  this.right_color = child.v; return true;
              }
              else if (name === 'right-style') {
                  this.right_style = child.v; return true;
              }
              else if (name === 'right_style') {
                  this.right_style = child.v; return true;
              }
              else if (name === 'right-width') {
                  this.right_width = child.v; return true;
              }
              else if (name === 'right_width') {
                  this.right_width = child.v; return true;
              }
          }
          if (_l == 12 && _ch == 'b') {
              if (name === 'bottom-color') {
                  this.bottom_color = child.v; return true;
              }
              else if (name === 'bottom_color') {
                  this.bottom_color = child.v; return true;
              }
              else if (name === 'bottom-style') {
                  this.bottom_style = child.v; return true;
              }
              else if (name === 'bottom_style') {
                  this.bottom_style = child.v; return true;
              }
              else if (name === 'bottom-width') {
                  this.bottom_width = child.v; return true;
              }
              else if (name === 'bottom_width') {
                  this.bottom_width = child.v; return true;
              }
          }
          if (_l == 12 && _ch == 'i') {
              if (name === 'image-outset') {
                  this.image_outset = child.v; return true;
              }
              else if (name === 'image_outset') {
                  this.image_outset = child.v; return true;
              }
              else if (name === 'image-repeat') {
                  this.image_repeat = child.v; return true;
              }
              else if (name === 'image_repeat') {
                  this.image_repeat = child.v; return true;
              }
              else if (name === 'image-source') {
                  this.image_source = child.v; return true;
              }
              else if (name === 'image_source') {
                  this.image_source = child.v; return true;
              }
          }
          if (_l == 15 && _ch == 't') {
              if (name === 'top-left-radius') {
                  this.top_left_radius = child.v; return true;
              }
              else if (name === 'top_left_radius') {
                  this.top_left_radius = child.v; return true;
              }
          }
          if (_l == 16 && _ch == 't') {
              if (name === 'top-right-radius') {
                  this.top_right_radius = child.v; return true;
              }
              else if (name === 'top_right_radius') {
                  this.top_right_radius = child.v; return true;
              }
          }
          if (_l == 18 && _ch == 'b') {
              if (name === 'bottom-left-radius') {
                  this.bottom_left_radius = child.v; return true;
              }
              else if (name === 'bottom_left_radius') {
                  this.bottom_left_radius = child.v; return true;
              }
          }
          if (_l == 19 && _ch == 'b') {
              if (name === 'bottom-right-radius') {
                  this.bottom_right_radius = child.v; return true;
              }
              else if (name === 'bottom_right_radius') {
                  this.bottom_right_radius = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      border.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return border;
  })(property);
  
  _md.border = border;
  // element border_collapse
  var border_collapse = (function (property) {
      _inherits(border_collapse, property);
      function border_collapse(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_collapse.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_collapse);
          this.wzElement = "border_collapse";
      }
      border_collapse.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_collapse.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_collapse.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_collapse;
  })(property);
  
  _md.border_collapse = border_collapse;
  // element border_color
  var border_color = (function (property) {
      _inherits(border_color, property);
      function border_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_color);
          this.wzElement = "border_color";
      }
      border_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_color;
  })(property);
  
  _md.border_color = border_color;
  // element border_spacing
  var border_spacing = (function (property) {
      _inherits(border_spacing, property);
      function border_spacing(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_spacing.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_spacing);
          this.wzElement = "border_spacing";
      }
      border_spacing.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_spacing.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_spacing.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_spacing;
  })(property);
  
  _md.border_spacing = border_spacing;
  // element border_style
  var border_style = (function (property) {
      _inherits(border_style, property);
      function border_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_style);
          this.wzElement = "border_style";
      }
      border_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_style;
  })(property);
  
  _md.border_style = border_style;
  // element border_top
  var border_top = (function (property) {
      _inherits(border_top, property);
      function border_top(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_top.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_top);
          this.wzElement = "border_top";
      }
      border_top.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_top.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_top.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_top;
  })(property);
  
  _md.border_top = border_top;
  // element border_right
  var border_right = (function (property) {
      _inherits(border_right, property);
      function border_right(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_right.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_right);
          this.wzElement = "border_right";
      }
      border_right.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_right.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_right.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_right;
  })(property);
  
  _md.border_right = border_right;
  // element border_bottom
  var border_bottom = (function (property) {
      _inherits(border_bottom, property);
      function border_bottom(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_bottom.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_bottom);
          this.wzElement = "border_bottom";
      }
      border_bottom.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_bottom.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_bottom.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_bottom;
  })(property);
  
  _md.border_bottom = border_bottom;
  // element border_left
  var border_left = (function (property) {
      _inherits(border_left, property);
      function border_left(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_left.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_left);
          this.wzElement = "border_left";
      }
      border_left.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_left.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_left.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_left;
  })(property);
  
  _md.border_left = border_left;
  // element border_top_color
  var border_top_color = (function (property) {
      _inherits(border_top_color, property);
      function border_top_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_top_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_top_color);
          this.wzElement = "border_top_color";
      }
      border_top_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_top_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_top_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_top_color;
  })(property);
  
  _md.border_top_color = border_top_color;
  // element border_right_color
  var border_right_color = (function (property) {
      _inherits(border_right_color, property);
      function border_right_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_right_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_right_color);
          this.wzElement = "border_right_color";
      }
      border_right_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_right_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_right_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_right_color;
  })(property);
  
  _md.border_right_color = border_right_color;
  // element border_bottom_color
  var border_bottom_color = (function (property) {
      _inherits(border_bottom_color, property);
      function border_bottom_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_bottom_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_bottom_color);
          this.wzElement = "border_bottom_color";
      }
      border_bottom_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_bottom_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_bottom_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_bottom_color;
  })(property);
  
  _md.border_bottom_color = border_bottom_color;
  // element border_left_color
  var border_left_color = (function (property) {
      _inherits(border_left_color, property);
      function border_left_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_left_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_left_color);
          this.wzElement = "border_left_color";
      }
      border_left_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_left_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_left_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_left_color;
  })(property);
  
  _md.border_left_color = border_left_color;
  // element border_top_style
  var border_top_style = (function (property) {
      _inherits(border_top_style, property);
      function border_top_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_top_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_top_style);
          this.wzElement = "border_top_style";
      }
      border_top_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_top_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_top_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_top_style;
  })(property);
  
  _md.border_top_style = border_top_style;
  // element border_right_style
  var border_right_style = (function (property) {
      _inherits(border_right_style, property);
      function border_right_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_right_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_right_style);
          this.wzElement = "border_right_style";
      }
      border_right_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_right_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_right_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_right_style;
  })(property);
  
  _md.border_right_style = border_right_style;
  // element border_bottom_style
  var border_bottom_style = (function (property) {
      _inherits(border_bottom_style, property);
      function border_bottom_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_bottom_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_bottom_style);
          this.wzElement = "border_bottom_style";
      }
      border_bottom_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_bottom_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_bottom_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_bottom_style;
  })(property);
  
  _md.border_bottom_style = border_bottom_style;
  // element border_left_style
  var border_left_style = (function (property) {
      _inherits(border_left_style, property);
      function border_left_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_left_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_left_style);
          this.wzElement = "border_left_style";
      }
      border_left_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_left_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_left_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_left_style;
  })(property);
  
  _md.border_left_style = border_left_style;
  // element border_top_width
  var border_top_width = (function (property) {
      _inherits(border_top_width, property);
      function border_top_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_top_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_top_width);
          this.wzElement = "border_top_width";
      }
      border_top_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_top_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_top_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_top_width;
  })(property);
  
  _md.border_top_width = border_top_width;
  // element border_right_width
  var border_right_width = (function (property) {
      _inherits(border_right_width, property);
      function border_right_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_right_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_right_width);
          this.wzElement = "border_right_width";
      }
      border_right_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_right_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_right_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_right_width;
  })(property);
  
  _md.border_right_width = border_right_width;
  // element border_bottom_width
  var border_bottom_width = (function (property) {
      _inherits(border_bottom_width, property);
      function border_bottom_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_bottom_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_bottom_width);
          this.wzElement = "border_bottom_width";
      }
      border_bottom_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_bottom_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_bottom_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_bottom_width;
  })(property);
  
  _md.border_bottom_width = border_bottom_width;
  // element border_left_width
  var border_left_width = (function (property) {
      _inherits(border_left_width, property);
      function border_left_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_left_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_left_width);
          this.wzElement = "border_left_width";
      }
      border_left_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_left_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_left_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_left_width;
  })(property);
  
  _md.border_left_width = border_left_width;
  // element border_width
  var border_width = (function (property) {
      _inherits(border_width, property);
      function border_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_width);
          this.wzElement = "border_width";
      }
      border_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_width;
  })(property);
  
  _md.border_width = border_width;
  // element border_radius
  var border_radius = (function (property) {
      _inherits(border_radius, property);
      function border_radius(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_radius.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_radius);
          this.wzElement = "border_radius";
      }
      border_radius.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_radius.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_radius.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_radius;
  })(property);
  
  _md.border_radius = border_radius;
  // element border_top_left_radius
  var border_top_left_radius = (function (property) {
      _inherits(border_top_left_radius, property);
      function border_top_left_radius(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_top_left_radius.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_top_left_radius);
          this.wzElement = "border_top_left_radius";
      }
      border_top_left_radius.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_top_left_radius.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_top_left_radius.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_top_left_radius;
  })(property);
  
  _md.border_top_left_radius = border_top_left_radius;
  // element border_top_right_radius
  var border_top_right_radius = (function (property) {
      _inherits(border_top_right_radius, property);
      function border_top_right_radius(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_top_right_radius.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_top_right_radius);
          this.wzElement = "border_top_right_radius";
      }
      border_top_right_radius.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_top_right_radius.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_top_right_radius.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_top_right_radius;
  })(property);
  
  _md.border_top_right_radius = border_top_right_radius;
  // element border_bottom_left_radius
  var border_bottom_left_radius = (function (property) {
      _inherits(border_bottom_left_radius, property);
      function border_bottom_left_radius(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_bottom_left_radius.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_bottom_left_radius);
          this.wzElement = "border_bottom_left_radius";
      }
      border_bottom_left_radius.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_bottom_left_radius.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_bottom_left_radius.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_bottom_left_radius;
  })(property);
  
  _md.border_bottom_left_radius = border_bottom_left_radius;
  // element border_bottom_right_radius
  var border_bottom_right_radius = (function (property) {
      _inherits(border_bottom_right_radius, property);
      function border_bottom_right_radius(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_bottom_right_radius.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_bottom_right_radius);
          this.wzElement = "border_bottom_right_radius";
      }
      border_bottom_right_radius.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_bottom_right_radius.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_bottom_right_radius.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_bottom_right_radius;
  })(property);
  
  _md.border_bottom_right_radius = border_bottom_right_radius;
  // element border_image
  var border_image = (function (property) {
      _inherits(border_image, property);
      function border_image(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_image.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_image);
          this.wzElement = "border_image";
      }
      border_image.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_image.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_image.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_image;
  })(property);
  
  _md.border_image = border_image;
  // element border_image_outset
  var border_image_outset = (function (property) {
      _inherits(border_image_outset, property);
      function border_image_outset(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_image_outset.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_image_outset);
          this.wzElement = "border_image_outset";
      }
      border_image_outset.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_image_outset.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_image_outset.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_image_outset;
  })(property);
  
  _md.border_image_outset = border_image_outset;
  // element border_image_repeat
  var border_image_repeat = (function (property) {
      _inherits(border_image_repeat, property);
      function border_image_repeat(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_image_repeat.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_image_repeat);
          this.wzElement = "border_image_repeat";
      }
      border_image_repeat.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_image_repeat.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_image_repeat.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_image_repeat;
  })(property);
  
  _md.border_image_repeat = border_image_repeat;
  // element border_image_source
  var border_image_source = (function (property) {
      _inherits(border_image_source, property);
      function border_image_source(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_image_source.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_image_source);
          this.wzElement = "border_image_source";
      }
      border_image_source.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_image_source.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_image_source.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_image_source;
  })(property);
  
  _md.border_image_source = border_image_source;
  // element border_image_slice
  var border_image_slice = (function (property) {
      _inherits(border_image_slice, property);
      function border_image_slice(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_image_slice.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_image_slice);
          this.wzElement = "border_image_slice";
      }
      border_image_slice.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_image_slice.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_image_slice.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_image_slice;
  })(property);
  
  _md.border_image_slice = border_image_slice;
  // element border_image_width
  var border_image_width = (function (property) {
      _inherits(border_image_width, property);
      function border_image_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(border_image_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, border_image_width);
          this.wzElement = "border_image_width";
      }
      border_image_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      border_image_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      border_image_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return border_image_width;
  })(property);
  
  _md.border_image_width = border_image_width;
  // element bottom
  var bottom = (function (property) {
      _inherits(bottom, property);
      function bottom(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(bottom.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, bottom);
          this.wzElement = "bottom";
      }
      bottom.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      bottom.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      bottom.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return bottom;
  })(property);
  
  _md.bottom = bottom;
  // element box_sizing
  var box_sizing = (function (property) {
      _inherits(box_sizing, property);
      function box_sizing(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(box_sizing.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, box_sizing);
          this.wzElement = "box_sizing";
      }
      box_sizing.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      box_sizing.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      box_sizing.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return box_sizing;
  })(property);
  
  _md.box_sizing = box_sizing;
  // element box_decoration_break
  var box_decoration_break = (function (property) {
      _inherits(box_decoration_break, property);
      function box_decoration_break(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(box_decoration_break.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, box_decoration_break);
          this.wzElement = "box_decoration_break";
      }
      box_decoration_break.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      box_decoration_break.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      box_decoration_break.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return box_decoration_break;
  })(property);
  
  _md.box_decoration_break = box_decoration_break;
  // element box_shadow
  var box_shadow = (function (property) {
      _inherits(box_shadow, property);
      function box_shadow(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(box_shadow.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, box_shadow);
          this.wzElement = "box_shadow";
      }
      box_shadow.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      box_shadow.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      box_shadow.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return box_shadow;
  })(property);
  
  _md.box_shadow = box_shadow;
  // element break_after
  var break_after = (function (property) {
      _inherits(break_after, property);
      function break_after(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(break_after.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, break_after);
          this.wzElement = "break_after";
      }
      break_after.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      break_after.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      break_after.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return break_after;
  })(property);
  
  _md.break_after = break_after;
  // element break_before
  var break_before = (function (property) {
      _inherits(break_before, property);
      function break_before(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(break_before.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, break_before);
          this.wzElement = "break_before";
      }
      break_before.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      break_before.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      break_before.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return break_before;
  })(property);
  
  _md.break_before = break_before;
  // element break_inside
  var break_inside = (function (property) {
      _inherits(break_inside, property);
      function break_inside(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(break_inside.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, break_inside);
          this.wzElement = "break_inside";
      }
      break_inside.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      break_inside.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      break_inside.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return break_inside;
  })(property);
  
  _md.break_inside = break_inside;
  // element caption_side
  var caption_side = (function (property) {
      _inherits(caption_side, property);
      function caption_side(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(caption_side.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, caption_side);
          this.wzElement = "caption_side";
      }
      caption_side.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      caption_side.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      caption_side.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return caption_side;
  })(property);
  
  _md.caption_side = caption_side;
  // element clear
  var clear = (function (property) {
      _inherits(clear, property);
      function clear(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(clear.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, clear);
          this.wzElement = "clear";
      }
      clear.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      clear.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      clear.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return clear;
  })(property);
  
  _md.clear = clear;
  // element clip
  var clip = (function (property) {
      _inherits(clip, property);
      function clip(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(clip.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, clip);
          this.wzElement = "clip";
      }
      clip.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      clip.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      clip.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return clip;
  })(property);
  
  _md.clip = clip;
  // element color
  var color = (function (property) {
      _inherits(color, property);
      function color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, color);
          this.wzElement = "color";
      }
      color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return color;
  })(property);
  
  _md.color = color;
  // element columns
  var columns = (function (property) {
      _inherits(columns, property);
      function columns(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(columns.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, columns);
          this.wzElement = "columns";
      }
      columns.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      columns.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      columns.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return columns;
  })(property);
  
  _md.columns = columns;
  // element column_count
  var column_count = (function (property) {
      _inherits(column_count, property);
      function column_count(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_count.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_count);
          this.wzElement = "column_count";
      }
      column_count.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_count.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_count.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_count;
  })(property);
  
  _md.column_count = column_count;
  // element column_fill
  var column_fill = (function (property) {
      _inherits(column_fill, property);
      function column_fill(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_fill.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_fill);
          this.wzElement = "column_fill";
      }
      column_fill.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_fill.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_fill.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_fill;
  })(property);
  
  _md.column_fill = column_fill;
  // element column_gap
  var column_gap = (function (property) {
      _inherits(column_gap, property);
      function column_gap(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_gap.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_gap);
          this.wzElement = "column_gap";
      }
      column_gap.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_gap.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_gap.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_gap;
  })(property);
  
  _md.column_gap = column_gap;
  // element column_rule
  var column_rule = (function (property) {
      _inherits(column_rule, property);
      function column_rule(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_rule.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_rule);
          this.wzElement = "column_rule";
      }
      column_rule.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_rule.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_rule.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_rule;
  })(property);
  
  _md.column_rule = column_rule;
  // element column_rule_color
  var column_rule_color = (function (property) {
      _inherits(column_rule_color, property);
      function column_rule_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_rule_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_rule_color);
          this.wzElement = "column_rule_color";
      }
      column_rule_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_rule_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_rule_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_rule_color;
  })(property);
  
  _md.column_rule_color = column_rule_color;
  // element column_rule_style
  var column_rule_style = (function (property) {
      _inherits(column_rule_style, property);
      function column_rule_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_rule_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_rule_style);
          this.wzElement = "column_rule_style";
      }
      column_rule_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_rule_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_rule_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_rule_style;
  })(property);
  
  _md.column_rule_style = column_rule_style;
  // element column_rule_width
  var column_rule_width = (function (property) {
      _inherits(column_rule_width, property);
      function column_rule_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_rule_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_rule_width);
          this.wzElement = "column_rule_width";
      }
      column_rule_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_rule_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_rule_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_rule_width;
  })(property);
  
  _md.column_rule_width = column_rule_width;
  // element column_span
  var column_span = (function (property) {
      _inherits(column_span, property);
      function column_span(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_span.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_span);
          this.wzElement = "column_span";
      }
      column_span.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_span.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_span.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_span;
  })(property);
  
  _md.column_span = column_span;
  // element column_width
  var column_width = (function (property) {
      _inherits(column_width, property);
      function column_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(column_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, column_width);
          this.wzElement = "column_width";
      }
      column_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      column_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      column_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return column_width;
  })(property);
  
  _md.column_width = column_width;
  // element content
  var content = (function (property) {
      _inherits(content, property);
      function content(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(content.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, content);
          this.wzElement = "content";
      }
      content.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      content.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      content.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return content;
  })(property);
  
  _md.content = content;
  // element counter_increment
  var counter_increment = (function (property) {
      _inherits(counter_increment, property);
      function counter_increment(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(counter_increment.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, counter_increment);
          this.wzElement = "counter_increment";
      }
      counter_increment.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      counter_increment.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      counter_increment.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return counter_increment;
  })(property);
  
  _md.counter_increment = counter_increment;
  // element counter_reset
  var counter_reset = (function (property) {
      _inherits(counter_reset, property);
      function counter_reset(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(counter_reset.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, counter_reset);
          this.wzElement = "counter_reset";
      }
      counter_reset.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      counter_reset.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      counter_reset.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return counter_reset;
  })(property);
  
  _md.counter_reset = counter_reset;
  // element cue_after
  var cue_after = (function (property) {
      _inherits(cue_after, property);
      function cue_after(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(cue_after.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, cue_after);
          this.wzElement = "cue_after";
      }
      cue_after.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      cue_after.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      cue_after.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return cue_after;
  })(property);
  
  _md.cue_after = cue_after;
  // element cue_before
  var cue_before = (function (property) {
      _inherits(cue_before, property);
      function cue_before(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(cue_before.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, cue_before);
          this.wzElement = "cue_before";
      }
      cue_before.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      cue_before.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      cue_before.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return cue_before;
  })(property);
  
  _md.cue_before = cue_before;
  // element cue
  var cue = (function (property) {
      _inherits(cue, property);
      function cue(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(cue.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, cue);
          this.wzElement = "cue";
      }
      cue.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      cue.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      cue.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return cue;
  })(property);
  
  _md.cue = cue;
  // element cursor
  var cursor = (function (property) {
      _inherits(cursor, property);
      function cursor(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(cursor.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, cursor);
          this.wzElement = "cursor";
      }
      cursor.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      cursor.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      cursor.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return cursor;
  })(property);
  
  _md.cursor = cursor;
  // element direction
  var direction = (function (property) {
      _inherits(direction, property);
      function direction(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(direction.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, direction);
          this.wzElement = "direction";
      }
      direction.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      direction.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      direction.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return direction;
  })(property);
  
  _md.direction = direction;
  // element display
  var display = (function (property) {
      _inherits(display, property);
      function display(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(display.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, display);
          this.wzElement = "display";
      }
      display.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      display.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      display.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return display;
  })(property);
  
  _md.display = display;
  // element elevation
  var elevation = (function (property) {
      _inherits(elevation, property);
      function elevation(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(elevation.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, elevation);
          this.wzElement = "elevation";
      }
      elevation.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      elevation.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      elevation.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return elevation;
  })(property);
  
  _md.elevation = elevation;
  // element empty_cells
  var empty_cells = (function (property) {
      _inherits(empty_cells, property);
      function empty_cells(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(empty_cells.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, empty_cells);
          this.wzElement = "empty_cells";
      }
      empty_cells.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      empty_cells.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      empty_cells.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return empty_cells;
  })(property);
  
  _md.empty_cells = empty_cells;
  // element filter
  var filter = (function (property) {
      _inherits(filter, property);
      function filter(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(filter.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, filter);
          this.wzElement = "filter";
      }
      filter.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      filter.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      filter.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return filter;
  })(property);
  
  _md.filter = filter;
  // element flex
  var flex = (function (property) {
      _inherits(flex, property);
      function flex(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(flex.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, flex);
          this.wzElement = "flex";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.basis = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.direction = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.flow = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.grow = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.shrink = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.wrap = null
      }
      flex.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      flex.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.basis)) {
              result["basis"] = this.basis;
          }
          if (!isEmpty(this.direction)) {
              result["direction"] = this.direction;
          }
          if (!isEmpty(this.flow)) {
              result["flow"] = this.flow;
          }
          if (!isEmpty(this.grow)) {
              result["grow"] = this.grow;
          }
          if (!isEmpty(this.shrink)) {
              result["shrink"] = this.shrink;
          }
          if (!isEmpty(this.wrap)) {
              result["wrap"] = this.wrap;
          }
      }
      flex.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      flex.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 4 && _ch == 'f') {
              if (name === 'flow') {
                  this.flow = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 'g') {
              if (name === 'grow') {
                  this.grow = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 'w') {
              if (name === 'wrap') {
                  this.wrap = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'b') {
              if (name === 'basis') {
                  this.basis = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 's') {
              if (name === 'shrink') {
                  this.shrink = child.v; return true;
              }
          }
          if (_l == 9 && _ch == 'd') {
              if (name === 'direction') {
                  this.direction = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      flex.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return flex;
  })(property);
  
  _md.flex = flex;
  // element flex_basis
  var flex_basis = (function (property) {
      _inherits(flex_basis, property);
      function flex_basis(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(flex_basis.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, flex_basis);
          this.wzElement = "flex_basis";
      }
      flex_basis.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      flex_basis.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      flex_basis.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return flex_basis;
  })(property);
  
  _md.flex_basis = flex_basis;
  // element flex_direction
  var flex_direction = (function (property) {
      _inherits(flex_direction, property);
      function flex_direction(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(flex_direction.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, flex_direction);
          this.wzElement = "flex_direction";
      }
      flex_direction.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      flex_direction.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      flex_direction.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return flex_direction;
  })(property);
  
  _md.flex_direction = flex_direction;
  // element flex_flow
  var flex_flow = (function (property) {
      _inherits(flex_flow, property);
      function flex_flow(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(flex_flow.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, flex_flow);
          this.wzElement = "flex_flow";
      }
      flex_flow.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      flex_flow.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      flex_flow.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return flex_flow;
  })(property);
  
  _md.flex_flow = flex_flow;
  // element flex_grow
  var flex_grow = (function (property) {
      _inherits(flex_grow, property);
      function flex_grow(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(flex_grow.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, flex_grow);
          this.wzElement = "flex_grow";
      }
      flex_grow.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      flex_grow.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      flex_grow.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return flex_grow;
  })(property);
  
  _md.flex_grow = flex_grow;
  // element flex_shrink
  var flex_shrink = (function (property) {
      _inherits(flex_shrink, property);
      function flex_shrink(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(flex_shrink.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, flex_shrink);
          this.wzElement = "flex_shrink";
      }
      flex_shrink.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      flex_shrink.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      flex_shrink.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return flex_shrink;
  })(property);
  
  _md.flex_shrink = flex_shrink;
  // element flex_wrap
  var flex_wrap = (function (property) {
      _inherits(flex_wrap, property);
      function flex_wrap(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(flex_wrap.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, flex_wrap);
          this.wzElement = "flex_wrap";
      }
      flex_wrap.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      flex_wrap.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      flex_wrap.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return flex_wrap;
  })(property);
  
  _md.flex_wrap = flex_wrap;
  // element fill
  var fill = (function (property) {
      _inherits(fill, property);
      function fill(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(fill.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, fill);
          this.wzElement = "fill";
      }
      fill.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      fill.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      fill.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return fill;
  })(property);
  
  _md.fill = fill;
  // element xfloat
  var xfloat = (function (property) {
      _inherits(xfloat, property);
      function xfloat(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(xfloat.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, xfloat);
          this.wzElement = "xfloat";
      }
      xfloat.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      xfloat.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      xfloat.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return xfloat;
  })(property);
  
  _md.xfloat = xfloat;
  // element font
  var font = (function (property) {
      _inherits(font, property);
      function font(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(font.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, font);
          this.wzElement = "font";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.family = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.size = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.style = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.variant = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.weight = null
      }
      font.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      font.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.family)) {
              result["family"] = this.family;
          }
          if (!isEmpty(this.size)) {
              result["size"] = this.size;
          }
          if (!isEmpty(this.style)) {
              result["style"] = this.style;
          }
          if (!isEmpty(this.variant)) {
              result["variant"] = this.variant;
          }
          if (!isEmpty(this.weight)) {
              result["weight"] = this.weight;
          }
      }
      font.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      font.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 4 && _ch == 's') {
              if (name === 'size') {
                  this.size = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 's') {
              if (name === 'style') {
                  this.style = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'f') {
              if (name === 'family') {
                  this.family = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'w') {
              if (name === 'weight') {
                  this.weight = child.v; return true;
              }
          }
          if (_l == 7 && _ch == 'v') {
              if (name === 'variant') {
                  this.variant = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      font.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return font;
  })(property);
  
  _md.font = font;
  // element font_family
  var font_family = (function (property) {
      _inherits(font_family, property);
      function font_family(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(font_family.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, font_family);
          this.wzElement = "font_family";
      }
      font_family.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      font_family.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      font_family.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return font_family;
  })(property);
  
  _md.font_family = font_family;
  // element font_size
  var font_size = (function (property) {
      _inherits(font_size, property);
      function font_size(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(font_size.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, font_size);
          this.wzElement = "font_size";
      }
      font_size.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      font_size.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      font_size.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return font_size;
  })(property);
  
  _md.font_size = font_size;
  // element font_style
  var font_style = (function (property) {
      _inherits(font_style, property);
      function font_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(font_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, font_style);
          this.wzElement = "font_style";
      }
      font_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      font_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      font_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return font_style;
  })(property);
  
  _md.font_style = font_style;
  // element font_variant
  var font_variant = (function (property) {
      _inherits(font_variant, property);
      function font_variant(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(font_variant.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, font_variant);
          this.wzElement = "font_variant";
      }
      font_variant.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      font_variant.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      font_variant.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return font_variant;
  })(property);
  
  _md.font_variant = font_variant;
  // element font_weight
  var font_weight = (function (property) {
      _inherits(font_weight, property);
      function font_weight(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(font_weight.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, font_weight);
          this.wzElement = "font_weight";
      }
      font_weight.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      font_weight.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      font_weight.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return font_weight;
  })(property);
  
  _md.font_weight = font_weight;
  // element grid_template_columns
  var grid_template_columns = (function (property) {
      _inherits(grid_template_columns, property);
      function grid_template_columns(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_template_columns.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_template_columns);
          this.wzElement = "grid_template_columns";
      }
      grid_template_columns.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_template_columns.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_template_columns.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_template_columns;
  })(property);
  
  _md.grid_template_columns = grid_template_columns;
  // element grid_template_rows
  var grid_template_rows = (function (property) {
      _inherits(grid_template_rows, property);
      function grid_template_rows(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_template_rows.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_template_rows);
          this.wzElement = "grid_template_rows";
      }
      grid_template_rows.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_template_rows.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_template_rows.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_template_rows;
  })(property);
  
  _md.grid_template_rows = grid_template_rows;
  // element gridTemplateAreas
  var gridTemplateAreas = (function (property) {
      _inherits(gridTemplateAreas, property);
      function gridTemplateAreas(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(gridTemplateAreas.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, gridTemplateAreas);
          this.wzElement = "gridTemplateAreas";
      }
      gridTemplateAreas.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      gridTemplateAreas.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      gridTemplateAreas.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      gridTemplateAreas.prototype.wzInitialize = function(ctx) {
          var sb = [this.wzName];
          var i, i_items=this.properties, i_len=this.properties.length, item;
          for (i=0; i<i_len; i++) {
              item = this.properties[i];
              sb.push('"' + item.wzName + '"\n    ');
          }
          this.wzName = sb.join(' ');
          _md.property.prototype.wzInitialize.call(this, ctx);
      }
      return gridTemplateAreas;
  })(property);
  
  _md.gridTemplateAreas = gridTemplateAreas;
  // element grid
  var grid = (function (property) {
      _inherits(grid, property);
      function grid(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid);
          this.wzElement = "grid";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.column_gap = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.row_gap = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.gap = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.auto_columns = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.auto_rows = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.column_start = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.column_end = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.row_start = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.row_end = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.column = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.row = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.area = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.template_columns = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.template_rows = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.template_areas = null
      }
      grid.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.column_gap)) {
              result["column_gap"] = this.column_gap;
          }
          if (!isEmpty(this.row_gap)) {
              result["row_gap"] = this.row_gap;
          }
          if (!isEmpty(this.gap)) {
              result["gap"] = this.gap;
          }
          if (!isEmpty(this.auto_columns)) {
              result["auto_columns"] = this.auto_columns;
          }
          if (!isEmpty(this.auto_rows)) {
              result["auto_rows"] = this.auto_rows;
          }
          if (!isEmpty(this.column_start)) {
              result["column_start"] = this.column_start;
          }
          if (!isEmpty(this.column_end)) {
              result["column_end"] = this.column_end;
          }
          if (!isEmpty(this.row_start)) {
              result["row_start"] = this.row_start;
          }
          if (!isEmpty(this.row_end)) {
              result["row_end"] = this.row_end;
          }
          if (!isEmpty(this.column)) {
              result["column"] = this.column;
          }
          if (!isEmpty(this.row)) {
              result["row"] = this.row;
          }
          if (!isEmpty(this.area)) {
              result["area"] = this.area;
          }
          if (!isEmpty(this.template_columns)) {
              result["template_columns"] = this.template_columns;
          }
          if (!isEmpty(this.template_rows)) {
              result["template_rows"] = this.template_rows;
          }
          if (!isEmpty(this.template_areas)) {
              result["template_areas"] = this.template_areas;
          }
      }
      grid.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      grid.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 3 && _ch == 'g') {
              if (name === 'gap') {
                  this.gap = child.v; return true;
              }
          }
          if (_l == 3 && _ch == 'r') {
              if (name === 'row') {
                  this.row = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 'a') {
              if (name === 'area') {
                  this.area = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'c') {
              if (name === 'column') {
                  this.column = child.v; return true;
              }
          }
          if (_l == 7 && _ch == 'r') {
              if (name === 'row-gap') {
                  this.row_gap = child.v; return true;
              }
              else if (name === 'row_gap') {
                  this.row_gap = child.v; return true;
              }
              else if (name === 'row-end') {
                  this.row_end = child.v; return true;
              }
              else if (name === 'row_end') {
                  this.row_end = child.v; return true;
              }
          }
          if (_l == 9 && _ch == 'a') {
              if (name === 'auto-rows') {
                  this.auto_rows = child.v; return true;
              }
              else if (name === 'auto_rows') {
                  this.auto_rows = child.v; return true;
              }
          }
          if (_l == 9 && _ch == 'r') {
              if (name === 'row-start') {
                  this.row_start = child.v; return true;
              }
              else if (name === 'row_start') {
                  this.row_start = child.v; return true;
              }
          }
          if (_l == 10 && _ch == 'c') {
              if (name === 'column-gap') {
                  this.column_gap = child.v; return true;
              }
              else if (name === 'column_gap') {
                  this.column_gap = child.v; return true;
              }
              else if (name === 'column-end') {
                  this.column_end = child.v; return true;
              }
              else if (name === 'column_end') {
                  this.column_end = child.v; return true;
              }
          }
          if (_l == 12 && _ch == 'a') {
              if (name === 'auto-columns') {
                  this.auto_columns = child.v; return true;
              }
              else if (name === 'auto_columns') {
                  this.auto_columns = child.v; return true;
              }
          }
          if (_l == 12 && _ch == 'c') {
              if (name === 'column-start') {
                  this.column_start = child.v; return true;
              }
              else if (name === 'column_start') {
                  this.column_start = child.v; return true;
              }
          }
          if (_l == 13 && _ch == 't') {
              if (name === 'template-rows') {
                  this.template_rows = child.v; return true;
              }
              else if (name === 'template_rows') {
                  this.template_rows = child.v; return true;
              }
          }
          if (_l == 14 && _ch == 't') {
              if (name === 'template-areas') {
                  this.template_areas = child.v; return true;
              }
              else if (name === 'template_areas') {
                  this.template_areas = child.v; return true;
              }
          }
          if (_l == 16 && _ch == 't') {
              if (name === 'template-columns') {
                  this.template_columns = child.v; return true;
              }
              else if (name === 'template_columns') {
                  this.template_columns = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      grid.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return grid;
  })(property);
  
  _md.grid = grid;
  // element grid_column_gap
  var grid_column_gap = (function (property) {
      _inherits(grid_column_gap, property);
      function grid_column_gap(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_column_gap.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_column_gap);
          this.wzElement = "grid_column_gap";
      }
      grid_column_gap.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_column_gap.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_column_gap.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_column_gap;
  })(property);
  
  _md.grid_column_gap = grid_column_gap;
  // element grid_row_gap
  var grid_row_gap = (function (property) {
      _inherits(grid_row_gap, property);
      function grid_row_gap(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_row_gap.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_row_gap);
          this.wzElement = "grid_row_gap";
      }
      grid_row_gap.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_row_gap.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_row_gap.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_row_gap;
  })(property);
  
  _md.grid_row_gap = grid_row_gap;
  // element grid_gap
  var grid_gap = (function (property) {
      _inherits(grid_gap, property);
      function grid_gap(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_gap.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_gap);
          this.wzElement = "grid_gap";
      }
      grid_gap.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_gap.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_gap.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_gap;
  })(property);
  
  _md.grid_gap = grid_gap;
  // element grid_auto_columns
  var grid_auto_columns = (function (property) {
      _inherits(grid_auto_columns, property);
      function grid_auto_columns(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_auto_columns.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_auto_columns);
          this.wzElement = "grid_auto_columns";
      }
      grid_auto_columns.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_auto_columns.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_auto_columns.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_auto_columns;
  })(property);
  
  _md.grid_auto_columns = grid_auto_columns;
  // element grid_auto_rows
  var grid_auto_rows = (function (property) {
      _inherits(grid_auto_rows, property);
      function grid_auto_rows(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_auto_rows.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_auto_rows);
          this.wzElement = "grid_auto_rows";
      }
      grid_auto_rows.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_auto_rows.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_auto_rows.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_auto_rows;
  })(property);
  
  _md.grid_auto_rows = grid_auto_rows;
  // element grid_auto_flow
  var grid_auto_flow = (function (property) {
      _inherits(grid_auto_flow, property);
      function grid_auto_flow(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_auto_flow.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_auto_flow);
          this.wzElement = "grid_auto_flow";
      }
      grid_auto_flow.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_auto_flow.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_auto_flow.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_auto_flow;
  })(property);
  
  _md.grid_auto_flow = grid_auto_flow;
  // element grid_column_start
  var grid_column_start = (function (property) {
      _inherits(grid_column_start, property);
      function grid_column_start(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_column_start.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_column_start);
          this.wzElement = "grid_column_start";
      }
      grid_column_start.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_column_start.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_column_start.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_column_start;
  })(property);
  
  _md.grid_column_start = grid_column_start;
  // element grid_column_end
  var grid_column_end = (function (property) {
      _inherits(grid_column_end, property);
      function grid_column_end(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_column_end.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_column_end);
          this.wzElement = "grid_column_end";
      }
      grid_column_end.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_column_end.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_column_end.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_column_end;
  })(property);
  
  _md.grid_column_end = grid_column_end;
  // element grid_row_start
  var grid_row_start = (function (property) {
      _inherits(grid_row_start, property);
      function grid_row_start(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_row_start.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_row_start);
          this.wzElement = "grid_row_start";
      }
      grid_row_start.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_row_start.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_row_start.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_row_start;
  })(property);
  
  _md.grid_row_start = grid_row_start;
  // element grid_row_end
  var grid_row_end = (function (property) {
      _inherits(grid_row_end, property);
      function grid_row_end(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_row_end.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_row_end);
          this.wzElement = "grid_row_end";
      }
      grid_row_end.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_row_end.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_row_end.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_row_end;
  })(property);
  
  _md.grid_row_end = grid_row_end;
  // element grid_column
  var grid_column = (function (property) {
      _inherits(grid_column, property);
      function grid_column(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_column.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_column);
          this.wzElement = "grid_column";
      }
      grid_column.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_column.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_column.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_column;
  })(property);
  
  _md.grid_column = grid_column;
  // element grid_row
  var grid_row = (function (property) {
      _inherits(grid_row, property);
      function grid_row(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_row.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_row);
          this.wzElement = "grid_row";
      }
      grid_row.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_row.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_row.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_row;
  })(property);
  
  _md.grid_row = grid_row;
  // element grid_area
  var grid_area = (function (property) {
      _inherits(grid_area, property);
      function grid_area(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(grid_area.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, grid_area);
          this.wzElement = "grid_area";
      }
      grid_area.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      grid_area.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      grid_area.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return grid_area;
  })(property);
  
  _md.grid_area = grid_area;
  // element hanging_punctuation
  var hanging_punctuation = (function (property) {
      _inherits(hanging_punctuation, property);
      function hanging_punctuation(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(hanging_punctuation.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, hanging_punctuation);
          this.wzElement = "hanging_punctuation";
      }
      hanging_punctuation.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      hanging_punctuation.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      hanging_punctuation.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return hanging_punctuation;
  })(property);
  
  _md.hanging_punctuation = hanging_punctuation;
  // element height
  var height = (function (property) {
      _inherits(height, property);
      function height(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(height.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, height);
          this.wzElement = "height";
      }
      height.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      height.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      height.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return height;
  })(property);
  
  _md.height = height;
  // element hyphens
  var hyphens = (function (property) {
      _inherits(hyphens, property);
      function hyphens(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(hyphens.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, hyphens);
          this.wzElement = "hyphens";
      }
      hyphens.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      hyphens.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      hyphens.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return hyphens;
  })(property);
  
  _md.hyphens = hyphens;
  // element isolation
  var isolation = (function (property) {
      _inherits(isolation, property);
      function isolation(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(isolation.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, isolation);
          this.wzElement = "isolation";
      }
      isolation.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      isolation.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      isolation.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return isolation;
  })(property);
  
  _md.isolation = isolation;
  // element justify_content
  var justify_content = (function (property) {
      _inherits(justify_content, property);
      function justify_content(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(justify_content.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, justify_content);
          this.wzElement = "justify_content";
      }
      justify_content.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      justify_content.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      justify_content.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return justify_content;
  })(property);
  
  _md.justify_content = justify_content;
  // element justify_items
  var justify_items = (function (property) {
      _inherits(justify_items, property);
      function justify_items(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(justify_items.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, justify_items);
          this.wzElement = "justify_items";
      }
      justify_items.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      justify_items.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      justify_items.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return justify_items;
  })(property);
  
  _md.justify_items = justify_items;
  // element justify_self
  var justify_self = (function (property) {
      _inherits(justify_self, property);
      function justify_self(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(justify_self.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, justify_self);
          this.wzElement = "justify_self";
      }
      justify_self.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      justify_self.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      justify_self.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return justify_self;
  })(property);
  
  _md.justify_self = justify_self;
  // element left
  var left = (function (property) {
      _inherits(left, property);
      function left(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(left.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, left);
          this.wzElement = "left";
      }
      left.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      left.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      left.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return left;
  })(property);
  
  _md.left = left;
  // element letter_spacing
  var letter_spacing = (function (property) {
      _inherits(letter_spacing, property);
      function letter_spacing(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(letter_spacing.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, letter_spacing);
          this.wzElement = "letter_spacing";
      }
      letter_spacing.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      letter_spacing.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      letter_spacing.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return letter_spacing;
  })(property);
  
  _md.letter_spacing = letter_spacing;
  // element line_break
  var line_break = (function (property) {
      _inherits(line_break, property);
      function line_break(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(line_break.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, line_break);
          this.wzElement = "line_break";
      }
      line_break.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      line_break.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      line_break.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return line_break;
  })(property);
  
  _md.line_break = line_break;
  // element line_height
  var line_height = (function (property) {
      _inherits(line_height, property);
      function line_height(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(line_height.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, line_height);
          this.wzElement = "line_height";
      }
      line_height.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      line_height.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      line_height.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return line_height;
  })(property);
  
  _md.line_height = line_height;
  // element list_style_image
  var list_style_image = (function (property) {
      _inherits(list_style_image, property);
      function list_style_image(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(list_style_image.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, list_style_image);
          this.wzElement = "list_style_image";
      }
      list_style_image.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      list_style_image.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      list_style_image.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return list_style_image;
  })(property);
  
  _md.list_style_image = list_style_image;
  // element list_style_position
  var list_style_position = (function (property) {
      _inherits(list_style_position, property);
      function list_style_position(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(list_style_position.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, list_style_position);
          this.wzElement = "list_style_position";
      }
      list_style_position.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      list_style_position.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      list_style_position.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return list_style_position;
  })(property);
  
  _md.list_style_position = list_style_position;
  // element list_style_type
  var list_style_type = (function (property) {
      _inherits(list_style_type, property);
      function list_style_type(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(list_style_type.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, list_style_type);
          this.wzElement = "list_style_type";
      }
      list_style_type.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      list_style_type.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      list_style_type.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return list_style_type;
  })(property);
  
  _md.list_style_type = list_style_type;
  // element list_style
  var list_style = (function (property) {
      _inherits(list_style, property);
      function list_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(list_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, list_style);
          this.wzElement = "list_style";
      }
      list_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      list_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      list_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return list_style;
  })(property);
  
  _md.list_style = list_style;
  // element margin_right
  var margin_right = (function (property) {
      _inherits(margin_right, property);
      function margin_right(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(margin_right.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, margin_right);
          this.wzElement = "margin_right";
      }
      margin_right.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      margin_right.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      margin_right.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return margin_right;
  })(property);
  
  _md.margin_right = margin_right;
  // element margin_top
  var margin_top = (function (property) {
      _inherits(margin_top, property);
      function margin_top(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(margin_top.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, margin_top);
          this.wzElement = "margin_top";
      }
      margin_top.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      margin_top.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      margin_top.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return margin_top;
  })(property);
  
  _md.margin_top = margin_top;
  // element margin_bottom
  var margin_bottom = (function (property) {
      _inherits(margin_bottom, property);
      function margin_bottom(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(margin_bottom.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, margin_bottom);
          this.wzElement = "margin_bottom";
      }
      margin_bottom.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      margin_bottom.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      margin_bottom.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return margin_bottom;
  })(property);
  
  _md.margin_bottom = margin_bottom;
  // element margin_left
  var margin_left = (function (property) {
      _inherits(margin_left, property);
      function margin_left(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(margin_left.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, margin_left);
          this.wzElement = "margin_left";
      }
      margin_left.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      margin_left.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      margin_left.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return margin_left;
  })(property);
  
  _md.margin_left = margin_left;
  // element margin
  var margin = (function (property) {
      _inherits(margin, property);
      function margin(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(margin.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, margin);
          this.wzElement = "margin";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.top = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.right = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.left = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.bottom = null
      }
      margin.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      margin.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.top)) {
              result["top"] = this.top;
          }
          if (!isEmpty(this.right)) {
              result["right"] = this.right;
          }
          if (!isEmpty(this.left)) {
              result["left"] = this.left;
          }
          if (!isEmpty(this.bottom)) {
              result["bottom"] = this.bottom;
          }
      }
      margin.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      margin.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 3 && _ch == 't') {
              if (name === 'top') {
                  this.top = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 'l') {
              if (name === 'left') {
                  this.left = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'r') {
              if (name === 'right') {
                  this.right = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'b') {
              if (name === 'bottom') {
                  this.bottom = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      margin.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return margin;
  })(property);
  
  _md.margin = margin;
  // element max_height
  var max_height = (function (property) {
      _inherits(max_height, property);
      function max_height(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(max_height.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, max_height);
          this.wzElement = "max_height";
      }
      max_height.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      max_height.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      max_height.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return max_height;
  })(property);
  
  _md.max_height = max_height;
  // element max_width
  var max_width = (function (property) {
      _inherits(max_width, property);
      function max_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(max_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, max_width);
          this.wzElement = "max_width";
      }
      max_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      max_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      max_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return max_width;
  })(property);
  
  _md.max_width = max_width;
  // element min_height
  var min_height = (function (property) {
      _inherits(min_height, property);
      function min_height(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(min_height.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, min_height);
          this.wzElement = "min_height";
      }
      min_height.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      min_height.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      min_height.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return min_height;
  })(property);
  
  _md.min_height = min_height;
  // element min_width
  var min_width = (function (property) {
      _inherits(min_width, property);
      function min_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(min_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, min_width);
          this.wzElement = "min_width";
      }
      min_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      min_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      min_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return min_width;
  })(property);
  
  _md.min_width = min_width;
  // element mix_blend_mode
  var mix_blend_mode = (function (property) {
      _inherits(mix_blend_mode, property);
      function mix_blend_mode(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(mix_blend_mode.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, mix_blend_mode);
          this.wzElement = "mix_blend_mode";
      }
      mix_blend_mode.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      mix_blend_mode.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      mix_blend_mode.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return mix_blend_mode;
  })(property);
  
  _md.mix_blend_mode = mix_blend_mode;
  // element nav_up
  var nav_up = (function (property) {
      _inherits(nav_up, property);
      function nav_up(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(nav_up.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, nav_up);
          this.wzElement = "nav_up";
      }
      nav_up.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      nav_up.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      nav_up.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return nav_up;
  })(property);
  
  _md.nav_up = nav_up;
  // element nav_down
  var nav_down = (function (property) {
      _inherits(nav_down, property);
      function nav_down(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(nav_down.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, nav_down);
          this.wzElement = "nav_down";
      }
      nav_down.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      nav_down.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      nav_down.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return nav_down;
  })(property);
  
  _md.nav_down = nav_down;
  // element nav_left
  var nav_left = (function (property) {
      _inherits(nav_left, property);
      function nav_left(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(nav_left.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, nav_left);
          this.wzElement = "nav_left";
      }
      nav_left.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      nav_left.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      nav_left.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return nav_left;
  })(property);
  
  _md.nav_left = nav_left;
  // element nav_right
  var nav_right = (function (property) {
      _inherits(nav_right, property);
      function nav_right(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(nav_right.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, nav_right);
          this.wzElement = "nav_right";
      }
      nav_right.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      nav_right.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      nav_right.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return nav_right;
  })(property);
  
  _md.nav_right = nav_right;
  // element opacity
  var opacity = (function (property) {
      _inherits(opacity, property);
      function opacity(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(opacity.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, opacity);
          this.wzElement = "opacity";
      }
      opacity.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      opacity.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      opacity.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return opacity;
  })(property);
  
  _md.opacity = opacity;
  // element order
  var order = (function (property) {
      _inherits(order, property);
      function order(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(order.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, order);
          this.wzElement = "order";
      }
      order.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      order.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      order.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return order;
  })(property);
  
  _md.order = order;
  // element orphans
  var orphans = (function (property) {
      _inherits(orphans, property);
      function orphans(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(orphans.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, orphans);
          this.wzElement = "orphans";
      }
      orphans.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      orphans.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      orphans.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return orphans;
  })(property);
  
  _md.orphans = orphans;
  // element outline
  var outline = (function (property) {
      _inherits(outline, property);
      function outline(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(outline.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, outline);
          this.wzElement = "outline";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.color = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.style = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.width = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.offset = null
      }
      outline.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      outline.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.color)) {
              result["color"] = this.color;
          }
          if (!isEmpty(this.style)) {
              result["style"] = this.style;
          }
          if (!isEmpty(this.width)) {
              result["width"] = this.width;
          }
          if (!isEmpty(this.offset)) {
              result["offset"] = this.offset;
          }
      }
      outline.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      outline.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 5 && _ch == 'c') {
              if (name === 'color') {
                  this.color = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 's') {
              if (name === 'style') {
                  this.style = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'w') {
              if (name === 'width') {
                  this.width = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'o') {
              if (name === 'offset') {
                  this.offset = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      outline.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return outline;
  })(property);
  
  _md.outline = outline;
  // element outline_color
  var outline_color = (function (property) {
      _inherits(outline_color, property);
      function outline_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(outline_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, outline_color);
          this.wzElement = "outline_color";
      }
      outline_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      outline_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      outline_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return outline_color;
  })(property);
  
  _md.outline_color = outline_color;
  // element outline_style
  var outline_style = (function (property) {
      _inherits(outline_style, property);
      function outline_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(outline_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, outline_style);
          this.wzElement = "outline_style";
      }
      outline_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      outline_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      outline_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return outline_style;
  })(property);
  
  _md.outline_style = outline_style;
  // element outline_width
  var outline_width = (function (property) {
      _inherits(outline_width, property);
      function outline_width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(outline_width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, outline_width);
          this.wzElement = "outline_width";
      }
      outline_width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      outline_width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      outline_width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return outline_width;
  })(property);
  
  _md.outline_width = outline_width;
  // element outline_offset
  var outline_offset = (function (property) {
      _inherits(outline_offset, property);
      function outline_offset(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(outline_offset.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, outline_offset);
          this.wzElement = "outline_offset";
      }
      outline_offset.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      outline_offset.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      outline_offset.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return outline_offset;
  })(property);
  
  _md.outline_offset = outline_offset;
  // element overflow
  var overflow = (function (property) {
      _inherits(overflow, property);
      function overflow(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(overflow.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, overflow);
          this.wzElement = "overflow";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.wrap = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.x = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.y = null
      }
      overflow.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      overflow.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.wrap)) {
              result["wrap"] = this.wrap;
          }
          if (!isEmpty(this.x)) {
              result["x"] = this.x;
          }
          if (!isEmpty(this.y)) {
              result["y"] = this.y;
          }
      }
      overflow.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      overflow.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 1 && _ch == 'x') {
              if (name === 'x') {
                  this.x = child.v; return true;
              }
          }
          if (_l == 1 && _ch == 'y') {
              if (name === 'y') {
                  this.y = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 'w') {
              if (name === 'wrap') {
                  this.wrap = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      overflow.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return overflow;
  })(property);
  
  _md.overflow = overflow;
  // element overflow_wrap
  var overflow_wrap = (function (property) {
      _inherits(overflow_wrap, property);
      function overflow_wrap(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(overflow_wrap.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, overflow_wrap);
          this.wzElement = "overflow_wrap";
      }
      overflow_wrap.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      overflow_wrap.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      overflow_wrap.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return overflow_wrap;
  })(property);
  
  _md.overflow_wrap = overflow_wrap;
  // element overflow_x
  var overflow_x = (function (property) {
      _inherits(overflow_x, property);
      function overflow_x(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(overflow_x.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, overflow_x);
          this.wzElement = "overflow_x";
      }
      overflow_x.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      overflow_x.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      overflow_x.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return overflow_x;
  })(property);
  
  _md.overflow_x = overflow_x;
  // element overflow_y
  var overflow_y = (function (property) {
      _inherits(overflow_y, property);
      function overflow_y(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(overflow_y.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, overflow_y);
          this.wzElement = "overflow_y";
      }
      overflow_y.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      overflow_y.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      overflow_y.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return overflow_y;
  })(property);
  
  _md.overflow_y = overflow_y;
  // element padding_top
  var padding_top = (function (property) {
      _inherits(padding_top, property);
      function padding_top(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(padding_top.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, padding_top);
          this.wzElement = "padding_top";
      }
      padding_top.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      padding_top.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      padding_top.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return padding_top;
  })(property);
  
  _md.padding_top = padding_top;
  // element padding_right
  var padding_right = (function (property) {
      _inherits(padding_right, property);
      function padding_right(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(padding_right.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, padding_right);
          this.wzElement = "padding_right";
      }
      padding_right.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      padding_right.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      padding_right.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return padding_right;
  })(property);
  
  _md.padding_right = padding_right;
  // element padding_bottom
  var padding_bottom = (function (property) {
      _inherits(padding_bottom, property);
      function padding_bottom(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(padding_bottom.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, padding_bottom);
          this.wzElement = "padding_bottom";
      }
      padding_bottom.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      padding_bottom.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      padding_bottom.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return padding_bottom;
  })(property);
  
  _md.padding_bottom = padding_bottom;
  // element padding_left
  var padding_left = (function (property) {
      _inherits(padding_left, property);
      function padding_left(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(padding_left.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, padding_left);
          this.wzElement = "padding_left";
      }
      padding_left.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      padding_left.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      padding_left.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return padding_left;
  })(property);
  
  _md.padding_left = padding_left;
  // element padding
  var padding = (function (property) {
      _inherits(padding, property);
      function padding(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(padding.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, padding);
          this.wzElement = "padding";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.top = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.right = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.left = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.bottom = null
      }
      padding.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      padding.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.top)) {
              result["top"] = this.top;
          }
          if (!isEmpty(this.right)) {
              result["right"] = this.right;
          }
          if (!isEmpty(this.left)) {
              result["left"] = this.left;
          }
          if (!isEmpty(this.bottom)) {
              result["bottom"] = this.bottom;
          }
      }
      padding.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      padding.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 3 && _ch == 't') {
              if (name === 'top') {
                  this.top = child.v; return true;
              }
          }
          if (_l == 4 && _ch == 'l') {
              if (name === 'left') {
                  this.left = child.v; return true;
              }
          }
          if (_l == 5 && _ch == 'r') {
              if (name === 'right') {
                  this.right = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'b') {
              if (name === 'bottom') {
                  this.bottom = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      padding.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return padding;
  })(property);
  
  _md.padding = padding;
  // element page_break_after
  var page_break_after = (function (property) {
      _inherits(page_break_after, property);
      function page_break_after(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(page_break_after.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, page_break_after);
          this.wzElement = "page_break_after";
      }
      page_break_after.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      page_break_after.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      page_break_after.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return page_break_after;
  })(property);
  
  _md.page_break_after = page_break_after;
  // element page_break_before
  var page_break_before = (function (property) {
      _inherits(page_break_before, property);
      function page_break_before(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(page_break_before.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, page_break_before);
          this.wzElement = "page_break_before";
      }
      page_break_before.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      page_break_before.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      page_break_before.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return page_break_before;
  })(property);
  
  _md.page_break_before = page_break_before;
  // element page_break_inside
  var page_break_inside = (function (property) {
      _inherits(page_break_inside, property);
      function page_break_inside(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(page_break_inside.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, page_break_inside);
          this.wzElement = "page_break_inside";
      }
      page_break_inside.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      page_break_inside.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      page_break_inside.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return page_break_inside;
  })(property);
  
  _md.page_break_inside = page_break_inside;
  // element pause_after
  var pause_after = (function (property) {
      _inherits(pause_after, property);
      function pause_after(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(pause_after.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, pause_after);
          this.wzElement = "pause_after";
      }
      pause_after.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      pause_after.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      pause_after.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return pause_after;
  })(property);
  
  _md.pause_after = pause_after;
  // element pause_before
  var pause_before = (function (property) {
      _inherits(pause_before, property);
      function pause_before(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(pause_before.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, pause_before);
          this.wzElement = "pause_before";
      }
      pause_before.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      pause_before.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      pause_before.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return pause_before;
  })(property);
  
  _md.pause_before = pause_before;
  // element pause
  var pause = (function (property) {
      _inherits(pause, property);
      function pause(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(pause.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, pause);
          this.wzElement = "pause";
      }
      pause.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      pause.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      pause.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return pause;
  })(property);
  
  _md.pause = pause;
  // element perspective
  var perspective = (function (property) {
      _inherits(perspective, property);
      function perspective(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(perspective.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, perspective);
          this.wzElement = "perspective";
      }
      perspective.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      perspective.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      perspective.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return perspective;
  })(property);
  
  _md.perspective = perspective;
  // element perspective_origin
  var perspective_origin = (function (property) {
      _inherits(perspective_origin, property);
      function perspective_origin(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(perspective_origin.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, perspective_origin);
          this.wzElement = "perspective_origin";
      }
      perspective_origin.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      perspective_origin.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      perspective_origin.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return perspective_origin;
  })(property);
  
  _md.perspective_origin = perspective_origin;
  // element pitch_range
  var pitch_range = (function (property) {
      _inherits(pitch_range, property);
      function pitch_range(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(pitch_range.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, pitch_range);
          this.wzElement = "pitch_range";
      }
      pitch_range.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      pitch_range.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      pitch_range.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return pitch_range;
  })(property);
  
  _md.pitch_range = pitch_range;
  // element pitch
  var pitch = (function (property) {
      _inherits(pitch, property);
      function pitch(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(pitch.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, pitch);
          this.wzElement = "pitch";
      }
      pitch.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      pitch.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      pitch.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return pitch;
  })(property);
  
  _md.pitch = pitch;
  // element play_during
  var play_during = (function (property) {
      _inherits(play_during, property);
      function play_during(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(play_during.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, play_during);
          this.wzElement = "play_during";
      }
      play_during.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      play_during.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      play_during.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return play_during;
  })(property);
  
  _md.play_during = play_during;
  // element pointer_events
  var pointer_events = (function (property) {
      _inherits(pointer_events, property);
      function pointer_events(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(pointer_events.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, pointer_events);
          this.wzElement = "pointer_events";
      }
      pointer_events.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      pointer_events.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      pointer_events.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return pointer_events;
  })(property);
  
  _md.pointer_events = pointer_events;
  // element position
  var position = (function (property) {
      _inherits(position, property);
      function position(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(position.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, position);
          this.wzElement = "position";
      }
      position.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      position.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      position.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return position;
  })(property);
  
  _md.position = position;
  // element quotes
  var quotes = (function (property) {
      _inherits(quotes, property);
      function quotes(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(quotes.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, quotes);
          this.wzElement = "quotes";
      }
      quotes.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      quotes.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      quotes.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return quotes;
  })(property);
  
  _md.quotes = quotes;
  // element resize
  var resize = (function (property) {
      _inherits(resize, property);
      function resize(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(resize.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, resize);
          this.wzElement = "resize";
      }
      resize.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      resize.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      resize.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return resize;
  })(property);
  
  _md.resize = resize;
  // element richness
  var richness = (function (property) {
      _inherits(richness, property);
      function richness(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(richness.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, richness);
          this.wzElement = "richness";
      }
      richness.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      richness.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      richness.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return richness;
  })(property);
  
  _md.richness = richness;
  // element right
  var right = (function (property) {
      _inherits(right, property);
      function right(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(right.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, right);
          this.wzElement = "right";
      }
      right.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      right.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      right.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return right;
  })(property);
  
  _md.right = right;
  // element speak_header
  var speak_header = (function (property) {
      _inherits(speak_header, property);
      function speak_header(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(speak_header.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, speak_header);
          this.wzElement = "speak_header";
      }
      speak_header.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      speak_header.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      speak_header.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return speak_header;
  })(property);
  
  _md.speak_header = speak_header;
  // element speak_numeral
  var speak_numeral = (function (property) {
      _inherits(speak_numeral, property);
      function speak_numeral(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(speak_numeral.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, speak_numeral);
          this.wzElement = "speak_numeral";
      }
      speak_numeral.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      speak_numeral.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      speak_numeral.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return speak_numeral;
  })(property);
  
  _md.speak_numeral = speak_numeral;
  // element speak_punctuation
  var speak_punctuation = (function (property) {
      _inherits(speak_punctuation, property);
      function speak_punctuation(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(speak_punctuation.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, speak_punctuation);
          this.wzElement = "speak_punctuation";
      }
      speak_punctuation.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      speak_punctuation.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      speak_punctuation.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return speak_punctuation;
  })(property);
  
  _md.speak_punctuation = speak_punctuation;
  // element speak
  var speak = (function (property) {
      _inherits(speak, property);
      function speak(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(speak.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, speak);
          this.wzElement = "speak";
      }
      speak.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      speak.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      speak.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return speak;
  })(property);
  
  _md.speak = speak;
  // element speech_rate
  var speech_rate = (function (property) {
      _inherits(speech_rate, property);
      function speech_rate(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(speech_rate.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, speech_rate);
          this.wzElement = "speech_rate";
      }
      speech_rate.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      speech_rate.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      speech_rate.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return speech_rate;
  })(property);
  
  _md.speech_rate = speech_rate;
  // element stress
  var stress = (function (property) {
      _inherits(stress, property);
      function stress(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(stress.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, stress);
          this.wzElement = "stress";
      }
      stress.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      stress.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      stress.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return stress;
  })(property);
  
  _md.stress = stress;
  // element tab_size
  var tab_size = (function (property) {
      _inherits(tab_size, property);
      function tab_size(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(tab_size.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, tab_size);
          this.wzElement = "tab_size";
      }
      tab_size.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      tab_size.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      tab_size.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return tab_size;
  })(property);
  
  _md.tab_size = tab_size;
  // element table_layout
  var table_layout = (function (property) {
      _inherits(table_layout, property);
      function table_layout(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(table_layout.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, table_layout);
          this.wzElement = "table_layout";
      }
      table_layout.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      table_layout.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      table_layout.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return table_layout;
  })(property);
  
  _md.table_layout = table_layout;
  // element target_name
  var target_name = (function (property) {
      _inherits(target_name, property);
      function target_name(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(target_name.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, target_name);
          this.wzElement = "target_name";
      }
      target_name.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      target_name.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      target_name.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return target_name;
  })(property);
  
  _md.target_name = target_name;
  // element target_new
  var target_new = (function (property) {
      _inherits(target_new, property);
      function target_new(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(target_new.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, target_new);
          this.wzElement = "target_new";
      }
      target_new.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      target_new.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      target_new.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return target_new;
  })(property);
  
  _md.target_new = target_new;
  // element target_position
  var target_position = (function (property) {
      _inherits(target_position, property);
      function target_position(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(target_position.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, target_position);
          this.wzElement = "target_position";
      }
      target_position.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      target_position.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      target_position.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return target_position;
  })(property);
  
  _md.target_position = target_position;
  // element text_align
  var text_align = (function (property) {
      _inherits(text_align, property);
      function text_align(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_align.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_align);
          this.wzElement = "text_align";
      }
      text_align.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_align.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_align.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_align;
  })(property);
  
  _md.text_align = text_align;
  // element text_align_last
  var text_align_last = (function (property) {
      _inherits(text_align_last, property);
      function text_align_last(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_align_last.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_align_last);
          this.wzElement = "text_align_last";
      }
      text_align_last.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_align_last.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_align_last.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_align_last;
  })(property);
  
  _md.text_align_last = text_align_last;
  // element text_decoration
  var text_decoration = (function (property) {
      _inherits(text_decoration, property);
      function text_decoration(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_decoration.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_decoration);
          this.wzElement = "text_decoration";
      }
      text_decoration.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_decoration.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_decoration.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_decoration;
  })(property);
  
  _md.text_decoration = text_decoration;
  // element text_decoration_line
  var text_decoration_line = (function (property) {
      _inherits(text_decoration_line, property);
      function text_decoration_line(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_decoration_line.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_decoration_line);
          this.wzElement = "text_decoration_line";
      }
      text_decoration_line.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_decoration_line.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_decoration_line.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_decoration_line;
  })(property);
  
  _md.text_decoration_line = text_decoration_line;
  // element text_decoration_style
  var text_decoration_style = (function (property) {
      _inherits(text_decoration_style, property);
      function text_decoration_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_decoration_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_decoration_style);
          this.wzElement = "text_decoration_style";
      }
      text_decoration_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_decoration_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_decoration_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_decoration_style;
  })(property);
  
  _md.text_decoration_style = text_decoration_style;
  // element text_decoration_color
  var text_decoration_color = (function (property) {
      _inherits(text_decoration_color, property);
      function text_decoration_color(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_decoration_color.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_decoration_color);
          this.wzElement = "text_decoration_color";
      }
      text_decoration_color.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_decoration_color.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_decoration_color.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_decoration_color;
  })(property);
  
  _md.text_decoration_color = text_decoration_color;
  // element text_decoration_skip
  var text_decoration_skip = (function (property) {
      _inherits(text_decoration_skip, property);
      function text_decoration_skip(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_decoration_skip.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_decoration_skip);
          this.wzElement = "text_decoration_skip";
      }
      text_decoration_skip.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_decoration_skip.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_decoration_skip.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_decoration_skip;
  })(property);
  
  _md.text_decoration_skip = text_decoration_skip;
  // element text_indent
  var text_indent = (function (property) {
      _inherits(text_indent, property);
      function text_indent(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_indent.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_indent);
          this.wzElement = "text_indent";
      }
      text_indent.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_indent.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_indent.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_indent;
  })(property);
  
  _md.text_indent = text_indent;
  // element text_overflow
  var text_overflow = (function (property) {
      _inherits(text_overflow, property);
      function text_overflow(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_overflow.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_overflow);
          this.wzElement = "text_overflow";
      }
      text_overflow.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_overflow.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_overflow.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_overflow;
  })(property);
  
  _md.text_overflow = text_overflow;
  // element text_rendering
  var text_rendering = (function (property) {
      _inherits(text_rendering, property);
      function text_rendering(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_rendering.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_rendering);
          this.wzElement = "text_rendering";
      }
      text_rendering.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_rendering.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_rendering.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_rendering;
  })(property);
  
  _md.text_rendering = text_rendering;
  // element text_shadow
  var text_shadow = (function (property) {
      _inherits(text_shadow, property);
      function text_shadow(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_shadow.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_shadow);
          this.wzElement = "text_shadow";
      }
      text_shadow.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_shadow.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_shadow.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_shadow;
  })(property);
  
  _md.text_shadow = text_shadow;
  // element text_transform
  var text_transform = (function (property) {
      _inherits(text_transform, property);
      function text_transform(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_transform.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_transform);
          this.wzElement = "text_transform";
      }
      text_transform.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_transform.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_transform.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_transform;
  })(property);
  
  _md.text_transform = text_transform;
  // element text_underline_position
  var text_underline_position = (function (property) {
      _inherits(text_underline_position, property);
      function text_underline_position(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(text_underline_position.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, text_underline_position);
          this.wzElement = "text_underline_position";
      }
      text_underline_position.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      text_underline_position.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      text_underline_position.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return text_underline_position;
  })(property);
  
  _md.text_underline_position = text_underline_position;
  // element touch_action
  var touch_action = (function (property) {
      _inherits(touch_action, property);
      function touch_action(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(touch_action.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, touch_action);
          this.wzElement = "touch_action";
      }
      touch_action.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      touch_action.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      touch_action.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return touch_action;
  })(property);
  
  _md.touch_action = touch_action;
  // element transform
  var transform = (function (property) {
      _inherits(transform, property);
      function transform(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(transform.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, transform);
          this.wzElement = "transform";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.origin = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.style = null
      }
      transform.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      transform.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.origin)) {
              result["origin"] = this.origin;
          }
          if (!isEmpty(this.style)) {
              result["style"] = this.style;
          }
      }
      transform.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      transform.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 5 && _ch == 's') {
              if (name === 'style') {
                  this.style = child.v; return true;
              }
          }
          if (_l == 6 && _ch == 'o') {
              if (name === 'origin') {
                  this.origin = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      transform.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return transform;
  })(property);
  
  _md.transform = transform;
  // element transform_origin
  var transform_origin = (function (property) {
      _inherits(transform_origin, property);
      function transform_origin(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(transform_origin.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, transform_origin);
          this.wzElement = "transform_origin";
      }
      transform_origin.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      transform_origin.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      transform_origin.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return transform_origin;
  })(property);
  
  _md.transform_origin = transform_origin;
  // element transform_style
  var transform_style = (function (property) {
      _inherits(transform_style, property);
      function transform_style(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(transform_style.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, transform_style);
          this.wzElement = "transform_style";
      }
      transform_style.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      transform_style.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      transform_style.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return transform_style;
  })(property);
  
  _md.transform_style = transform_style;
  // element transition
  var transition = (function (property) {
      _inherits(transition, property);
      function transition(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(transition.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, transition);
          this.wzElement = "transition";
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.delay = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.duration = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.property = null
          // TODO avoid this declaration, attributes should be tested for undefined not null
          // set this.timing_function = null
      }
      transition.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      transition.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
          if (!isEmpty(this.delay)) {
              result["delay"] = this.delay;
          }
          if (!isEmpty(this.duration)) {
              result["duration"] = this.duration;
          }
          if (!isEmpty(this.property)) {
              result["property"] = this.property;
          }
          if (!isEmpty(this.timing_function)) {
              result["timing_function"] = this.timing_function;
          }
      }
      transition.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      transition.prototype.loadChild = function(child) {
          // Make test case insensitive
          var item,
              ok = false,
              name = child.n.toLowerCase(),
              _l = name.length,
              _ch = name[0];
          if (_l == 5 && _ch == 'd') {
              if (name === 'delay') {
                  this.delay = child.v; return true;
              }
          }
          if (_l == 8 && _ch == 'd') {
              if (name === 'duration') {
                  this.duration = child.v; return true;
              }
          }
          if (_l == 8 && _ch == 'p') {
              if (name === 'property') {
                  this.property = child.v; return true;
              }
          }
          if (_l == 15 && _ch == 't') {
              if (name === 'timing-function') {
                  this.timing_function = child.v; return true;
              }
              else if (name === 'timing_function') {
                  this.timing_function = child.v; return true;
              }
          }
          ok = _md.property.prototype.loadChild.call(this, child);
          return ok;
      }
      transition.prototype.loadFromNode = function(node) {
          var loaded = false;
          // TODO VIA after transition to node.children
          var children = node.children;
          var i, i_items=children, i_len=children.length, item;
          for (i=0; i<i_len; i++) {
              item = children[i];
              loaded = this.loadChild(item);
              if (!loaded) {
                  throw new _md.vttModelException("Tag not recognized: " + item.n, item, this);
              }
          }
      }
      return transition;
  })(property);
  
  _md.transition = transition;
  // element transition_delay
  var transition_delay = (function (property) {
      _inherits(transition_delay, property);
      function transition_delay(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(transition_delay.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, transition_delay);
          this.wzElement = "transition_delay";
      }
      transition_delay.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      transition_delay.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      transition_delay.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return transition_delay;
  })(property);
  
  _md.transition_delay = transition_delay;
  // element transition_duration
  var transition_duration = (function (property) {
      _inherits(transition_duration, property);
      function transition_duration(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(transition_duration.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, transition_duration);
          this.wzElement = "transition_duration";
      }
      transition_duration.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      transition_duration.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      transition_duration.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return transition_duration;
  })(property);
  
  _md.transition_duration = transition_duration;
  // element transition_property
  var transition_property = (function (property) {
      _inherits(transition_property, property);
      function transition_property(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(transition_property.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, transition_property);
          this.wzElement = "transition_property";
      }
      transition_property.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      transition_property.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      transition_property.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return transition_property;
  })(property);
  
  _md.transition_property = transition_property;
  // element transition_timing_function
  var transition_timing_function = (function (property) {
      _inherits(transition_timing_function, property);
      function transition_timing_function(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(transition_timing_function.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, transition_timing_function);
          this.wzElement = "transition_timing_function";
      }
      transition_timing_function.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      transition_timing_function.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      transition_timing_function.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return transition_timing_function;
  })(property);
  
  _md.transition_timing_function = transition_timing_function;
  // element top
  var top = (function (property) {
      _inherits(top, property);
      function top(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(top.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, top);
          this.wzElement = "top";
      }
      top.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      top.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      top.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return top;
  })(property);
  
  _md.top = top;
  // element unicode_bidi
  var unicode_bidi = (function (property) {
      _inherits(unicode_bidi, property);
      function unicode_bidi(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(unicode_bidi.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, unicode_bidi);
          this.wzElement = "unicode_bidi";
      }
      unicode_bidi.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      unicode_bidi.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      unicode_bidi.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return unicode_bidi;
  })(property);
  
  _md.unicode_bidi = unicode_bidi;
  // element user_select
  var user_select = (function (property) {
      _inherits(user_select, property);
      function user_select(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(user_select.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, user_select);
          this.wzElement = "user_select";
      }
      user_select.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      user_select.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      user_select.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return user_select;
  })(property);
  
  _md.user_select = user_select;
  // element vertical_align
  var vertical_align = (function (property) {
      _inherits(vertical_align, property);
      function vertical_align(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(vertical_align.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, vertical_align);
          this.wzElement = "vertical_align";
      }
      vertical_align.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      vertical_align.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      vertical_align.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return vertical_align;
  })(property);
  
  _md.vertical_align = vertical_align;
  // element visibility
  var visibility = (function (property) {
      _inherits(visibility, property);
      function visibility(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(visibility.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, visibility);
          this.wzElement = "visibility";
      }
      visibility.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      visibility.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      visibility.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return visibility;
  })(property);
  
  _md.visibility = visibility;
  // element voice_family
  var voice_family = (function (property) {
      _inherits(voice_family, property);
      function voice_family(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(voice_family.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, voice_family);
          this.wzElement = "voice_family";
      }
      voice_family.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      voice_family.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      voice_family.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return voice_family;
  })(property);
  
  _md.voice_family = voice_family;
  // element volume
  var volume = (function (property) {
      _inherits(volume, property);
      function volume(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(volume.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, volume);
          this.wzElement = "volume";
      }
      volume.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      volume.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      volume.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return volume;
  })(property);
  
  _md.volume = volume;
  // element white_space
  var white_space = (function (property) {
      _inherits(white_space, property);
      function white_space(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(white_space.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, white_space);
          this.wzElement = "white_space";
      }
      white_space.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      white_space.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      white_space.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return white_space;
  })(property);
  
  _md.white_space = white_space;
  // element widows
  var widows = (function (property) {
      _inherits(widows, property);
      function widows(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(widows.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, widows);
          this.wzElement = "widows";
      }
      widows.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      widows.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      widows.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return widows;
  })(property);
  
  _md.widows = widows;
  // element width
  var width = (function (property) {
      _inherits(width, property);
      function width(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(width.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, width);
          this.wzElement = "width";
      }
      width.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      width.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      width.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return width;
  })(property);
  
  _md.width = width;
  // element will_change
  var will_change = (function (property) {
      _inherits(will_change, property);
      function will_change(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(will_change.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, will_change);
          this.wzElement = "will_change";
      }
      will_change.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      will_change.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      will_change.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return will_change;
  })(property);
  
  _md.will_change = will_change;
  // element word_break
  var word_break = (function (property) {
      _inherits(word_break, property);
      function word_break(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(word_break.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, word_break);
          this.wzElement = "word_break";
      }
      word_break.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      word_break.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      word_break.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return word_break;
  })(property);
  
  _md.word_break = word_break;
  // element word_spacing
  var word_spacing = (function (property) {
      _inherits(word_spacing, property);
      function word_spacing(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(word_spacing.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, word_spacing);
          this.wzElement = "word_spacing";
      }
      word_spacing.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      word_spacing.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      word_spacing.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return word_spacing;
  })(property);
  
  _md.word_spacing = word_spacing;
  // element word_wrap
  var word_wrap = (function (property) {
      _inherits(word_wrap, property);
      function word_wrap(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(word_wrap.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, word_wrap);
          this.wzElement = "word_wrap";
      }
      word_wrap.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      word_wrap.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      word_wrap.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return word_wrap;
  })(property);
  
  _md.word_wrap = word_wrap;
  // element z_index
  var z_index = (function (property) {
      _inherits(z_index, property);
      function z_index(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(z_index.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, z_index);
          this.wzElement = "z_index";
      }
      z_index.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      z_index.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      z_index.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return z_index;
  })(property);
  
  _md.z_index = z_index;
  // element zoom
  var zoom = (function (property) {
      _inherits(zoom, property);
      function zoom(name, sourceLineInfo) {
          _get(Object.getPrototypeOf(zoom.prototype), 'constructor', this).call(this, name,sourceLineInfo);
          _classCallCheck(this, zoom);
          this.wzElement = "zoom";
      }
      zoom.prototype.toJson = function() {
          var result = {};
          this.toJsonProperties(result);
          this.toJsonChildren(result);
          return result;
      }
      zoom.prototype.toJsonProperties = function(result) {
          _md.property.prototype.toJsonProperties.call(this, result);
          if (this.__jsonProps) {
              for (var k in this.__jsonProps) {
                  result[k] = this.__jsonProps[k];
              }
          }
      }
      zoom.prototype.toJsonChildren = function(result) {
          _md.property.prototype.toJsonChildren.call(this, result);
      }
      return zoom;
  })(property);
  
  _md.zoom = zoom;
  _md.__tagElementMapping = { '#': 'comment', 'cue': 'vttCue', '.': 'componentClass', '+': 'cueText', 'v': 'voiceSpan', '::': 'cueRule', '@': 'property', 'align-content': 'align_content', 'aligncontent': 'align_content', 'align-items': 'align_items', 'alignitems': 'align_items', 'align-self': 'align_self', 'alignself': 'align_self', 'animation-delay': 'animation_delay', 'animationdelay': 'animation_delay', 'animation-direction': 'animation_direction', 'animationdirection': 'animation_direction', 'animation-duration': 'animation_duration', 'animationduration': 'animation_duration', 'animation-fill-mode': 'animation_fill_mode', 'animationfillmode': 'animation_fill_mode', 'animation-iteration-count': 'animation_iteration_count', 'animationiterationcount': 'animation_iteration_count', 'animation-name': 'animation_name', 'animationname': 'animation_name', 'animation-play-state': 'animation_play_state', 'animationplaystate': 'animation_play_state', 'animation-timing-function': 'animation_timing_function', 'animationtimingfunction': 'animation_timing_function', 'background-attachment': 'background_attachment', 'backgroundattachment': 'background_attachment', 'background-color': 'background_color', 'backgroundcolor': 'background_color', 'background-image': 'background_image', 'backgroundimage': 'background_image', 'background-position': 'background_position', 'backgroundposition': 'background_position', 'background-repeat': 'background_repeat', 'backgroundrepeat': 'background_repeat', 'background-blend-mode': 'background_blend_mode', 'backgroundblendmode': 'background_blend_mode', 'background-clip': 'background_clip', 'backgroundclip': 'background_clip', 'background-origin': 'background_origin', 'backgroundorigin': 'background_origin', 'background-size': 'background_size', 'backgroundsize': 'background_size', 'backface-visibility': 'backface_visibility', 'backfacevisibility': 'backface_visibility', 'border-collapse': 'border_collapse', 'bordercollapse': 'border_collapse', 'border-color': 'border_color', 'bordercolor': 'border_color', 'border-spacing': 'border_spacing', 'borderspacing': 'border_spacing', 'border-style': 'border_style', 'borderstyle': 'border_style', 'border-top': 'border_top', 'bordertop': 'border_top', 'border-right': 'border_right', 'borderright': 'border_right', 'border-bottom': 'border_bottom', 'borderbottom': 'border_bottom', 'border-left': 'border_left', 'borderleft': 'border_left', 'border-top-color': 'border_top_color', 'bordertopcolor': 'border_top_color', 'border-right-color': 'border_right_color', 'borderrightcolor': 'border_right_color', 'border-bottom-color': 'border_bottom_color', 'borderbottomcolor': 'border_bottom_color', 'border-left-color': 'border_left_color', 'borderleftcolor': 'border_left_color', 'border-top-style': 'border_top_style', 'bordertopstyle': 'border_top_style', 'border-right-style': 'border_right_style', 'borderrightstyle': 'border_right_style', 'border-bottom-style': 'border_bottom_style', 'borderbottomstyle': 'border_bottom_style', 'border-left-style': 'border_left_style', 'borderleftstyle': 'border_left_style', 'border-top-width': 'border_top_width', 'bordertopwidth': 'border_top_width', 'border-right-width': 'border_right_width', 'borderrightwidth': 'border_right_width', 'border-bottom-width': 'border_bottom_width', 'borderbottomwidth': 'border_bottom_width', 'border-left-width': 'border_left_width', 'borderleftwidth': 'border_left_width', 'border-width': 'border_width', 'borderwidth': 'border_width', 'border-radius': 'border_radius', 'borderradius': 'border_radius', 'border-top-left-radius': 'border_top_left_radius', 'bordertopleftradius': 'border_top_left_radius', 'border-top-right-radius': 'border_top_right_radius', 'bordertoprightradius': 'border_top_right_radius', 'border-bottom-left-radius': 'border_bottom_left_radius', 'borderbottomleftradius': 'border_bottom_left_radius', 'border-bottom-right-radius': 'border_bottom_right_radius', 'borderbottomrightradius': 'border_bottom_right_radius', 'border-image': 'border_image', 'borderimage': 'border_image', 'border-image-outset': 'border_image_outset', 'borderimageoutset': 'border_image_outset', 'border-image-repeat': 'border_image_repeat', 'borderimagerepeat': 'border_image_repeat', 'border-image-source': 'border_image_source', 'borderimagesource': 'border_image_source', 'border-image-slice': 'border_image_slice', 'borderimageslice': 'border_image_slice', 'border-image-width': 'border_image_width', 'borderimagewidth': 'border_image_width', 'box-sizing': 'box_sizing', 'boxsizing': 'box_sizing', 'box-decoration-break': 'box_decoration_break', 'boxdecorationbreak': 'box_decoration_break', 'box-shadow': 'box_shadow', 'boxshadow': 'box_shadow', 'break-after': 'break_after', 'breakafter': 'break_after', 'break-before': 'break_before', 'breakbefore': 'break_before', 'break-inside': 'break_inside', 'breakinside': 'break_inside', 'caption-side': 'caption_side', 'captionside': 'caption_side', 'column-count': 'column_count', 'columncount': 'column_count', 'column-fill': 'column_fill', 'columnfill': 'column_fill', 'column-gap': 'column_gap', 'columngap': 'column_gap', 'column-rule': 'column_rule', 'columnrule': 'column_rule', 'column-rule-color': 'column_rule_color', 'columnrulecolor': 'column_rule_color', 'column-rule-style': 'column_rule_style', 'columnrulestyle': 'column_rule_style', 'column-rule-width': 'column_rule_width', 'columnrulewidth': 'column_rule_width', 'column-span': 'column_span', 'columnspan': 'column_span', 'column-width': 'column_width', 'columnwidth': 'column_width', 'counter-increment': 'counter_increment', 'counterincrement': 'counter_increment', 'counter-reset': 'counter_reset', 'counterreset': 'counter_reset', 'cue-after': 'cue_after', 'cueafter': 'cue_after', 'cue-before': 'cue_before', 'cuebefore': 'cue_before', 'empty-cells': 'empty_cells', 'emptycells': 'empty_cells', 'flex-basis': 'flex_basis', 'flexbasis': 'flex_basis', 'flex-direction': 'flex_direction', 'flexdirection': 'flex_direction', 'flex-flow': 'flex_flow', 'flexflow': 'flex_flow', 'flex-grow': 'flex_grow', 'flexgrow': 'flex_grow', 'flex-shrink': 'flex_shrink', 'flexshrink': 'flex_shrink', 'flex-wrap': 'flex_wrap', 'flexwrap': 'flex_wrap', 'float': 'xfloat', 'font-family': 'font_family', 'fontfamily': 'font_family', 'font-size': 'font_size', 'fontsize': 'font_size', 'font-style': 'font_style', 'fontstyle': 'font_style', 'font-variant': 'font_variant', 'fontvariant': 'font_variant', 'font-weight': 'font_weight', 'fontweight': 'font_weight', 'grid-template-columns': 'grid_template_columns', 'gridtemplatecolumns': 'grid_template_columns', 'grid-template-rows': 'grid_template_rows', 'gridtemplaterows': 'grid_template_rows', 'grid-template-areas': 'gridTemplateAreas', 'gridtemplateareas': 'gridTemplateAreas', 'grid-column-gap': 'grid_column_gap', 'gridcolumngap': 'grid_column_gap', 'grid-row-gap': 'grid_row_gap', 'gridrowgap': 'grid_row_gap', 'grid-gap': 'grid_gap', 'gridgap': 'grid_gap', 'grid-auto-columns': 'grid_auto_columns', 'gridautocolumns': 'grid_auto_columns', 'grid-auto-rows': 'grid_auto_rows', 'gridautorows': 'grid_auto_rows', 'grid-auto-flow': 'grid_auto_flow', 'gridautoflow': 'grid_auto_flow', 'grid-column-start': 'grid_column_start', 'gridcolumnstart': 'grid_column_start', 'grid-column-end': 'grid_column_end', 'gridcolumnend': 'grid_column_end', 'grid-row-start': 'grid_row_start', 'gridrowstart': 'grid_row_start', 'grid-row-end': 'grid_row_end', 'gridrowend': 'grid_row_end', 'grid-column': 'grid_column', 'gridcolumn': 'grid_column', 'grid-row': 'grid_row', 'gridrow': 'grid_row', 'grid-area': 'grid_area', 'gridarea': 'grid_area', 'hanging-punctuation': 'hanging_punctuation', 'hangingpunctuation': 'hanging_punctuation', 'justify-content': 'justify_content', 'justifycontent': 'justify_content', 'justify-items': 'justify_items', 'justifyitems': 'justify_items', 'justify-self': 'justify_self', 'justifyself': 'justify_self', 'letter-spacing': 'letter_spacing', 'letterspacing': 'letter_spacing', 'line-break': 'line_break', 'linebreak': 'line_break', 'line-height': 'line_height', 'lineheight': 'line_height', 'list-style-image': 'list_style_image', 'liststyleimage': 'list_style_image', 'list-style-position': 'list_style_position', 'liststyleposition': 'list_style_position', 'list-style-type': 'list_style_type', 'liststyletype': 'list_style_type', 'list-style': 'list_style', 'liststyle': 'list_style', 'margin-right': 'margin_right', 'marginright': 'margin_right', 'margin-top': 'margin_top', 'margintop': 'margin_top', 'margin-bottom': 'margin_bottom', 'marginbottom': 'margin_bottom', 'margin-left': 'margin_left', 'marginleft': 'margin_left', 'max-height': 'max_height', 'maxheight': 'max_height', 'max-width': 'max_width', 'maxwidth': 'max_width', 'min-height': 'min_height', 'minheight': 'min_height', 'min-width': 'min_width', 'minwidth': 'min_width', 'mix-blend-mode': 'mix_blend_mode', 'mixblendmode': 'mix_blend_mode', 'nav-up': 'nav_up', 'navup': 'nav_up', 'nav-down': 'nav_down', 'navdown': 'nav_down', 'nav-left': 'nav_left', 'navleft': 'nav_left', 'nav-right': 'nav_right', 'navright': 'nav_right', 'outline-color': 'outline_color', 'outlinecolor': 'outline_color', 'outline-style': 'outline_style', 'outlinestyle': 'outline_style', 'outline-width': 'outline_width', 'outlinewidth': 'outline_width', 'outline-offset': 'outline_offset', 'outlineoffset': 'outline_offset', 'overflow-wrap': 'overflow_wrap', 'overflowwrap': 'overflow_wrap', 'overflow-x': 'overflow_x', 'overflowx': 'overflow_x', 'overflow-y': 'overflow_y', 'overflowy': 'overflow_y', 'padding-top': 'padding_top', 'paddingtop': 'padding_top', 'padding-right': 'padding_right', 'paddingright': 'padding_right', 'padding-bottom': 'padding_bottom', 'paddingbottom': 'padding_bottom', 'padding-left': 'padding_left', 'paddingleft': 'padding_left', 'page-break-after': 'page_break_after', 'pagebreakafter': 'page_break_after', 'page-break-before': 'page_break_before', 'pagebreakbefore': 'page_break_before', 'page-break-inside': 'page_break_inside', 'pagebreakinside': 'page_break_inside', 'pause-after': 'pause_after', 'pauseafter': 'pause_after', 'pause-before': 'pause_before', 'pausebefore': 'pause_before', 'perspective-origin': 'perspective_origin', 'perspectiveorigin': 'perspective_origin', 'pitch-range': 'pitch_range', 'pitchrange': 'pitch_range', 'play-during': 'play_during', 'playduring': 'play_during', 'pointer-events': 'pointer_events', 'pointerevents': 'pointer_events', 'speak-header': 'speak_header', 'speakheader': 'speak_header', 'speak-numeral': 'speak_numeral', 'speaknumeral': 'speak_numeral', 'speak-punctuation': 'speak_punctuation', 'speakpunctuation': 'speak_punctuation', 'speech-rate': 'speech_rate', 'speechrate': 'speech_rate', 'tab-size': 'tab_size', 'tabsize': 'tab_size', 'table-layout': 'table_layout', 'tablelayout': 'table_layout', 'target-name': 'target_name', 'targetname': 'target_name', 'target-new': 'target_new', 'targetnew': 'target_new', 'target-position': 'target_position', 'targetposition': 'target_position', 'text-align': 'text_align', 'textalign': 'text_align', 'text-align-last': 'text_align_last', 'textalignlast': 'text_align_last', 'text-decoration': 'text_decoration', 'textdecoration': 'text_decoration', 'text-decoration-line': 'text_decoration_line', 'textdecorationline': 'text_decoration_line', 'text-decoration-style': 'text_decoration_style', 'textdecorationstyle': 'text_decoration_style', 'text-decoration-color': 'text_decoration_color', 'textdecorationcolor': 'text_decoration_color', 'text-decoration-skip': 'text_decoration_skip', 'textdecorationskip': 'text_decoration_skip', 'text-indent': 'text_indent', 'textindent': 'text_indent', 'text-overflow': 'text_overflow', 'textoverflow': 'text_overflow', 'text-rendering': 'text_rendering', 'textrendering': 'text_rendering', 'text-shadow': 'text_shadow', 'textshadow': 'text_shadow', 'text-transform': 'text_transform', 'texttransform': 'text_transform', 'text-underline-position': 'text_underline_position', 'textunderlineposition': 'text_underline_position', 'touch-action': 'touch_action', 'touchaction': 'touch_action', 'transform-origin': 'transform_origin', 'transformorigin': 'transform_origin', 'transform-style': 'transform_style', 'transformstyle': 'transform_style', 'transition-delay': 'transition_delay', 'transitiondelay': 'transition_delay', 'transition-duration': 'transition_duration', 'transitionduration': 'transition_duration', 'transition-property': 'transition_property', 'transitionproperty': 'transition_property', 'transition-timing-function': 'transition_timing_function', 'transitiontimingfunction': 'transition_timing_function', 'unicode-bidi': 'unicode_bidi', 'unicodebidi': 'unicode_bidi', 'user-select': 'user_select', 'userselect': 'user_select', 'vertical-align': 'vertical_align', 'verticalalign': 'vertical_align', 'voice-family': 'voice_family', 'voicefamily': 'voice_family', 'white-space': 'white_space', 'whitespace': 'white_space', 'will-change': 'will_change', 'willchange': 'will_change', 'word-break': 'word_break', 'wordbreak': 'word_break', 'word-spacing': 'word_spacing', 'wordspacing': 'word_spacing', 'word-wrap': 'word_wrap', 'wordwrap': 'word_wrap', 'z-index': 'z_index', 'zindex': 'z_index' };
  // model/replaceUnknownElement( )
  var vttModelException = (function () {
      function vttModelException(message, node, instance) {
          _classCallCheck(this, vttModelException);
          // TODO node seems superflous
          if (node && instance) {
              this.message = message + ', wzElement: ' + node.wzElement + ', wzName:' + (node.wzName || '') + ', row:' + node.r + ', col:' + node.c + ', source:' + instance.wzSourceFilepath(node.u);
              this.errorLines = instance.wzSourceErrorLines(node, message);
          }
          else if (instance) {
              this.message = message + instance.wzSourceLineInfo.toString(instance);
          }
          else {
              this.message = message;
          }
          console.log('message', this.message);
          this.stack = (new Error()).stack;
          this.node = node;
      }
      return vttModelException;
  })();
  
  _md.vttModelException = vttModelException;
  var vttContext = (function () {
      function vttContext() {
          _classCallCheck(this, vttContext);
          this.validationErrors = [];
      }
      vttContext.prototype.schemaIsValid = function() {
          return this.validationErrors.length == 0;
      }
      vttContext.prototype.addError = function(message, node) {
          var at = node ? ' At ' + node.wzSourceLineInfo.toString(node) : '';
          this.validationErrors.push(message + at);
      }
      vttContext.prototype.verifyEnum = function(valueType, valueName, value, allowed, node) {
          if (value && allowed.indexOf(value) < 0) {
              var allowedStr = 'allowed: ' + allowed.join(', ');
              this.validationErrors.push(valueType + ' ' + valueName + ' has an invalid value: ' + value + ' ' + allowedStr + '. At ' + (node.wzSourceLineInfo ? node.wzSourceLineInfo.toString(node) : 'location unavailable'));
          }
      }
      return vttContext;
  })();
  
  _md.vttContext = vttContext;
  function parsestring(value, defaultValue, node) {
      if (isEmpty( value )) {
          return defaultValue;
      }
      return value;
  }
  function isString(value) {
      return (typeof value === 'string' || value instanceof String);
  }
  function isEmpty(value) {
      return !isString( value ) || value.length === 0;
  }
  function isBoolean(value) {
      return value === 'true' || value === 'false';
  }
  
  