{
  "version": 3,
  "sources": ["../../node_modules/ws/lib/stream.js", "../../node_modules/ws/lib/constants.js", "../../node_modules/ws/lib/buffer-util.js", "../../node_modules/ws/lib/limiter.js", "../../node_modules/ws/lib/permessage-deflate.js", "../../node_modules/ws/lib/validation.js", "../../node_modules/ws/lib/receiver.js", "../../node_modules/ws/lib/sender.js", "../../node_modules/ws/lib/event-target.js", "../../node_modules/ws/lib/extension.js", "../../node_modules/ws/lib/websocket.js", "../../node_modules/ws/lib/subprotocol.js", "../../node_modules/ws/lib/websocket-server.js", "../../node_modules/ms/index.js", "../../node_modules/debug/src/common.js", "../../node_modules/debug/src/browser.js", "../../node_modules/has-flag/index.js", "../../node_modules/supports-color/index.js", "../../node_modules/debug/src/node.js", "../../node_modules/debug/src/index.js", "../../node_modules/agent-base/src/promisify.ts", "../../node_modules/agent-base/src/index.ts", "../../node_modules/https-proxy-agent/src/parse-proxy-response.ts", "../../node_modules/https-proxy-agent/src/agent.ts", "../../node_modules/https-proxy-agent/src/index.ts", "../../src/FIXServer.ts", "../../node_modules/ws/wrapper.mjs", "../../src/fields/Field.ts", "../../src/fieldtypes/index.ts", "../../src/fieldtypes/AllocPositionEffectEnum.ts", "../../src/fieldtypes/EncryptMethodEnum.ts", "../../src/fieldtypes/ExecTypeEnum.ts", "../../src/fieldtypes/FieldEnum.ts", "../../src/fieldtypes/HandlInstEnum.ts", "../../src/fieldtypes/MarketDepthEnum.ts", "../../src/fieldtypes/MDEntryTypeEnum.ts", "../../src/fieldtypes/MDUpdateTypeEnum.ts", "../../src/fieldtypes/MessageEnum.ts", "../../src/fieldtypes/OrderStatusEnum.ts", "../../src/fieldtypes/OrderTypesEnum.ts", "../../src/fieldtypes/SideEnum.ts", "../../src/fieldtypes/SubscriptionRequestTypeEnum.ts", "../../src/fieldtypes/TimeInForceEnum.ts", "../../src/FIXParser.ts", "../../spec/SpecEnums.ts", "../../src/enums/EnumType.ts", "../../src/enums/Enums.ts", "../../spec/SpecFields.ts", "../../spec/SpecMessages.ts", "../../src/messagecontents/MessageContents.ts", "../../src/messages/Messages.ts", "../../spec/SpecCategories.ts", "../../src/fields/categories/CategoryType.ts", "../../src/fields/categories/Categories.ts", "../../spec/SpecDatatypes.ts", "../../src/fields/datatypes/FieldType.ts", "../../src/fields/datatypes/Datatypes.ts", "../../spec/SpecSections.ts", "../../src/fields/sections/SectionType.ts", "../../src/fields/sections/Sections.ts", "../../src/fields/Fields.ts", "../../src/util/util.ts", "../../src/message/Message.ts", "../../src/FIXParserBase.ts", "../../src/messagetemplates/MessageTemplates.ts", "../../src/session/SessionLogon.ts", "../../src/session/SessionLogout.ts", "../../src/util/MessageBuffer.ts", "../../src/session/SessionResendRequest.ts", "../../src/session/SessionSequenceReset.ts", "../../src/session/SessionTestRequest.ts", "../../src/session/ClientMessageProcessor.ts", "../../src/util/FrameDecoder.ts", "../../src/session/SessionFirstMessage.ts", "../../src/session/SessionSequence.ts", "../../src/session/ServerMessageProcessor.ts"],
  "sourcesContent": ["'use strict';\n\nconst { Duplex } = require('stream');\n\n/**\n * Emits the `'close'` event on a stream.\n *\n * @param {Duplex} stream The stream.\n * @private\n */\nfunction emitClose(stream) {\n  stream.emit('close');\n}\n\n/**\n * The listener of the `'end'` event.\n *\n * @private\n */\nfunction duplexOnEnd() {\n  if (!this.destroyed && this._writableState.finished) {\n    this.destroy();\n  }\n}\n\n/**\n * The listener of the `'error'` event.\n *\n * @param {Error} err The error\n * @private\n */\nfunction duplexOnError(err) {\n  this.removeListener('error', duplexOnError);\n  this.destroy();\n  if (this.listenerCount('error') === 0) {\n    // Do not suppress the throwing behavior.\n    this.emit('error', err);\n  }\n}\n\n/**\n * Wraps a `WebSocket` in a duplex stream.\n *\n * @param {WebSocket} ws The `WebSocket` to wrap\n * @param {Object} [options] The options for the `Duplex` constructor\n * @return {Duplex} The duplex stream\n * @public\n */\nfunction createWebSocketStream(ws, options) {\n  let terminateOnDestroy = true;\n\n  const duplex = new Duplex({\n    ...options,\n    autoDestroy: false,\n    emitClose: false,\n    objectMode: false,\n    writableObjectMode: false\n  });\n\n  ws.on('message', function message(msg, isBinary) {\n    const data =\n      !isBinary && duplex._readableState.objectMode ? msg.toString() : msg;\n\n    if (!duplex.push(data)) ws.pause();\n  });\n\n  ws.once('error', function error(err) {\n    if (duplex.destroyed) return;\n\n    // Prevent `ws.terminate()` from being called by `duplex._destroy()`.\n    //\n    // - If the `'error'` event is emitted before the `'open'` event, then\n    //   `ws.terminate()` is a noop as no socket is assigned.\n    // - Otherwise, the error is re-emitted by the listener of the `'error'`\n    //   event of the `Receiver` object. The listener already closes the\n    //   connection by calling `ws.close()`. This allows a close frame to be\n    //   sent to the other peer. If `ws.terminate()` is called right after this,\n    //   then the close frame might not be sent.\n    terminateOnDestroy = false;\n    duplex.destroy(err);\n  });\n\n  ws.once('close', function close() {\n    if (duplex.destroyed) return;\n\n    duplex.push(null);\n  });\n\n  duplex._destroy = function (err, callback) {\n    if (ws.readyState === ws.CLOSED) {\n      callback(err);\n      process.nextTick(emitClose, duplex);\n      return;\n    }\n\n    let called = false;\n\n    ws.once('error', function error(err) {\n      called = true;\n      callback(err);\n    });\n\n    ws.once('close', function close() {\n      if (!called) callback(err);\n      process.nextTick(emitClose, duplex);\n    });\n\n    if (terminateOnDestroy) ws.terminate();\n  };\n\n  duplex._final = function (callback) {\n    if (ws.readyState === ws.CONNECTING) {\n      ws.once('open', function open() {\n        duplex._final(callback);\n      });\n      return;\n    }\n\n    // If the value of the `_socket` property is `null` it means that `ws` is a\n    // client websocket and the handshake failed. In fact, when this happens, a\n    // socket is never assigned to the websocket. Wait for the `'error'` event\n    // that will be emitted by the websocket.\n    if (ws._socket === null) return;\n\n    if (ws._socket._writableState.finished) {\n      callback();\n      if (duplex._readableState.endEmitted) duplex.destroy();\n    } else {\n      ws._socket.once('finish', function finish() {\n        // `duplex` is not destroyed here because the `'end'` event will be\n        // emitted on `duplex` after this `'finish'` event. The EOF signaling\n        // `null` chunk is, in fact, pushed when the websocket emits `'close'`.\n        callback();\n      });\n      ws.close();\n    }\n  };\n\n  duplex._read = function () {\n    if (ws.isPaused) ws.resume();\n  };\n\n  duplex._write = function (chunk, encoding, callback) {\n    if (ws.readyState === ws.CONNECTING) {\n      ws.once('open', function open() {\n        duplex._write(chunk, encoding, callback);\n      });\n      return;\n    }\n\n    ws.send(chunk, callback);\n  };\n\n  duplex.on('end', duplexOnEnd);\n  duplex.on('error', duplexOnError);\n  return duplex;\n}\n\nmodule.exports = createWebSocketStream;\n", "'use strict';\n\nmodule.exports = {\n  BINARY_TYPES: ['nodebuffer', 'arraybuffer', 'fragments'],\n  EMPTY_BUFFER: Buffer.alloc(0),\n  GUID: '258EAFA5-E914-47DA-95CA-C5AB0DC85B11',\n  kForOnEventAttribute: Symbol('kIsForOnEventAttribute'),\n  kListener: Symbol('kListener'),\n  kStatusCode: Symbol('status-code'),\n  kWebSocket: Symbol('websocket'),\n  NOOP: () => {}\n};\n", "'use strict';\n\nconst { EMPTY_BUFFER } = require('./constants');\n\n/**\n * Merges an array of buffers into a new buffer.\n *\n * @param {Buffer[]} list The array of buffers to concat\n * @param {Number} totalLength The total length of buffers in the list\n * @return {Buffer} The resulting buffer\n * @public\n */\nfunction concat(list, totalLength) {\n  if (list.length === 0) return EMPTY_BUFFER;\n  if (list.length === 1) return list[0];\n\n  const target = Buffer.allocUnsafe(totalLength);\n  let offset = 0;\n\n  for (let i = 0; i < list.length; i++) {\n    const buf = list[i];\n    target.set(buf, offset);\n    offset += buf.length;\n  }\n\n  if (offset < totalLength) return target.slice(0, offset);\n\n  return target;\n}\n\n/**\n * Masks a buffer using the given mask.\n *\n * @param {Buffer} source The buffer to mask\n * @param {Buffer} mask The mask to use\n * @param {Buffer} output The buffer where to store the result\n * @param {Number} offset The offset at which to start writing\n * @param {Number} length The number of bytes to mask.\n * @public\n */\nfunction _mask(source, mask, output, offset, length) {\n  for (let i = 0; i < length; i++) {\n    output[offset + i] = source[i] ^ mask[i & 3];\n  }\n}\n\n/**\n * Unmasks a buffer using the given mask.\n *\n * @param {Buffer} buffer The buffer to unmask\n * @param {Buffer} mask The mask to use\n * @public\n */\nfunction _unmask(buffer, mask) {\n  for (let i = 0; i < buffer.length; i++) {\n    buffer[i] ^= mask[i & 3];\n  }\n}\n\n/**\n * Converts a buffer to an `ArrayBuffer`.\n *\n * @param {Buffer} buf The buffer to convert\n * @return {ArrayBuffer} Converted buffer\n * @public\n */\nfunction toArrayBuffer(buf) {\n  if (buf.byteLength === buf.buffer.byteLength) {\n    return buf.buffer;\n  }\n\n  return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n}\n\n/**\n * Converts `data` to a `Buffer`.\n *\n * @param {*} data The data to convert\n * @return {Buffer} The buffer\n * @throws {TypeError}\n * @public\n */\nfunction toBuffer(data) {\n  toBuffer.readOnly = true;\n\n  if (Buffer.isBuffer(data)) return data;\n\n  let buf;\n\n  if (data instanceof ArrayBuffer) {\n    buf = Buffer.from(data);\n  } else if (ArrayBuffer.isView(data)) {\n    buf = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n  } else {\n    buf = Buffer.from(data);\n    toBuffer.readOnly = false;\n  }\n\n  return buf;\n}\n\nmodule.exports = {\n  concat,\n  mask: _mask,\n  toArrayBuffer,\n  toBuffer,\n  unmask: _unmask\n};\n\n/* istanbul ignore else  */\nif (!process.env.WS_NO_BUFFER_UTIL) {\n  try {\n    const bufferUtil = require('bufferutil');\n\n    module.exports.mask = function (source, mask, output, offset, length) {\n      if (length < 48) _mask(source, mask, output, offset, length);\n      else bufferUtil.mask(source, mask, output, offset, length);\n    };\n\n    module.exports.unmask = function (buffer, mask) {\n      if (buffer.length < 32) _unmask(buffer, mask);\n      else bufferUtil.unmask(buffer, mask);\n    };\n  } catch (e) {\n    // Continue regardless of the error.\n  }\n}\n", "'use strict';\n\nconst kDone = Symbol('kDone');\nconst kRun = Symbol('kRun');\n\n/**\n * A very simple job queue with adjustable concurrency. Adapted from\n * https://github.com/STRML/async-limiter\n */\nclass Limiter {\n  /**\n   * Creates a new `Limiter`.\n   *\n   * @param {Number} [concurrency=Infinity] The maximum number of jobs allowed\n   *     to run concurrently\n   */\n  constructor(concurrency) {\n    this[kDone] = () => {\n      this.pending--;\n      this[kRun]();\n    };\n    this.concurrency = concurrency || Infinity;\n    this.jobs = [];\n    this.pending = 0;\n  }\n\n  /**\n   * Adds a job to the queue.\n   *\n   * @param {Function} job The job to run\n   * @public\n   */\n  add(job) {\n    this.jobs.push(job);\n    this[kRun]();\n  }\n\n  /**\n   * Removes a job from the queue and runs it if possible.\n   *\n   * @private\n   */\n  [kRun]() {\n    if (this.pending === this.concurrency) return;\n\n    if (this.jobs.length) {\n      const job = this.jobs.shift();\n\n      this.pending++;\n      job(this[kDone]);\n    }\n  }\n}\n\nmodule.exports = Limiter;\n", "'use strict';\n\nconst zlib = require('zlib');\n\nconst bufferUtil = require('./buffer-util');\nconst Limiter = require('./limiter');\nconst { kStatusCode } = require('./constants');\n\nconst TRAILER = Buffer.from([0x00, 0x00, 0xff, 0xff]);\nconst kPerMessageDeflate = Symbol('permessage-deflate');\nconst kTotalLength = Symbol('total-length');\nconst kCallback = Symbol('callback');\nconst kBuffers = Symbol('buffers');\nconst kError = Symbol('error');\n\n//\n// We limit zlib concurrency, which prevents severe memory fragmentation\n// as documented in https://github.com/nodejs/node/issues/8871#issuecomment-250915913\n// and https://github.com/websockets/ws/issues/1202\n//\n// Intentionally global; it's the global thread pool that's an issue.\n//\nlet zlibLimiter;\n\n/**\n * permessage-deflate implementation.\n */\nclass PerMessageDeflate {\n  /**\n   * Creates a PerMessageDeflate instance.\n   *\n   * @param {Object} [options] Configuration options\n   * @param {(Boolean|Number)} [options.clientMaxWindowBits] Advertise support\n   *     for, or request, a custom client window size\n   * @param {Boolean} [options.clientNoContextTakeover=false] Advertise/\n   *     acknowledge disabling of client context takeover\n   * @param {Number} [options.concurrencyLimit=10] The number of concurrent\n   *     calls to zlib\n   * @param {(Boolean|Number)} [options.serverMaxWindowBits] Request/confirm the\n   *     use of a custom server window size\n   * @param {Boolean} [options.serverNoContextTakeover=false] Request/accept\n   *     disabling of server context takeover\n   * @param {Number} [options.threshold=1024] Size (in bytes) below which\n   *     messages should not be compressed if context takeover is disabled\n   * @param {Object} [options.zlibDeflateOptions] Options to pass to zlib on\n   *     deflate\n   * @param {Object} [options.zlibInflateOptions] Options to pass to zlib on\n   *     inflate\n   * @param {Boolean} [isServer=false] Create the instance in either server or\n   *     client mode\n   * @param {Number} [maxPayload=0] The maximum allowed message length\n   */\n  constructor(options, isServer, maxPayload) {\n    this._maxPayload = maxPayload | 0;\n    this._options = options || {};\n    this._threshold =\n      this._options.threshold !== undefined ? this._options.threshold : 1024;\n    this._isServer = !!isServer;\n    this._deflate = null;\n    this._inflate = null;\n\n    this.params = null;\n\n    if (!zlibLimiter) {\n      const concurrency =\n        this._options.concurrencyLimit !== undefined\n          ? this._options.concurrencyLimit\n          : 10;\n      zlibLimiter = new Limiter(concurrency);\n    }\n  }\n\n  /**\n   * @type {String}\n   */\n  static get extensionName() {\n    return 'permessage-deflate';\n  }\n\n  /**\n   * Create an extension negotiation offer.\n   *\n   * @return {Object} Extension parameters\n   * @public\n   */\n  offer() {\n    const params = {};\n\n    if (this._options.serverNoContextTakeover) {\n      params.server_no_context_takeover = true;\n    }\n    if (this._options.clientNoContextTakeover) {\n      params.client_no_context_takeover = true;\n    }\n    if (this._options.serverMaxWindowBits) {\n      params.server_max_window_bits = this._options.serverMaxWindowBits;\n    }\n    if (this._options.clientMaxWindowBits) {\n      params.client_max_window_bits = this._options.clientMaxWindowBits;\n    } else if (this._options.clientMaxWindowBits == null) {\n      params.client_max_window_bits = true;\n    }\n\n    return params;\n  }\n\n  /**\n   * Accept an extension negotiation offer/response.\n   *\n   * @param {Array} configurations The extension negotiation offers/reponse\n   * @return {Object} Accepted configuration\n   * @public\n   */\n  accept(configurations) {\n    configurations = this.normalizeParams(configurations);\n\n    this.params = this._isServer\n      ? this.acceptAsServer(configurations)\n      : this.acceptAsClient(configurations);\n\n    return this.params;\n  }\n\n  /**\n   * Releases all resources used by the extension.\n   *\n   * @public\n   */\n  cleanup() {\n    if (this._inflate) {\n      this._inflate.close();\n      this._inflate = null;\n    }\n\n    if (this._deflate) {\n      const callback = this._deflate[kCallback];\n\n      this._deflate.close();\n      this._deflate = null;\n\n      if (callback) {\n        callback(\n          new Error(\n            'The deflate stream was closed while data was being processed'\n          )\n        );\n      }\n    }\n  }\n\n  /**\n   *  Accept an extension negotiation offer.\n   *\n   * @param {Array} offers The extension negotiation offers\n   * @return {Object} Accepted configuration\n   * @private\n   */\n  acceptAsServer(offers) {\n    const opts = this._options;\n    const accepted = offers.find((params) => {\n      if (\n        (opts.serverNoContextTakeover === false &&\n          params.server_no_context_takeover) ||\n        (params.server_max_window_bits &&\n          (opts.serverMaxWindowBits === false ||\n            (typeof opts.serverMaxWindowBits === 'number' &&\n              opts.serverMaxWindowBits > params.server_max_window_bits))) ||\n        (typeof opts.clientMaxWindowBits === 'number' &&\n          !params.client_max_window_bits)\n      ) {\n        return false;\n      }\n\n      return true;\n    });\n\n    if (!accepted) {\n      throw new Error('None of the extension offers can be accepted');\n    }\n\n    if (opts.serverNoContextTakeover) {\n      accepted.server_no_context_takeover = true;\n    }\n    if (opts.clientNoContextTakeover) {\n      accepted.client_no_context_takeover = true;\n    }\n    if (typeof opts.serverMaxWindowBits === 'number') {\n      accepted.server_max_window_bits = opts.serverMaxWindowBits;\n    }\n    if (typeof opts.clientMaxWindowBits === 'number') {\n      accepted.client_max_window_bits = opts.clientMaxWindowBits;\n    } else if (\n      accepted.client_max_window_bits === true ||\n      opts.clientMaxWindowBits === false\n    ) {\n      delete accepted.client_max_window_bits;\n    }\n\n    return accepted;\n  }\n\n  /**\n   * Accept the extension negotiation response.\n   *\n   * @param {Array} response The extension negotiation response\n   * @return {Object} Accepted configuration\n   * @private\n   */\n  acceptAsClient(response) {\n    const params = response[0];\n\n    if (\n      this._options.clientNoContextTakeover === false &&\n      params.client_no_context_takeover\n    ) {\n      throw new Error('Unexpected parameter \"client_no_context_takeover\"');\n    }\n\n    if (!params.client_max_window_bits) {\n      if (typeof this._options.clientMaxWindowBits === 'number') {\n        params.client_max_window_bits = this._options.clientMaxWindowBits;\n      }\n    } else if (\n      this._options.clientMaxWindowBits === false ||\n      (typeof this._options.clientMaxWindowBits === 'number' &&\n        params.client_max_window_bits > this._options.clientMaxWindowBits)\n    ) {\n      throw new Error(\n        'Unexpected or invalid parameter \"client_max_window_bits\"'\n      );\n    }\n\n    return params;\n  }\n\n  /**\n   * Normalize parameters.\n   *\n   * @param {Array} configurations The extension negotiation offers/reponse\n   * @return {Array} The offers/response with normalized parameters\n   * @private\n   */\n  normalizeParams(configurations) {\n    configurations.forEach((params) => {\n      Object.keys(params).forEach((key) => {\n        let value = params[key];\n\n        if (value.length > 1) {\n          throw new Error(`Parameter \"${key}\" must have only a single value`);\n        }\n\n        value = value[0];\n\n        if (key === 'client_max_window_bits') {\n          if (value !== true) {\n            const num = +value;\n            if (!Number.isInteger(num) || num < 8 || num > 15) {\n              throw new TypeError(\n                `Invalid value for parameter \"${key}\": ${value}`\n              );\n            }\n            value = num;\n          } else if (!this._isServer) {\n            throw new TypeError(\n              `Invalid value for parameter \"${key}\": ${value}`\n            );\n          }\n        } else if (key === 'server_max_window_bits') {\n          const num = +value;\n          if (!Number.isInteger(num) || num < 8 || num > 15) {\n            throw new TypeError(\n              `Invalid value for parameter \"${key}\": ${value}`\n            );\n          }\n          value = num;\n        } else if (\n          key === 'client_no_context_takeover' ||\n          key === 'server_no_context_takeover'\n        ) {\n          if (value !== true) {\n            throw new TypeError(\n              `Invalid value for parameter \"${key}\": ${value}`\n            );\n          }\n        } else {\n          throw new Error(`Unknown parameter \"${key}\"`);\n        }\n\n        params[key] = value;\n      });\n    });\n\n    return configurations;\n  }\n\n  /**\n   * Decompress data. Concurrency limited.\n   *\n   * @param {Buffer} data Compressed data\n   * @param {Boolean} fin Specifies whether or not this is the last fragment\n   * @param {Function} callback Callback\n   * @public\n   */\n  decompress(data, fin, callback) {\n    zlibLimiter.add((done) => {\n      this._decompress(data, fin, (err, result) => {\n        done();\n        callback(err, result);\n      });\n    });\n  }\n\n  /**\n   * Compress data. Concurrency limited.\n   *\n   * @param {(Buffer|String)} data Data to compress\n   * @param {Boolean} fin Specifies whether or not this is the last fragment\n   * @param {Function} callback Callback\n   * @public\n   */\n  compress(data, fin, callback) {\n    zlibLimiter.add((done) => {\n      this._compress(data, fin, (err, result) => {\n        done();\n        callback(err, result);\n      });\n    });\n  }\n\n  /**\n   * Decompress data.\n   *\n   * @param {Buffer} data Compressed data\n   * @param {Boolean} fin Specifies whether or not this is the last fragment\n   * @param {Function} callback Callback\n   * @private\n   */\n  _decompress(data, fin, callback) {\n    const endpoint = this._isServer ? 'client' : 'server';\n\n    if (!this._inflate) {\n      const key = `${endpoint}_max_window_bits`;\n      const windowBits =\n        typeof this.params[key] !== 'number'\n          ? zlib.Z_DEFAULT_WINDOWBITS\n          : this.params[key];\n\n      this._inflate = zlib.createInflateRaw({\n        ...this._options.zlibInflateOptions,\n        windowBits\n      });\n      this._inflate[kPerMessageDeflate] = this;\n      this._inflate[kTotalLength] = 0;\n      this._inflate[kBuffers] = [];\n      this._inflate.on('error', inflateOnError);\n      this._inflate.on('data', inflateOnData);\n    }\n\n    this._inflate[kCallback] = callback;\n\n    this._inflate.write(data);\n    if (fin) this._inflate.write(TRAILER);\n\n    this._inflate.flush(() => {\n      const err = this._inflate[kError];\n\n      if (err) {\n        this._inflate.close();\n        this._inflate = null;\n        callback(err);\n        return;\n      }\n\n      const data = bufferUtil.concat(\n        this._inflate[kBuffers],\n        this._inflate[kTotalLength]\n      );\n\n      if (this._inflate._readableState.endEmitted) {\n        this._inflate.close();\n        this._inflate = null;\n      } else {\n        this._inflate[kTotalLength] = 0;\n        this._inflate[kBuffers] = [];\n\n        if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n          this._inflate.reset();\n        }\n      }\n\n      callback(null, data);\n    });\n  }\n\n  /**\n   * Compress data.\n   *\n   * @param {(Buffer|String)} data Data to compress\n   * @param {Boolean} fin Specifies whether or not this is the last fragment\n   * @param {Function} callback Callback\n   * @private\n   */\n  _compress(data, fin, callback) {\n    const endpoint = this._isServer ? 'server' : 'client';\n\n    if (!this._deflate) {\n      const key = `${endpoint}_max_window_bits`;\n      const windowBits =\n        typeof this.params[key] !== 'number'\n          ? zlib.Z_DEFAULT_WINDOWBITS\n          : this.params[key];\n\n      this._deflate = zlib.createDeflateRaw({\n        ...this._options.zlibDeflateOptions,\n        windowBits\n      });\n\n      this._deflate[kTotalLength] = 0;\n      this._deflate[kBuffers] = [];\n\n      this._deflate.on('data', deflateOnData);\n    }\n\n    this._deflate[kCallback] = callback;\n\n    this._deflate.write(data);\n    this._deflate.flush(zlib.Z_SYNC_FLUSH, () => {\n      if (!this._deflate) {\n        //\n        // The deflate stream was closed while data was being processed.\n        //\n        return;\n      }\n\n      let data = bufferUtil.concat(\n        this._deflate[kBuffers],\n        this._deflate[kTotalLength]\n      );\n\n      if (fin) data = data.slice(0, data.length - 4);\n\n      //\n      // Ensure that the callback will not be called again in\n      // `PerMessageDeflate#cleanup()`.\n      //\n      this._deflate[kCallback] = null;\n\n      this._deflate[kTotalLength] = 0;\n      this._deflate[kBuffers] = [];\n\n      if (fin && this.params[`${endpoint}_no_context_takeover`]) {\n        this._deflate.reset();\n      }\n\n      callback(null, data);\n    });\n  }\n}\n\nmodule.exports = PerMessageDeflate;\n\n/**\n * The listener of the `zlib.DeflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction deflateOnData(chunk) {\n  this[kBuffers].push(chunk);\n  this[kTotalLength] += chunk.length;\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction inflateOnData(chunk) {\n  this[kTotalLength] += chunk.length;\n\n  if (\n    this[kPerMessageDeflate]._maxPayload < 1 ||\n    this[kTotalLength] <= this[kPerMessageDeflate]._maxPayload\n  ) {\n    this[kBuffers].push(chunk);\n    return;\n  }\n\n  this[kError] = new RangeError('Max payload size exceeded');\n  this[kError].code = 'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH';\n  this[kError][kStatusCode] = 1009;\n  this.removeListener('data', inflateOnData);\n  this.reset();\n}\n\n/**\n * The listener of the `zlib.InflateRaw` stream `'error'` event.\n *\n * @param {Error} err The emitted error\n * @private\n */\nfunction inflateOnError(err) {\n  //\n  // There is no need to call `Zlib#close()` as the handle is automatically\n  // closed when an error is emitted.\n  //\n  this[kPerMessageDeflate]._inflate = null;\n  err[kStatusCode] = 1007;\n  this[kCallback](err);\n}\n", "'use strict';\n\n//\n// Allowed token characters:\n//\n// '!', '#', '$', '%', '&', ''', '*', '+', '-',\n// '.', 0-9, A-Z, '^', '_', '`', a-z, '|', '~'\n//\n// tokenChars[32] === 0 // ' '\n// tokenChars[33] === 1 // '!'\n// tokenChars[34] === 0 // '\"'\n// ...\n//\n// prettier-ignore\nconst tokenChars = [\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 15\n  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 31\n  0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, // 32 - 47\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 48 - 63\n  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 64 - 79\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, // 80 - 95\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 96 - 111\n  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0 // 112 - 127\n];\n\n/**\n * Checks if a status code is allowed in a close frame.\n *\n * @param {Number} code The status code\n * @return {Boolean} `true` if the status code is valid, else `false`\n * @public\n */\nfunction isValidStatusCode(code) {\n  return (\n    (code >= 1000 &&\n      code <= 1014 &&\n      code !== 1004 &&\n      code !== 1005 &&\n      code !== 1006) ||\n    (code >= 3000 && code <= 4999)\n  );\n}\n\n/**\n * Checks if a given buffer contains only correct UTF-8.\n * Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by\n * Markus Kuhn.\n *\n * @param {Buffer} buf The buffer to check\n * @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`\n * @public\n */\nfunction _isValidUTF8(buf) {\n  const len = buf.length;\n  let i = 0;\n\n  while (i < len) {\n    if ((buf[i] & 0x80) === 0) {\n      // 0xxxxxxx\n      i++;\n    } else if ((buf[i] & 0xe0) === 0xc0) {\n      // 110xxxxx 10xxxxxx\n      if (\n        i + 1 === len ||\n        (buf[i + 1] & 0xc0) !== 0x80 ||\n        (buf[i] & 0xfe) === 0xc0 // Overlong\n      ) {\n        return false;\n      }\n\n      i += 2;\n    } else if ((buf[i] & 0xf0) === 0xe0) {\n      // 1110xxxx 10xxxxxx 10xxxxxx\n      if (\n        i + 2 >= len ||\n        (buf[i + 1] & 0xc0) !== 0x80 ||\n        (buf[i + 2] & 0xc0) !== 0x80 ||\n        (buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80) || // Overlong\n        (buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0) // Surrogate (U+D800 - U+DFFF)\n      ) {\n        return false;\n      }\n\n      i += 3;\n    } else if ((buf[i] & 0xf8) === 0xf0) {\n      // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n      if (\n        i + 3 >= len ||\n        (buf[i + 1] & 0xc0) !== 0x80 ||\n        (buf[i + 2] & 0xc0) !== 0x80 ||\n        (buf[i + 3] & 0xc0) !== 0x80 ||\n        (buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80) || // Overlong\n        (buf[i] === 0xf4 && buf[i + 1] > 0x8f) ||\n        buf[i] > 0xf4 // > U+10FFFF\n      ) {\n        return false;\n      }\n\n      i += 4;\n    } else {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nmodule.exports = {\n  isValidStatusCode,\n  isValidUTF8: _isValidUTF8,\n  tokenChars\n};\n\n/* istanbul ignore else  */\nif (!process.env.WS_NO_UTF_8_VALIDATE) {\n  try {\n    const isValidUTF8 = require('utf-8-validate');\n\n    module.exports.isValidUTF8 = function (buf) {\n      return buf.length < 150 ? _isValidUTF8(buf) : isValidUTF8(buf);\n    };\n  } catch (e) {\n    // Continue regardless of the error.\n  }\n}\n", "'use strict';\n\nconst { Writable } = require('stream');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst {\n  BINARY_TYPES,\n  EMPTY_BUFFER,\n  kStatusCode,\n  kWebSocket\n} = require('./constants');\nconst { concat, toArrayBuffer, unmask } = require('./buffer-util');\nconst { isValidStatusCode, isValidUTF8 } = require('./validation');\n\nconst GET_INFO = 0;\nconst GET_PAYLOAD_LENGTH_16 = 1;\nconst GET_PAYLOAD_LENGTH_64 = 2;\nconst GET_MASK = 3;\nconst GET_DATA = 4;\nconst INFLATING = 5;\n\n/**\n * HyBi Receiver implementation.\n *\n * @extends Writable\n */\nclass Receiver extends Writable {\n  /**\n   * Creates a Receiver instance.\n   *\n   * @param {Object} [options] Options object\n   * @param {String} [options.binaryType=nodebuffer] The type for binary data\n   * @param {Object} [options.extensions] An object containing the negotiated\n   *     extensions\n   * @param {Boolean} [options.isServer=false] Specifies whether to operate in\n   *     client or server mode\n   * @param {Number} [options.maxPayload=0] The maximum allowed message length\n   * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n   *     not to skip UTF-8 validation for text and close messages\n   */\n  constructor(options = {}) {\n    super();\n\n    this._binaryType = options.binaryType || BINARY_TYPES[0];\n    this._extensions = options.extensions || {};\n    this._isServer = !!options.isServer;\n    this._maxPayload = options.maxPayload | 0;\n    this._skipUTF8Validation = !!options.skipUTF8Validation;\n    this[kWebSocket] = undefined;\n\n    this._bufferedBytes = 0;\n    this._buffers = [];\n\n    this._compressed = false;\n    this._payloadLength = 0;\n    this._mask = undefined;\n    this._fragmented = 0;\n    this._masked = false;\n    this._fin = false;\n    this._opcode = 0;\n\n    this._totalPayloadLength = 0;\n    this._messageLength = 0;\n    this._fragments = [];\n\n    this._state = GET_INFO;\n    this._loop = false;\n  }\n\n  /**\n   * Implements `Writable.prototype._write()`.\n   *\n   * @param {Buffer} chunk The chunk of data to write\n   * @param {String} encoding The character encoding of `chunk`\n   * @param {Function} cb Callback\n   * @private\n   */\n  _write(chunk, encoding, cb) {\n    if (this._opcode === 0x08 && this._state == GET_INFO) return cb();\n\n    this._bufferedBytes += chunk.length;\n    this._buffers.push(chunk);\n    this.startLoop(cb);\n  }\n\n  /**\n   * Consumes `n` bytes from the buffered data.\n   *\n   * @param {Number} n The number of bytes to consume\n   * @return {Buffer} The consumed bytes\n   * @private\n   */\n  consume(n) {\n    this._bufferedBytes -= n;\n\n    if (n === this._buffers[0].length) return this._buffers.shift();\n\n    if (n < this._buffers[0].length) {\n      const buf = this._buffers[0];\n      this._buffers[0] = buf.slice(n);\n      return buf.slice(0, n);\n    }\n\n    const dst = Buffer.allocUnsafe(n);\n\n    do {\n      const buf = this._buffers[0];\n      const offset = dst.length - n;\n\n      if (n >= buf.length) {\n        dst.set(this._buffers.shift(), offset);\n      } else {\n        dst.set(new Uint8Array(buf.buffer, buf.byteOffset, n), offset);\n        this._buffers[0] = buf.slice(n);\n      }\n\n      n -= buf.length;\n    } while (n > 0);\n\n    return dst;\n  }\n\n  /**\n   * Starts the parsing loop.\n   *\n   * @param {Function} cb Callback\n   * @private\n   */\n  startLoop(cb) {\n    let err;\n    this._loop = true;\n\n    do {\n      switch (this._state) {\n        case GET_INFO:\n          err = this.getInfo();\n          break;\n        case GET_PAYLOAD_LENGTH_16:\n          err = this.getPayloadLength16();\n          break;\n        case GET_PAYLOAD_LENGTH_64:\n          err = this.getPayloadLength64();\n          break;\n        case GET_MASK:\n          this.getMask();\n          break;\n        case GET_DATA:\n          err = this.getData(cb);\n          break;\n        default:\n          // `INFLATING`\n          this._loop = false;\n          return;\n      }\n    } while (this._loop);\n\n    cb(err);\n  }\n\n  /**\n   * Reads the first two bytes of a frame.\n   *\n   * @return {(RangeError|undefined)} A possible error\n   * @private\n   */\n  getInfo() {\n    if (this._bufferedBytes < 2) {\n      this._loop = false;\n      return;\n    }\n\n    const buf = this.consume(2);\n\n    if ((buf[0] & 0x30) !== 0x00) {\n      this._loop = false;\n      return error(\n        RangeError,\n        'RSV2 and RSV3 must be clear',\n        true,\n        1002,\n        'WS_ERR_UNEXPECTED_RSV_2_3'\n      );\n    }\n\n    const compressed = (buf[0] & 0x40) === 0x40;\n\n    if (compressed && !this._extensions[PerMessageDeflate.extensionName]) {\n      this._loop = false;\n      return error(\n        RangeError,\n        'RSV1 must be clear',\n        true,\n        1002,\n        'WS_ERR_UNEXPECTED_RSV_1'\n      );\n    }\n\n    this._fin = (buf[0] & 0x80) === 0x80;\n    this._opcode = buf[0] & 0x0f;\n    this._payloadLength = buf[1] & 0x7f;\n\n    if (this._opcode === 0x00) {\n      if (compressed) {\n        this._loop = false;\n        return error(\n          RangeError,\n          'RSV1 must be clear',\n          true,\n          1002,\n          'WS_ERR_UNEXPECTED_RSV_1'\n        );\n      }\n\n      if (!this._fragmented) {\n        this._loop = false;\n        return error(\n          RangeError,\n          'invalid opcode 0',\n          true,\n          1002,\n          'WS_ERR_INVALID_OPCODE'\n        );\n      }\n\n      this._opcode = this._fragmented;\n    } else if (this._opcode === 0x01 || this._opcode === 0x02) {\n      if (this._fragmented) {\n        this._loop = false;\n        return error(\n          RangeError,\n          `invalid opcode ${this._opcode}`,\n          true,\n          1002,\n          'WS_ERR_INVALID_OPCODE'\n        );\n      }\n\n      this._compressed = compressed;\n    } else if (this._opcode > 0x07 && this._opcode < 0x0b) {\n      if (!this._fin) {\n        this._loop = false;\n        return error(\n          RangeError,\n          'FIN must be set',\n          true,\n          1002,\n          'WS_ERR_EXPECTED_FIN'\n        );\n      }\n\n      if (compressed) {\n        this._loop = false;\n        return error(\n          RangeError,\n          'RSV1 must be clear',\n          true,\n          1002,\n          'WS_ERR_UNEXPECTED_RSV_1'\n        );\n      }\n\n      if (this._payloadLength > 0x7d) {\n        this._loop = false;\n        return error(\n          RangeError,\n          `invalid payload length ${this._payloadLength}`,\n          true,\n          1002,\n          'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n        );\n      }\n    } else {\n      this._loop = false;\n      return error(\n        RangeError,\n        `invalid opcode ${this._opcode}`,\n        true,\n        1002,\n        'WS_ERR_INVALID_OPCODE'\n      );\n    }\n\n    if (!this._fin && !this._fragmented) this._fragmented = this._opcode;\n    this._masked = (buf[1] & 0x80) === 0x80;\n\n    if (this._isServer) {\n      if (!this._masked) {\n        this._loop = false;\n        return error(\n          RangeError,\n          'MASK must be set',\n          true,\n          1002,\n          'WS_ERR_EXPECTED_MASK'\n        );\n      }\n    } else if (this._masked) {\n      this._loop = false;\n      return error(\n        RangeError,\n        'MASK must be clear',\n        true,\n        1002,\n        'WS_ERR_UNEXPECTED_MASK'\n      );\n    }\n\n    if (this._payloadLength === 126) this._state = GET_PAYLOAD_LENGTH_16;\n    else if (this._payloadLength === 127) this._state = GET_PAYLOAD_LENGTH_64;\n    else return this.haveLength();\n  }\n\n  /**\n   * Gets extended payload length (7+16).\n   *\n   * @return {(RangeError|undefined)} A possible error\n   * @private\n   */\n  getPayloadLength16() {\n    if (this._bufferedBytes < 2) {\n      this._loop = false;\n      return;\n    }\n\n    this._payloadLength = this.consume(2).readUInt16BE(0);\n    return this.haveLength();\n  }\n\n  /**\n   * Gets extended payload length (7+64).\n   *\n   * @return {(RangeError|undefined)} A possible error\n   * @private\n   */\n  getPayloadLength64() {\n    if (this._bufferedBytes < 8) {\n      this._loop = false;\n      return;\n    }\n\n    const buf = this.consume(8);\n    const num = buf.readUInt32BE(0);\n\n    //\n    // The maximum safe integer in JavaScript is 2^53 - 1. An error is returned\n    // if payload length is greater than this number.\n    //\n    if (num > Math.pow(2, 53 - 32) - 1) {\n      this._loop = false;\n      return error(\n        RangeError,\n        'Unsupported WebSocket frame: payload length > 2^53 - 1',\n        false,\n        1009,\n        'WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH'\n      );\n    }\n\n    this._payloadLength = num * Math.pow(2, 32) + buf.readUInt32BE(4);\n    return this.haveLength();\n  }\n\n  /**\n   * Payload length has been read.\n   *\n   * @return {(RangeError|undefined)} A possible error\n   * @private\n   */\n  haveLength() {\n    if (this._payloadLength && this._opcode < 0x08) {\n      this._totalPayloadLength += this._payloadLength;\n      if (this._totalPayloadLength > this._maxPayload && this._maxPayload > 0) {\n        this._loop = false;\n        return error(\n          RangeError,\n          'Max payload size exceeded',\n          false,\n          1009,\n          'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n        );\n      }\n    }\n\n    if (this._masked) this._state = GET_MASK;\n    else this._state = GET_DATA;\n  }\n\n  /**\n   * Reads mask bytes.\n   *\n   * @private\n   */\n  getMask() {\n    if (this._bufferedBytes < 4) {\n      this._loop = false;\n      return;\n    }\n\n    this._mask = this.consume(4);\n    this._state = GET_DATA;\n  }\n\n  /**\n   * Reads data bytes.\n   *\n   * @param {Function} cb Callback\n   * @return {(Error|RangeError|undefined)} A possible error\n   * @private\n   */\n  getData(cb) {\n    let data = EMPTY_BUFFER;\n\n    if (this._payloadLength) {\n      if (this._bufferedBytes < this._payloadLength) {\n        this._loop = false;\n        return;\n      }\n\n      data = this.consume(this._payloadLength);\n\n      if (\n        this._masked &&\n        (this._mask[0] | this._mask[1] | this._mask[2] | this._mask[3]) !== 0\n      ) {\n        unmask(data, this._mask);\n      }\n    }\n\n    if (this._opcode > 0x07) return this.controlMessage(data);\n\n    if (this._compressed) {\n      this._state = INFLATING;\n      this.decompress(data, cb);\n      return;\n    }\n\n    if (data.length) {\n      //\n      // This message is not compressed so its length is the sum of the payload\n      // length of all fragments.\n      //\n      this._messageLength = this._totalPayloadLength;\n      this._fragments.push(data);\n    }\n\n    return this.dataMessage();\n  }\n\n  /**\n   * Decompresses data.\n   *\n   * @param {Buffer} data Compressed data\n   * @param {Function} cb Callback\n   * @private\n   */\n  decompress(data, cb) {\n    const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n    perMessageDeflate.decompress(data, this._fin, (err, buf) => {\n      if (err) return cb(err);\n\n      if (buf.length) {\n        this._messageLength += buf.length;\n        if (this._messageLength > this._maxPayload && this._maxPayload > 0) {\n          return cb(\n            error(\n              RangeError,\n              'Max payload size exceeded',\n              false,\n              1009,\n              'WS_ERR_UNSUPPORTED_MESSAGE_LENGTH'\n            )\n          );\n        }\n\n        this._fragments.push(buf);\n      }\n\n      const er = this.dataMessage();\n      if (er) return cb(er);\n\n      this.startLoop(cb);\n    });\n  }\n\n  /**\n   * Handles a data message.\n   *\n   * @return {(Error|undefined)} A possible error\n   * @private\n   */\n  dataMessage() {\n    if (this._fin) {\n      const messageLength = this._messageLength;\n      const fragments = this._fragments;\n\n      this._totalPayloadLength = 0;\n      this._messageLength = 0;\n      this._fragmented = 0;\n      this._fragments = [];\n\n      if (this._opcode === 2) {\n        let data;\n\n        if (this._binaryType === 'nodebuffer') {\n          data = concat(fragments, messageLength);\n        } else if (this._binaryType === 'arraybuffer') {\n          data = toArrayBuffer(concat(fragments, messageLength));\n        } else {\n          data = fragments;\n        }\n\n        this.emit('message', data, true);\n      } else {\n        const buf = concat(fragments, messageLength);\n\n        if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n          this._loop = false;\n          return error(\n            Error,\n            'invalid UTF-8 sequence',\n            true,\n            1007,\n            'WS_ERR_INVALID_UTF8'\n          );\n        }\n\n        this.emit('message', buf, false);\n      }\n    }\n\n    this._state = GET_INFO;\n  }\n\n  /**\n   * Handles a control message.\n   *\n   * @param {Buffer} data Data to handle\n   * @return {(Error|RangeError|undefined)} A possible error\n   * @private\n   */\n  controlMessage(data) {\n    if (this._opcode === 0x08) {\n      this._loop = false;\n\n      if (data.length === 0) {\n        this.emit('conclude', 1005, EMPTY_BUFFER);\n        this.end();\n      } else if (data.length === 1) {\n        return error(\n          RangeError,\n          'invalid payload length 1',\n          true,\n          1002,\n          'WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH'\n        );\n      } else {\n        const code = data.readUInt16BE(0);\n\n        if (!isValidStatusCode(code)) {\n          return error(\n            RangeError,\n            `invalid status code ${code}`,\n            true,\n            1002,\n            'WS_ERR_INVALID_CLOSE_CODE'\n          );\n        }\n\n        const buf = data.slice(2);\n\n        if (!this._skipUTF8Validation && !isValidUTF8(buf)) {\n          return error(\n            Error,\n            'invalid UTF-8 sequence',\n            true,\n            1007,\n            'WS_ERR_INVALID_UTF8'\n          );\n        }\n\n        this.emit('conclude', code, buf);\n        this.end();\n      }\n    } else if (this._opcode === 0x09) {\n      this.emit('ping', data);\n    } else {\n      this.emit('pong', data);\n    }\n\n    this._state = GET_INFO;\n  }\n}\n\nmodule.exports = Receiver;\n\n/**\n * Builds an error object.\n *\n * @param {function(new:Error|RangeError)} ErrorCtor The error constructor\n * @param {String} message The error message\n * @param {Boolean} prefix Specifies whether or not to add a default prefix to\n *     `message`\n * @param {Number} statusCode The status code\n * @param {String} errorCode The exposed error code\n * @return {(Error|RangeError)} The error\n * @private\n */\nfunction error(ErrorCtor, message, prefix, statusCode, errorCode) {\n  const err = new ErrorCtor(\n    prefix ? `Invalid WebSocket frame: ${message}` : message\n  );\n\n  Error.captureStackTrace(err, error);\n  err.code = errorCode;\n  err[kStatusCode] = statusCode;\n  return err;\n}\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls$\" }] */\n\n'use strict';\n\nconst net = require('net');\nconst tls = require('tls');\nconst { randomFillSync } = require('crypto');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst { EMPTY_BUFFER } = require('./constants');\nconst { isValidStatusCode } = require('./validation');\nconst { mask: applyMask, toBuffer } = require('./buffer-util');\n\nconst kByteLength = Symbol('kByteLength');\nconst maskBuffer = Buffer.alloc(4);\n\n/**\n * HyBi Sender implementation.\n */\nclass Sender {\n  /**\n   * Creates a Sender instance.\n   *\n   * @param {(net.Socket|tls.Socket)} socket The connection socket\n   * @param {Object} [extensions] An object containing the negotiated extensions\n   * @param {Function} [generateMask] The function used to generate the masking\n   *     key\n   */\n  constructor(socket, extensions, generateMask) {\n    this._extensions = extensions || {};\n\n    if (generateMask) {\n      this._generateMask = generateMask;\n      this._maskBuffer = Buffer.alloc(4);\n    }\n\n    this._socket = socket;\n\n    this._firstFragment = true;\n    this._compress = false;\n\n    this._bufferedBytes = 0;\n    this._deflating = false;\n    this._queue = [];\n  }\n\n  /**\n   * Frames a piece of data according to the HyBi WebSocket protocol.\n   *\n   * @param {(Buffer|String)} data The data to frame\n   * @param {Object} options Options object\n   * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n   *     FIN bit\n   * @param {Function} [options.generateMask] The function used to generate the\n   *     masking key\n   * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n   *     `data`\n   * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n   *     key\n   * @param {Number} options.opcode The opcode\n   * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n   *     modified\n   * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n   *     RSV1 bit\n   * @return {(Buffer|String)[]} The framed data\n   * @public\n   */\n  static frame(data, options) {\n    let mask;\n    let merge = false;\n    let offset = 2;\n    let skipMasking = false;\n\n    if (options.mask) {\n      mask = options.maskBuffer || maskBuffer;\n\n      if (options.generateMask) {\n        options.generateMask(mask);\n      } else {\n        randomFillSync(mask, 0, 4);\n      }\n\n      skipMasking = (mask[0] | mask[1] | mask[2] | mask[3]) === 0;\n      offset = 6;\n    }\n\n    let dataLength;\n\n    if (typeof data === 'string') {\n      if (\n        (!options.mask || skipMasking) &&\n        options[kByteLength] !== undefined\n      ) {\n        dataLength = options[kByteLength];\n      } else {\n        data = Buffer.from(data);\n        dataLength = data.length;\n      }\n    } else {\n      dataLength = data.length;\n      merge = options.mask && options.readOnly && !skipMasking;\n    }\n\n    let payloadLength = dataLength;\n\n    if (dataLength >= 65536) {\n      offset += 8;\n      payloadLength = 127;\n    } else if (dataLength > 125) {\n      offset += 2;\n      payloadLength = 126;\n    }\n\n    const target = Buffer.allocUnsafe(merge ? dataLength + offset : offset);\n\n    target[0] = options.fin ? options.opcode | 0x80 : options.opcode;\n    if (options.rsv1) target[0] |= 0x40;\n\n    target[1] = payloadLength;\n\n    if (payloadLength === 126) {\n      target.writeUInt16BE(dataLength, 2);\n    } else if (payloadLength === 127) {\n      target[2] = target[3] = 0;\n      target.writeUIntBE(dataLength, 4, 6);\n    }\n\n    if (!options.mask) return [target, data];\n\n    target[1] |= 0x80;\n    target[offset - 4] = mask[0];\n    target[offset - 3] = mask[1];\n    target[offset - 2] = mask[2];\n    target[offset - 1] = mask[3];\n\n    if (skipMasking) return [target, data];\n\n    if (merge) {\n      applyMask(data, mask, target, offset, dataLength);\n      return [target];\n    }\n\n    applyMask(data, mask, data, 0, dataLength);\n    return [target, data];\n  }\n\n  /**\n   * Sends a close message to the other peer.\n   *\n   * @param {Number} [code] The status code component of the body\n   * @param {(String|Buffer)} [data] The message component of the body\n   * @param {Boolean} [mask=false] Specifies whether or not to mask the message\n   * @param {Function} [cb] Callback\n   * @public\n   */\n  close(code, data, mask, cb) {\n    let buf;\n\n    if (code === undefined) {\n      buf = EMPTY_BUFFER;\n    } else if (typeof code !== 'number' || !isValidStatusCode(code)) {\n      throw new TypeError('First argument must be a valid error code number');\n    } else if (data === undefined || !data.length) {\n      buf = Buffer.allocUnsafe(2);\n      buf.writeUInt16BE(code, 0);\n    } else {\n      const length = Buffer.byteLength(data);\n\n      if (length > 123) {\n        throw new RangeError('The message must not be greater than 123 bytes');\n      }\n\n      buf = Buffer.allocUnsafe(2 + length);\n      buf.writeUInt16BE(code, 0);\n\n      if (typeof data === 'string') {\n        buf.write(data, 2);\n      } else {\n        buf.set(data, 2);\n      }\n    }\n\n    const options = {\n      [kByteLength]: buf.length,\n      fin: true,\n      generateMask: this._generateMask,\n      mask,\n      maskBuffer: this._maskBuffer,\n      opcode: 0x08,\n      readOnly: false,\n      rsv1: false\n    };\n\n    if (this._deflating) {\n      this.enqueue([this.dispatch, buf, false, options, cb]);\n    } else {\n      this.sendFrame(Sender.frame(buf, options), cb);\n    }\n  }\n\n  /**\n   * Sends a ping message to the other peer.\n   *\n   * @param {*} data The message to send\n   * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n   * @param {Function} [cb] Callback\n   * @public\n   */\n  ping(data, mask, cb) {\n    let byteLength;\n    let readOnly;\n\n    if (typeof data === 'string') {\n      byteLength = Buffer.byteLength(data);\n      readOnly = false;\n    } else {\n      data = toBuffer(data);\n      byteLength = data.length;\n      readOnly = toBuffer.readOnly;\n    }\n\n    if (byteLength > 125) {\n      throw new RangeError('The data size must not be greater than 125 bytes');\n    }\n\n    const options = {\n      [kByteLength]: byteLength,\n      fin: true,\n      generateMask: this._generateMask,\n      mask,\n      maskBuffer: this._maskBuffer,\n      opcode: 0x09,\n      readOnly,\n      rsv1: false\n    };\n\n    if (this._deflating) {\n      this.enqueue([this.dispatch, data, false, options, cb]);\n    } else {\n      this.sendFrame(Sender.frame(data, options), cb);\n    }\n  }\n\n  /**\n   * Sends a pong message to the other peer.\n   *\n   * @param {*} data The message to send\n   * @param {Boolean} [mask=false] Specifies whether or not to mask `data`\n   * @param {Function} [cb] Callback\n   * @public\n   */\n  pong(data, mask, cb) {\n    let byteLength;\n    let readOnly;\n\n    if (typeof data === 'string') {\n      byteLength = Buffer.byteLength(data);\n      readOnly = false;\n    } else {\n      data = toBuffer(data);\n      byteLength = data.length;\n      readOnly = toBuffer.readOnly;\n    }\n\n    if (byteLength > 125) {\n      throw new RangeError('The data size must not be greater than 125 bytes');\n    }\n\n    const options = {\n      [kByteLength]: byteLength,\n      fin: true,\n      generateMask: this._generateMask,\n      mask,\n      maskBuffer: this._maskBuffer,\n      opcode: 0x0a,\n      readOnly,\n      rsv1: false\n    };\n\n    if (this._deflating) {\n      this.enqueue([this.dispatch, data, false, options, cb]);\n    } else {\n      this.sendFrame(Sender.frame(data, options), cb);\n    }\n  }\n\n  /**\n   * Sends a data message to the other peer.\n   *\n   * @param {*} data The message to send\n   * @param {Object} options Options object\n   * @param {Boolean} [options.binary=false] Specifies whether `data` is binary\n   *     or text\n   * @param {Boolean} [options.compress=false] Specifies whether or not to\n   *     compress `data`\n   * @param {Boolean} [options.fin=false] Specifies whether the fragment is the\n   *     last one\n   * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n   *     `data`\n   * @param {Function} [cb] Callback\n   * @public\n   */\n  send(data, options, cb) {\n    const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n    let opcode = options.binary ? 2 : 1;\n    let rsv1 = options.compress;\n\n    let byteLength;\n    let readOnly;\n\n    if (typeof data === 'string') {\n      byteLength = Buffer.byteLength(data);\n      readOnly = false;\n    } else {\n      data = toBuffer(data);\n      byteLength = data.length;\n      readOnly = toBuffer.readOnly;\n    }\n\n    if (this._firstFragment) {\n      this._firstFragment = false;\n      if (\n        rsv1 &&\n        perMessageDeflate &&\n        perMessageDeflate.params[\n          perMessageDeflate._isServer\n            ? 'server_no_context_takeover'\n            : 'client_no_context_takeover'\n        ]\n      ) {\n        rsv1 = byteLength >= perMessageDeflate._threshold;\n      }\n      this._compress = rsv1;\n    } else {\n      rsv1 = false;\n      opcode = 0;\n    }\n\n    if (options.fin) this._firstFragment = true;\n\n    if (perMessageDeflate) {\n      const opts = {\n        [kByteLength]: byteLength,\n        fin: options.fin,\n        generateMask: this._generateMask,\n        mask: options.mask,\n        maskBuffer: this._maskBuffer,\n        opcode,\n        readOnly,\n        rsv1\n      };\n\n      if (this._deflating) {\n        this.enqueue([this.dispatch, data, this._compress, opts, cb]);\n      } else {\n        this.dispatch(data, this._compress, opts, cb);\n      }\n    } else {\n      this.sendFrame(\n        Sender.frame(data, {\n          [kByteLength]: byteLength,\n          fin: options.fin,\n          generateMask: this._generateMask,\n          mask: options.mask,\n          maskBuffer: this._maskBuffer,\n          opcode,\n          readOnly,\n          rsv1: false\n        }),\n        cb\n      );\n    }\n  }\n\n  /**\n   * Dispatches a message.\n   *\n   * @param {(Buffer|String)} data The message to send\n   * @param {Boolean} [compress=false] Specifies whether or not to compress\n   *     `data`\n   * @param {Object} options Options object\n   * @param {Boolean} [options.fin=false] Specifies whether or not to set the\n   *     FIN bit\n   * @param {Function} [options.generateMask] The function used to generate the\n   *     masking key\n   * @param {Boolean} [options.mask=false] Specifies whether or not to mask\n   *     `data`\n   * @param {Buffer} [options.maskBuffer] The buffer used to store the masking\n   *     key\n   * @param {Number} options.opcode The opcode\n   * @param {Boolean} [options.readOnly=false] Specifies whether `data` can be\n   *     modified\n   * @param {Boolean} [options.rsv1=false] Specifies whether or not to set the\n   *     RSV1 bit\n   * @param {Function} [cb] Callback\n   * @private\n   */\n  dispatch(data, compress, options, cb) {\n    if (!compress) {\n      this.sendFrame(Sender.frame(data, options), cb);\n      return;\n    }\n\n    const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName];\n\n    this._bufferedBytes += options[kByteLength];\n    this._deflating = true;\n    perMessageDeflate.compress(data, options.fin, (_, buf) => {\n      if (this._socket.destroyed) {\n        const err = new Error(\n          'The socket was closed while data was being compressed'\n        );\n\n        if (typeof cb === 'function') cb(err);\n\n        for (let i = 0; i < this._queue.length; i++) {\n          const params = this._queue[i];\n          const callback = params[params.length - 1];\n\n          if (typeof callback === 'function') callback(err);\n        }\n\n        return;\n      }\n\n      this._bufferedBytes -= options[kByteLength];\n      this._deflating = false;\n      options.readOnly = false;\n      this.sendFrame(Sender.frame(buf, options), cb);\n      this.dequeue();\n    });\n  }\n\n  /**\n   * Executes queued send operations.\n   *\n   * @private\n   */\n  dequeue() {\n    while (!this._deflating && this._queue.length) {\n      const params = this._queue.shift();\n\n      this._bufferedBytes -= params[3][kByteLength];\n      Reflect.apply(params[0], this, params.slice(1));\n    }\n  }\n\n  /**\n   * Enqueues a send operation.\n   *\n   * @param {Array} params Send operation parameters.\n   * @private\n   */\n  enqueue(params) {\n    this._bufferedBytes += params[3][kByteLength];\n    this._queue.push(params);\n  }\n\n  /**\n   * Sends a frame.\n   *\n   * @param {Buffer[]} list The frame to send\n   * @param {Function} [cb] Callback\n   * @private\n   */\n  sendFrame(list, cb) {\n    if (list.length === 2) {\n      this._socket.cork();\n      this._socket.write(list[0]);\n      this._socket.write(list[1], cb);\n      this._socket.uncork();\n    } else {\n      this._socket.write(list[0], cb);\n    }\n  }\n}\n\nmodule.exports = Sender;\n", "'use strict';\n\nconst { kForOnEventAttribute, kListener } = require('./constants');\n\nconst kCode = Symbol('kCode');\nconst kData = Symbol('kData');\nconst kError = Symbol('kError');\nconst kMessage = Symbol('kMessage');\nconst kReason = Symbol('kReason');\nconst kTarget = Symbol('kTarget');\nconst kType = Symbol('kType');\nconst kWasClean = Symbol('kWasClean');\n\n/**\n * Class representing an event.\n */\nclass Event {\n  /**\n   * Create a new `Event`.\n   *\n   * @param {String} type The name of the event\n   * @throws {TypeError} If the `type` argument is not specified\n   */\n  constructor(type) {\n    this[kTarget] = null;\n    this[kType] = type;\n  }\n\n  /**\n   * @type {*}\n   */\n  get target() {\n    return this[kTarget];\n  }\n\n  /**\n   * @type {String}\n   */\n  get type() {\n    return this[kType];\n  }\n}\n\nObject.defineProperty(Event.prototype, 'target', { enumerable: true });\nObject.defineProperty(Event.prototype, 'type', { enumerable: true });\n\n/**\n * Class representing a close event.\n *\n * @extends Event\n */\nclass CloseEvent extends Event {\n  /**\n   * Create a new `CloseEvent`.\n   *\n   * @param {String} type The name of the event\n   * @param {Object} [options] A dictionary object that allows for setting\n   *     attributes via object members of the same name\n   * @param {Number} [options.code=0] The status code explaining why the\n   *     connection was closed\n   * @param {String} [options.reason=''] A human-readable string explaining why\n   *     the connection was closed\n   * @param {Boolean} [options.wasClean=false] Indicates whether or not the\n   *     connection was cleanly closed\n   */\n  constructor(type, options = {}) {\n    super(type);\n\n    this[kCode] = options.code === undefined ? 0 : options.code;\n    this[kReason] = options.reason === undefined ? '' : options.reason;\n    this[kWasClean] = options.wasClean === undefined ? false : options.wasClean;\n  }\n\n  /**\n   * @type {Number}\n   */\n  get code() {\n    return this[kCode];\n  }\n\n  /**\n   * @type {String}\n   */\n  get reason() {\n    return this[kReason];\n  }\n\n  /**\n   * @type {Boolean}\n   */\n  get wasClean() {\n    return this[kWasClean];\n  }\n}\n\nObject.defineProperty(CloseEvent.prototype, 'code', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'reason', { enumerable: true });\nObject.defineProperty(CloseEvent.prototype, 'wasClean', { enumerable: true });\n\n/**\n * Class representing an error event.\n *\n * @extends Event\n */\nclass ErrorEvent extends Event {\n  /**\n   * Create a new `ErrorEvent`.\n   *\n   * @param {String} type The name of the event\n   * @param {Object} [options] A dictionary object that allows for setting\n   *     attributes via object members of the same name\n   * @param {*} [options.error=null] The error that generated this event\n   * @param {String} [options.message=''] The error message\n   */\n  constructor(type, options = {}) {\n    super(type);\n\n    this[kError] = options.error === undefined ? null : options.error;\n    this[kMessage] = options.message === undefined ? '' : options.message;\n  }\n\n  /**\n   * @type {*}\n   */\n  get error() {\n    return this[kError];\n  }\n\n  /**\n   * @type {String}\n   */\n  get message() {\n    return this[kMessage];\n  }\n}\n\nObject.defineProperty(ErrorEvent.prototype, 'error', { enumerable: true });\nObject.defineProperty(ErrorEvent.prototype, 'message', { enumerable: true });\n\n/**\n * Class representing a message event.\n *\n * @extends Event\n */\nclass MessageEvent extends Event {\n  /**\n   * Create a new `MessageEvent`.\n   *\n   * @param {String} type The name of the event\n   * @param {Object} [options] A dictionary object that allows for setting\n   *     attributes via object members of the same name\n   * @param {*} [options.data=null] The message content\n   */\n  constructor(type, options = {}) {\n    super(type);\n\n    this[kData] = options.data === undefined ? null : options.data;\n  }\n\n  /**\n   * @type {*}\n   */\n  get data() {\n    return this[kData];\n  }\n}\n\nObject.defineProperty(MessageEvent.prototype, 'data', { enumerable: true });\n\n/**\n * This provides methods for emulating the `EventTarget` interface. It's not\n * meant to be used directly.\n *\n * @mixin\n */\nconst EventTarget = {\n  /**\n   * Register an event listener.\n   *\n   * @param {String} type A string representing the event type to listen for\n   * @param {(Function|Object)} handler The listener to add\n   * @param {Object} [options] An options object specifies characteristics about\n   *     the event listener\n   * @param {Boolean} [options.once=false] A `Boolean` indicating that the\n   *     listener should be invoked at most once after being added. If `true`,\n   *     the listener would be automatically removed when invoked.\n   * @public\n   */\n  addEventListener(type, handler, options = {}) {\n    for (const listener of this.listeners(type)) {\n      if (\n        !options[kForOnEventAttribute] &&\n        listener[kListener] === handler &&\n        !listener[kForOnEventAttribute]\n      ) {\n        return;\n      }\n    }\n\n    let wrapper;\n\n    if (type === 'message') {\n      wrapper = function onMessage(data, isBinary) {\n        const event = new MessageEvent('message', {\n          data: isBinary ? data : data.toString()\n        });\n\n        event[kTarget] = this;\n        callListener(handler, this, event);\n      };\n    } else if (type === 'close') {\n      wrapper = function onClose(code, message) {\n        const event = new CloseEvent('close', {\n          code,\n          reason: message.toString(),\n          wasClean: this._closeFrameReceived && this._closeFrameSent\n        });\n\n        event[kTarget] = this;\n        callListener(handler, this, event);\n      };\n    } else if (type === 'error') {\n      wrapper = function onError(error) {\n        const event = new ErrorEvent('error', {\n          error,\n          message: error.message\n        });\n\n        event[kTarget] = this;\n        callListener(handler, this, event);\n      };\n    } else if (type === 'open') {\n      wrapper = function onOpen() {\n        const event = new Event('open');\n\n        event[kTarget] = this;\n        callListener(handler, this, event);\n      };\n    } else {\n      return;\n    }\n\n    wrapper[kForOnEventAttribute] = !!options[kForOnEventAttribute];\n    wrapper[kListener] = handler;\n\n    if (options.once) {\n      this.once(type, wrapper);\n    } else {\n      this.on(type, wrapper);\n    }\n  },\n\n  /**\n   * Remove an event listener.\n   *\n   * @param {String} type A string representing the event type to remove\n   * @param {(Function|Object)} handler The listener to remove\n   * @public\n   */\n  removeEventListener(type, handler) {\n    for (const listener of this.listeners(type)) {\n      if (listener[kListener] === handler && !listener[kForOnEventAttribute]) {\n        this.removeListener(type, listener);\n        break;\n      }\n    }\n  }\n};\n\nmodule.exports = {\n  CloseEvent,\n  ErrorEvent,\n  Event,\n  EventTarget,\n  MessageEvent\n};\n\n/**\n * Call an event listener\n *\n * @param {(Function|Object)} listener The listener to call\n * @param {*} thisArg The value to use as `this`` when calling the listener\n * @param {Event} event The event to pass to the listener\n * @private\n */\nfunction callListener(listener, thisArg, event) {\n  if (typeof listener === 'object' && listener.handleEvent) {\n    listener.handleEvent.call(listener, event);\n  } else {\n    listener.call(thisArg, event);\n  }\n}\n", "'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Adds an offer to the map of extension offers or a parameter to the map of\n * parameters.\n *\n * @param {Object} dest The map of extension offers or parameters\n * @param {String} name The extension or parameter name\n * @param {(Object|Boolean|String)} elem The extension parameters or the\n *     parameter value\n * @private\n */\nfunction push(dest, name, elem) {\n  if (dest[name] === undefined) dest[name] = [elem];\n  else dest[name].push(elem);\n}\n\n/**\n * Parses the `Sec-WebSocket-Extensions` header into an object.\n *\n * @param {String} header The field value of the header\n * @return {Object} The parsed object\n * @public\n */\nfunction parse(header) {\n  const offers = Object.create(null);\n  let params = Object.create(null);\n  let mustUnescape = false;\n  let isEscaping = false;\n  let inQuotes = false;\n  let extensionName;\n  let paramName;\n  let start = -1;\n  let code = -1;\n  let end = -1;\n  let i = 0;\n\n  for (; i < header.length; i++) {\n    code = header.charCodeAt(i);\n\n    if (extensionName === undefined) {\n      if (end === -1 && tokenChars[code] === 1) {\n        if (start === -1) start = i;\n      } else if (\n        i !== 0 &&\n        (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n      ) {\n        if (end === -1 && start !== -1) end = i;\n      } else if (code === 0x3b /* ';' */ || code === 0x2c /* ',' */) {\n        if (start === -1) {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n\n        if (end === -1) end = i;\n        const name = header.slice(start, end);\n        if (code === 0x2c) {\n          push(offers, name, params);\n          params = Object.create(null);\n        } else {\n          extensionName = name;\n        }\n\n        start = end = -1;\n      } else {\n        throw new SyntaxError(`Unexpected character at index ${i}`);\n      }\n    } else if (paramName === undefined) {\n      if (end === -1 && tokenChars[code] === 1) {\n        if (start === -1) start = i;\n      } else if (code === 0x20 || code === 0x09) {\n        if (end === -1 && start !== -1) end = i;\n      } else if (code === 0x3b || code === 0x2c) {\n        if (start === -1) {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n\n        if (end === -1) end = i;\n        push(params, header.slice(start, end), true);\n        if (code === 0x2c) {\n          push(offers, extensionName, params);\n          params = Object.create(null);\n          extensionName = undefined;\n        }\n\n        start = end = -1;\n      } else if (code === 0x3d /* '=' */ && start !== -1 && end === -1) {\n        paramName = header.slice(start, i);\n        start = end = -1;\n      } else {\n        throw new SyntaxError(`Unexpected character at index ${i}`);\n      }\n    } else {\n      //\n      // The value of a quoted-string after unescaping must conform to the\n      // token ABNF, so only token characters are valid.\n      // Ref: https://tools.ietf.org/html/rfc6455#section-9.1\n      //\n      if (isEscaping) {\n        if (tokenChars[code] !== 1) {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n        if (start === -1) start = i;\n        else if (!mustUnescape) mustUnescape = true;\n        isEscaping = false;\n      } else if (inQuotes) {\n        if (tokenChars[code] === 1) {\n          if (start === -1) start = i;\n        } else if (code === 0x22 /* '\"' */ && start !== -1) {\n          inQuotes = false;\n          end = i;\n        } else if (code === 0x5c /* '\\' */) {\n          isEscaping = true;\n        } else {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n      } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3d) {\n        inQuotes = true;\n      } else if (end === -1 && tokenChars[code] === 1) {\n        if (start === -1) start = i;\n      } else if (start !== -1 && (code === 0x20 || code === 0x09)) {\n        if (end === -1) end = i;\n      } else if (code === 0x3b || code === 0x2c) {\n        if (start === -1) {\n          throw new SyntaxError(`Unexpected character at index ${i}`);\n        }\n\n        if (end === -1) end = i;\n        let value = header.slice(start, end);\n        if (mustUnescape) {\n          value = value.replace(/\\\\/g, '');\n          mustUnescape = false;\n        }\n        push(params, paramName, value);\n        if (code === 0x2c) {\n          push(offers, extensionName, params);\n          params = Object.create(null);\n          extensionName = undefined;\n        }\n\n        paramName = undefined;\n        start = end = -1;\n      } else {\n        throw new SyntaxError(`Unexpected character at index ${i}`);\n      }\n    }\n  }\n\n  if (start === -1 || inQuotes || code === 0x20 || code === 0x09) {\n    throw new SyntaxError('Unexpected end of input');\n  }\n\n  if (end === -1) end = i;\n  const token = header.slice(start, end);\n  if (extensionName === undefined) {\n    push(offers, token, params);\n  } else {\n    if (paramName === undefined) {\n      push(params, token, true);\n    } else if (mustUnescape) {\n      push(params, paramName, token.replace(/\\\\/g, ''));\n    } else {\n      push(params, paramName, token);\n    }\n    push(offers, extensionName, params);\n  }\n\n  return offers;\n}\n\n/**\n * Builds the `Sec-WebSocket-Extensions` header field value.\n *\n * @param {Object} extensions The map of extensions and parameters to format\n * @return {String} A string representing the given object\n * @public\n */\nfunction format(extensions) {\n  return Object.keys(extensions)\n    .map((extension) => {\n      let configurations = extensions[extension];\n      if (!Array.isArray(configurations)) configurations = [configurations];\n      return configurations\n        .map((params) => {\n          return [extension]\n            .concat(\n              Object.keys(params).map((k) => {\n                let values = params[k];\n                if (!Array.isArray(values)) values = [values];\n                return values\n                  .map((v) => (v === true ? k : `${k}=${v}`))\n                  .join('; ');\n              })\n            )\n            .join('; ');\n        })\n        .join(', ');\n    })\n    .join(', ');\n}\n\nmodule.exports = { format, parse };\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^Readable$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst https = require('https');\nconst http = require('http');\nconst net = require('net');\nconst tls = require('tls');\nconst { randomBytes, createHash } = require('crypto');\nconst { Readable } = require('stream');\nconst { URL } = require('url');\n\nconst PerMessageDeflate = require('./permessage-deflate');\nconst Receiver = require('./receiver');\nconst Sender = require('./sender');\nconst {\n  BINARY_TYPES,\n  EMPTY_BUFFER,\n  GUID,\n  kForOnEventAttribute,\n  kListener,\n  kStatusCode,\n  kWebSocket,\n  NOOP\n} = require('./constants');\nconst {\n  EventTarget: { addEventListener, removeEventListener }\n} = require('./event-target');\nconst { format, parse } = require('./extension');\nconst { toBuffer } = require('./buffer-util');\n\nconst closeTimeout = 30 * 1000;\nconst kAborted = Symbol('kAborted');\nconst protocolVersions = [8, 13];\nconst readyStates = ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'];\nconst subprotocolRegex = /^[!#$%&'*+\\-.0-9A-Z^_`|a-z~]+$/;\n\n/**\n * Class representing a WebSocket.\n *\n * @extends EventEmitter\n */\nclass WebSocket extends EventEmitter {\n  /**\n   * Create a new `WebSocket`.\n   *\n   * @param {(String|URL)} address The URL to which to connect\n   * @param {(String|String[])} [protocols] The subprotocols\n   * @param {Object} [options] Connection options\n   */\n  constructor(address, protocols, options) {\n    super();\n\n    this._binaryType = BINARY_TYPES[0];\n    this._closeCode = 1006;\n    this._closeFrameReceived = false;\n    this._closeFrameSent = false;\n    this._closeMessage = EMPTY_BUFFER;\n    this._closeTimer = null;\n    this._extensions = {};\n    this._paused = false;\n    this._protocol = '';\n    this._readyState = WebSocket.CONNECTING;\n    this._receiver = null;\n    this._sender = null;\n    this._socket = null;\n\n    if (address !== null) {\n      this._bufferedAmount = 0;\n      this._isServer = false;\n      this._redirects = 0;\n\n      if (protocols === undefined) {\n        protocols = [];\n      } else if (!Array.isArray(protocols)) {\n        if (typeof protocols === 'object' && protocols !== null) {\n          options = protocols;\n          protocols = [];\n        } else {\n          protocols = [protocols];\n        }\n      }\n\n      initAsClient(this, address, protocols, options);\n    } else {\n      this._isServer = true;\n    }\n  }\n\n  /**\n   * This deviates from the WHATWG interface since ws doesn't support the\n   * required default \"blob\" type (instead we define a custom \"nodebuffer\"\n   * type).\n   *\n   * @type {String}\n   */\n  get binaryType() {\n    return this._binaryType;\n  }\n\n  set binaryType(type) {\n    if (!BINARY_TYPES.includes(type)) return;\n\n    this._binaryType = type;\n\n    //\n    // Allow to change `binaryType` on the fly.\n    //\n    if (this._receiver) this._receiver._binaryType = type;\n  }\n\n  /**\n   * @type {Number}\n   */\n  get bufferedAmount() {\n    if (!this._socket) return this._bufferedAmount;\n\n    return this._socket._writableState.length + this._sender._bufferedBytes;\n  }\n\n  /**\n   * @type {String}\n   */\n  get extensions() {\n    return Object.keys(this._extensions).join();\n  }\n\n  /**\n   * @type {Boolean}\n   */\n  get isPaused() {\n    return this._paused;\n  }\n\n  /**\n   * @type {Function}\n   */\n  /* istanbul ignore next */\n  get onclose() {\n    return null;\n  }\n\n  /**\n   * @type {Function}\n   */\n  /* istanbul ignore next */\n  get onerror() {\n    return null;\n  }\n\n  /**\n   * @type {Function}\n   */\n  /* istanbul ignore next */\n  get onopen() {\n    return null;\n  }\n\n  /**\n   * @type {Function}\n   */\n  /* istanbul ignore next */\n  get onmessage() {\n    return null;\n  }\n\n  /**\n   * @type {String}\n   */\n  get protocol() {\n    return this._protocol;\n  }\n\n  /**\n   * @type {Number}\n   */\n  get readyState() {\n    return this._readyState;\n  }\n\n  /**\n   * @type {String}\n   */\n  get url() {\n    return this._url;\n  }\n\n  /**\n   * Set up the socket and the internal resources.\n   *\n   * @param {(net.Socket|tls.Socket)} socket The network socket between the\n   *     server and client\n   * @param {Buffer} head The first packet of the upgraded stream\n   * @param {Object} options Options object\n   * @param {Function} [options.generateMask] The function used to generate the\n   *     masking key\n   * @param {Number} [options.maxPayload=0] The maximum allowed message size\n   * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n   *     not to skip UTF-8 validation for text and close messages\n   * @private\n   */\n  setSocket(socket, head, options) {\n    const receiver = new Receiver({\n      binaryType: this.binaryType,\n      extensions: this._extensions,\n      isServer: this._isServer,\n      maxPayload: options.maxPayload,\n      skipUTF8Validation: options.skipUTF8Validation\n    });\n\n    this._sender = new Sender(socket, this._extensions, options.generateMask);\n    this._receiver = receiver;\n    this._socket = socket;\n\n    receiver[kWebSocket] = this;\n    socket[kWebSocket] = this;\n\n    receiver.on('conclude', receiverOnConclude);\n    receiver.on('drain', receiverOnDrain);\n    receiver.on('error', receiverOnError);\n    receiver.on('message', receiverOnMessage);\n    receiver.on('ping', receiverOnPing);\n    receiver.on('pong', receiverOnPong);\n\n    socket.setTimeout(0);\n    socket.setNoDelay();\n\n    if (head.length > 0) socket.unshift(head);\n\n    socket.on('close', socketOnClose);\n    socket.on('data', socketOnData);\n    socket.on('end', socketOnEnd);\n    socket.on('error', socketOnError);\n\n    this._readyState = WebSocket.OPEN;\n    this.emit('open');\n  }\n\n  /**\n   * Emit the `'close'` event.\n   *\n   * @private\n   */\n  emitClose() {\n    if (!this._socket) {\n      this._readyState = WebSocket.CLOSED;\n      this.emit('close', this._closeCode, this._closeMessage);\n      return;\n    }\n\n    if (this._extensions[PerMessageDeflate.extensionName]) {\n      this._extensions[PerMessageDeflate.extensionName].cleanup();\n    }\n\n    this._receiver.removeAllListeners();\n    this._readyState = WebSocket.CLOSED;\n    this.emit('close', this._closeCode, this._closeMessage);\n  }\n\n  /**\n   * Start a closing handshake.\n   *\n   *          +----------+   +-----------+   +----------+\n   *     - - -|ws.close()|-->|close frame|-->|ws.close()|- - -\n   *    |     +----------+   +-----------+   +----------+     |\n   *          +----------+   +-----------+         |\n   * CLOSING  |ws.close()|<--|close frame|<--+-----+       CLOSING\n   *          +----------+   +-----------+   |\n   *    |           |                        |   +---+        |\n   *                +------------------------+-->|fin| - - - -\n   *    |         +---+                      |   +---+\n   *     - - - - -|fin|<---------------------+\n   *              +---+\n   *\n   * @param {Number} [code] Status code explaining why the connection is closing\n   * @param {(String|Buffer)} [data] The reason why the connection is\n   *     closing\n   * @public\n   */\n  close(code, data) {\n    if (this.readyState === WebSocket.CLOSED) return;\n    if (this.readyState === WebSocket.CONNECTING) {\n      const msg = 'WebSocket was closed before the connection was established';\n      return abortHandshake(this, this._req, msg);\n    }\n\n    if (this.readyState === WebSocket.CLOSING) {\n      if (\n        this._closeFrameSent &&\n        (this._closeFrameReceived || this._receiver._writableState.errorEmitted)\n      ) {\n        this._socket.end();\n      }\n\n      return;\n    }\n\n    this._readyState = WebSocket.CLOSING;\n    this._sender.close(code, data, !this._isServer, (err) => {\n      //\n      // This error is handled by the `'error'` listener on the socket. We only\n      // want to know if the close frame has been sent here.\n      //\n      if (err) return;\n\n      this._closeFrameSent = true;\n\n      if (\n        this._closeFrameReceived ||\n        this._receiver._writableState.errorEmitted\n      ) {\n        this._socket.end();\n      }\n    });\n\n    //\n    // Specify a timeout for the closing handshake to complete.\n    //\n    this._closeTimer = setTimeout(\n      this._socket.destroy.bind(this._socket),\n      closeTimeout\n    );\n  }\n\n  /**\n   * Pause the socket.\n   *\n   * @public\n   */\n  pause() {\n    if (\n      this.readyState === WebSocket.CONNECTING ||\n      this.readyState === WebSocket.CLOSED\n    ) {\n      return;\n    }\n\n    this._paused = true;\n    this._socket.pause();\n  }\n\n  /**\n   * Send a ping.\n   *\n   * @param {*} [data] The data to send\n   * @param {Boolean} [mask] Indicates whether or not to mask `data`\n   * @param {Function} [cb] Callback which is executed when the ping is sent\n   * @public\n   */\n  ping(data, mask, cb) {\n    if (this.readyState === WebSocket.CONNECTING) {\n      throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n    }\n\n    if (typeof data === 'function') {\n      cb = data;\n      data = mask = undefined;\n    } else if (typeof mask === 'function') {\n      cb = mask;\n      mask = undefined;\n    }\n\n    if (typeof data === 'number') data = data.toString();\n\n    if (this.readyState !== WebSocket.OPEN) {\n      sendAfterClose(this, data, cb);\n      return;\n    }\n\n    if (mask === undefined) mask = !this._isServer;\n    this._sender.ping(data || EMPTY_BUFFER, mask, cb);\n  }\n\n  /**\n   * Send a pong.\n   *\n   * @param {*} [data] The data to send\n   * @param {Boolean} [mask] Indicates whether or not to mask `data`\n   * @param {Function} [cb] Callback which is executed when the pong is sent\n   * @public\n   */\n  pong(data, mask, cb) {\n    if (this.readyState === WebSocket.CONNECTING) {\n      throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n    }\n\n    if (typeof data === 'function') {\n      cb = data;\n      data = mask = undefined;\n    } else if (typeof mask === 'function') {\n      cb = mask;\n      mask = undefined;\n    }\n\n    if (typeof data === 'number') data = data.toString();\n\n    if (this.readyState !== WebSocket.OPEN) {\n      sendAfterClose(this, data, cb);\n      return;\n    }\n\n    if (mask === undefined) mask = !this._isServer;\n    this._sender.pong(data || EMPTY_BUFFER, mask, cb);\n  }\n\n  /**\n   * Resume the socket.\n   *\n   * @public\n   */\n  resume() {\n    if (\n      this.readyState === WebSocket.CONNECTING ||\n      this.readyState === WebSocket.CLOSED\n    ) {\n      return;\n    }\n\n    this._paused = false;\n    if (!this._receiver._writableState.needDrain) this._socket.resume();\n  }\n\n  /**\n   * Send a data message.\n   *\n   * @param {*} data The message to send\n   * @param {Object} [options] Options object\n   * @param {Boolean} [options.binary] Specifies whether `data` is binary or\n   *     text\n   * @param {Boolean} [options.compress] Specifies whether or not to compress\n   *     `data`\n   * @param {Boolean} [options.fin=true] Specifies whether the fragment is the\n   *     last one\n   * @param {Boolean} [options.mask] Specifies whether or not to mask `data`\n   * @param {Function} [cb] Callback which is executed when data is written out\n   * @public\n   */\n  send(data, options, cb) {\n    if (this.readyState === WebSocket.CONNECTING) {\n      throw new Error('WebSocket is not open: readyState 0 (CONNECTING)');\n    }\n\n    if (typeof options === 'function') {\n      cb = options;\n      options = {};\n    }\n\n    if (typeof data === 'number') data = data.toString();\n\n    if (this.readyState !== WebSocket.OPEN) {\n      sendAfterClose(this, data, cb);\n      return;\n    }\n\n    const opts = {\n      binary: typeof data !== 'string',\n      mask: !this._isServer,\n      compress: true,\n      fin: true,\n      ...options\n    };\n\n    if (!this._extensions[PerMessageDeflate.extensionName]) {\n      opts.compress = false;\n    }\n\n    this._sender.send(data || EMPTY_BUFFER, opts, cb);\n  }\n\n  /**\n   * Forcibly close the connection.\n   *\n   * @public\n   */\n  terminate() {\n    if (this.readyState === WebSocket.CLOSED) return;\n    if (this.readyState === WebSocket.CONNECTING) {\n      const msg = 'WebSocket was closed before the connection was established';\n      return abortHandshake(this, this._req, msg);\n    }\n\n    if (this._socket) {\n      this._readyState = WebSocket.CLOSING;\n      this._socket.destroy();\n    }\n  }\n}\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CONNECTING', {\n  enumerable: true,\n  value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} CONNECTING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CONNECTING', {\n  enumerable: true,\n  value: readyStates.indexOf('CONNECTING')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'OPEN', {\n  enumerable: true,\n  value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} OPEN\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'OPEN', {\n  enumerable: true,\n  value: readyStates.indexOf('OPEN')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSING', {\n  enumerable: true,\n  value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSING\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSING', {\n  enumerable: true,\n  value: readyStates.indexOf('CLOSING')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket\n */\nObject.defineProperty(WebSocket, 'CLOSED', {\n  enumerable: true,\n  value: readyStates.indexOf('CLOSED')\n});\n\n/**\n * @constant {Number} CLOSED\n * @memberof WebSocket.prototype\n */\nObject.defineProperty(WebSocket.prototype, 'CLOSED', {\n  enumerable: true,\n  value: readyStates.indexOf('CLOSED')\n});\n\n[\n  'binaryType',\n  'bufferedAmount',\n  'extensions',\n  'isPaused',\n  'protocol',\n  'readyState',\n  'url'\n].forEach((property) => {\n  Object.defineProperty(WebSocket.prototype, property, { enumerable: true });\n});\n\n//\n// Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.\n// See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface\n//\n['open', 'error', 'close', 'message'].forEach((method) => {\n  Object.defineProperty(WebSocket.prototype, `on${method}`, {\n    enumerable: true,\n    get() {\n      for (const listener of this.listeners(method)) {\n        if (listener[kForOnEventAttribute]) return listener[kListener];\n      }\n\n      return null;\n    },\n    set(handler) {\n      for (const listener of this.listeners(method)) {\n        if (listener[kForOnEventAttribute]) {\n          this.removeListener(method, listener);\n          break;\n        }\n      }\n\n      if (typeof handler !== 'function') return;\n\n      this.addEventListener(method, handler, {\n        [kForOnEventAttribute]: true\n      });\n    }\n  });\n});\n\nWebSocket.prototype.addEventListener = addEventListener;\nWebSocket.prototype.removeEventListener = removeEventListener;\n\nmodule.exports = WebSocket;\n\n/**\n * Initialize a WebSocket client.\n *\n * @param {WebSocket} websocket The client to initialize\n * @param {(String|URL)} address The URL to which to connect\n * @param {Array} protocols The subprotocols\n * @param {Object} [options] Connection options\n * @param {Boolean} [options.followRedirects=false] Whether or not to follow\n *     redirects\n * @param {Function} [options.generateMask] The function used to generate the\n *     masking key\n * @param {Number} [options.handshakeTimeout] Timeout in milliseconds for the\n *     handshake request\n * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n *     size\n * @param {Number} [options.maxRedirects=10] The maximum number of redirects\n *     allowed\n * @param {String} [options.origin] Value of the `Origin` or\n *     `Sec-WebSocket-Origin` header\n * @param {(Boolean|Object)} [options.perMessageDeflate=true] Enable/disable\n *     permessage-deflate\n * @param {Number} [options.protocolVersion=13] Value of the\n *     `Sec-WebSocket-Version` header\n * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n *     not to skip UTF-8 validation for text and close messages\n * @private\n */\nfunction initAsClient(websocket, address, protocols, options) {\n  const opts = {\n    protocolVersion: protocolVersions[1],\n    maxPayload: 100 * 1024 * 1024,\n    skipUTF8Validation: false,\n    perMessageDeflate: true,\n    followRedirects: false,\n    maxRedirects: 10,\n    ...options,\n    createConnection: undefined,\n    socketPath: undefined,\n    hostname: undefined,\n    protocol: undefined,\n    timeout: undefined,\n    method: 'GET',\n    host: undefined,\n    path: undefined,\n    port: undefined\n  };\n\n  if (!protocolVersions.includes(opts.protocolVersion)) {\n    throw new RangeError(\n      `Unsupported protocol version: ${opts.protocolVersion} ` +\n        `(supported versions: ${protocolVersions.join(', ')})`\n    );\n  }\n\n  let parsedUrl;\n\n  if (address instanceof URL) {\n    parsedUrl = address;\n    websocket._url = address.href;\n  } else {\n    try {\n      parsedUrl = new URL(address);\n    } catch (e) {\n      throw new SyntaxError(`Invalid URL: ${address}`);\n    }\n\n    websocket._url = address;\n  }\n\n  const isSecure = parsedUrl.protocol === 'wss:';\n  const isIpcUrl = parsedUrl.protocol === 'ws+unix:';\n  let invalidUrlMessage;\n\n  if (parsedUrl.protocol !== 'ws:' && !isSecure && !isIpcUrl) {\n    invalidUrlMessage =\n      'The URL\\'s protocol must be one of \"ws:\", \"wss:\", or \"ws+unix:\"';\n  } else if (isIpcUrl && !parsedUrl.pathname) {\n    invalidUrlMessage = \"The URL's pathname is empty\";\n  } else if (parsedUrl.hash) {\n    invalidUrlMessage = 'The URL contains a fragment identifier';\n  }\n\n  if (invalidUrlMessage) {\n    const err = new SyntaxError(invalidUrlMessage);\n\n    if (websocket._redirects === 0) {\n      throw err;\n    } else {\n      emitErrorAndClose(websocket, err);\n      return;\n    }\n  }\n\n  const defaultPort = isSecure ? 443 : 80;\n  const key = randomBytes(16).toString('base64');\n  const request = isSecure ? https.request : http.request;\n  const protocolSet = new Set();\n  let perMessageDeflate;\n\n  opts.createConnection = isSecure ? tlsConnect : netConnect;\n  opts.defaultPort = opts.defaultPort || defaultPort;\n  opts.port = parsedUrl.port || defaultPort;\n  opts.host = parsedUrl.hostname.startsWith('[')\n    ? parsedUrl.hostname.slice(1, -1)\n    : parsedUrl.hostname;\n  opts.headers = {\n    ...opts.headers,\n    'Sec-WebSocket-Version': opts.protocolVersion,\n    'Sec-WebSocket-Key': key,\n    Connection: 'Upgrade',\n    Upgrade: 'websocket'\n  };\n  opts.path = parsedUrl.pathname + parsedUrl.search;\n  opts.timeout = opts.handshakeTimeout;\n\n  if (opts.perMessageDeflate) {\n    perMessageDeflate = new PerMessageDeflate(\n      opts.perMessageDeflate !== true ? opts.perMessageDeflate : {},\n      false,\n      opts.maxPayload\n    );\n    opts.headers['Sec-WebSocket-Extensions'] = format({\n      [PerMessageDeflate.extensionName]: perMessageDeflate.offer()\n    });\n  }\n  if (protocols.length) {\n    for (const protocol of protocols) {\n      if (\n        typeof protocol !== 'string' ||\n        !subprotocolRegex.test(protocol) ||\n        protocolSet.has(protocol)\n      ) {\n        throw new SyntaxError(\n          'An invalid or duplicated subprotocol was specified'\n        );\n      }\n\n      protocolSet.add(protocol);\n    }\n\n    opts.headers['Sec-WebSocket-Protocol'] = protocols.join(',');\n  }\n  if (opts.origin) {\n    if (opts.protocolVersion < 13) {\n      opts.headers['Sec-WebSocket-Origin'] = opts.origin;\n    } else {\n      opts.headers.Origin = opts.origin;\n    }\n  }\n  if (parsedUrl.username || parsedUrl.password) {\n    opts.auth = `${parsedUrl.username}:${parsedUrl.password}`;\n  }\n\n  if (isIpcUrl) {\n    const parts = opts.path.split(':');\n\n    opts.socketPath = parts[0];\n    opts.path = parts[1];\n  }\n\n  let req;\n\n  if (opts.followRedirects) {\n    if (websocket._redirects === 0) {\n      websocket._originalIpc = isIpcUrl;\n      websocket._originalSecure = isSecure;\n      websocket._originalHostOrSocketPath = isIpcUrl\n        ? opts.socketPath\n        : parsedUrl.host;\n\n      const headers = options && options.headers;\n\n      //\n      // Shallow copy the user provided options so that headers can be changed\n      // without mutating the original object.\n      //\n      options = { ...options, headers: {} };\n\n      if (headers) {\n        for (const [key, value] of Object.entries(headers)) {\n          options.headers[key.toLowerCase()] = value;\n        }\n      }\n    } else if (websocket.listenerCount('redirect') === 0) {\n      const isSameHost = isIpcUrl\n        ? websocket._originalIpc\n          ? opts.socketPath === websocket._originalHostOrSocketPath\n          : false\n        : websocket._originalIpc\n        ? false\n        : parsedUrl.host === websocket._originalHostOrSocketPath;\n\n      if (!isSameHost || (websocket._originalSecure && !isSecure)) {\n        //\n        // Match curl 7.77.0 behavior and drop the following headers. These\n        // headers are also dropped when following a redirect to a subdomain.\n        //\n        delete opts.headers.authorization;\n        delete opts.headers.cookie;\n\n        if (!isSameHost) delete opts.headers.host;\n\n        opts.auth = undefined;\n      }\n    }\n\n    //\n    // Match curl 7.77.0 behavior and make the first `Authorization` header win.\n    // If the `Authorization` header is set, then there is nothing to do as it\n    // will take precedence.\n    //\n    if (opts.auth && !options.headers.authorization) {\n      options.headers.authorization =\n        'Basic ' + Buffer.from(opts.auth).toString('base64');\n    }\n\n    req = websocket._req = request(opts);\n\n    if (websocket._redirects) {\n      //\n      // Unlike what is done for the `'upgrade'` event, no early exit is\n      // triggered here if the user calls `websocket.close()` or\n      // `websocket.terminate()` from a listener of the `'redirect'` event. This\n      // is because the user can also call `request.destroy()` with an error\n      // before calling `websocket.close()` or `websocket.terminate()` and this\n      // would result in an error being emitted on the `request` object with no\n      // `'error'` event listeners attached.\n      //\n      websocket.emit('redirect', websocket.url, req);\n    }\n  } else {\n    req = websocket._req = request(opts);\n  }\n\n  if (opts.timeout) {\n    req.on('timeout', () => {\n      abortHandshake(websocket, req, 'Opening handshake has timed out');\n    });\n  }\n\n  req.on('error', (err) => {\n    if (req === null || req[kAborted]) return;\n\n    req = websocket._req = null;\n    emitErrorAndClose(websocket, err);\n  });\n\n  req.on('response', (res) => {\n    const location = res.headers.location;\n    const statusCode = res.statusCode;\n\n    if (\n      location &&\n      opts.followRedirects &&\n      statusCode >= 300 &&\n      statusCode < 400\n    ) {\n      if (++websocket._redirects > opts.maxRedirects) {\n        abortHandshake(websocket, req, 'Maximum redirects exceeded');\n        return;\n      }\n\n      req.abort();\n\n      let addr;\n\n      try {\n        addr = new URL(location, address);\n      } catch (e) {\n        const err = new SyntaxError(`Invalid URL: ${location}`);\n        emitErrorAndClose(websocket, err);\n        return;\n      }\n\n      initAsClient(websocket, addr, protocols, options);\n    } else if (!websocket.emit('unexpected-response', req, res)) {\n      abortHandshake(\n        websocket,\n        req,\n        `Unexpected server response: ${res.statusCode}`\n      );\n    }\n  });\n\n  req.on('upgrade', (res, socket, head) => {\n    websocket.emit('upgrade', res);\n\n    //\n    // The user may have closed the connection from a listener of the\n    // `'upgrade'` event.\n    //\n    if (websocket.readyState !== WebSocket.CONNECTING) return;\n\n    req = websocket._req = null;\n\n    if (res.headers.upgrade.toLowerCase() !== 'websocket') {\n      abortHandshake(websocket, socket, 'Invalid Upgrade header');\n      return;\n    }\n\n    const digest = createHash('sha1')\n      .update(key + GUID)\n      .digest('base64');\n\n    if (res.headers['sec-websocket-accept'] !== digest) {\n      abortHandshake(websocket, socket, 'Invalid Sec-WebSocket-Accept header');\n      return;\n    }\n\n    const serverProt = res.headers['sec-websocket-protocol'];\n    let protError;\n\n    if (serverProt !== undefined) {\n      if (!protocolSet.size) {\n        protError = 'Server sent a subprotocol but none was requested';\n      } else if (!protocolSet.has(serverProt)) {\n        protError = 'Server sent an invalid subprotocol';\n      }\n    } else if (protocolSet.size) {\n      protError = 'Server sent no subprotocol';\n    }\n\n    if (protError) {\n      abortHandshake(websocket, socket, protError);\n      return;\n    }\n\n    if (serverProt) websocket._protocol = serverProt;\n\n    const secWebSocketExtensions = res.headers['sec-websocket-extensions'];\n\n    if (secWebSocketExtensions !== undefined) {\n      if (!perMessageDeflate) {\n        const message =\n          'Server sent a Sec-WebSocket-Extensions header but no extension ' +\n          'was requested';\n        abortHandshake(websocket, socket, message);\n        return;\n      }\n\n      let extensions;\n\n      try {\n        extensions = parse(secWebSocketExtensions);\n      } catch (err) {\n        const message = 'Invalid Sec-WebSocket-Extensions header';\n        abortHandshake(websocket, socket, message);\n        return;\n      }\n\n      const extensionNames = Object.keys(extensions);\n\n      if (\n        extensionNames.length !== 1 ||\n        extensionNames[0] !== PerMessageDeflate.extensionName\n      ) {\n        const message = 'Server indicated an extension that was not requested';\n        abortHandshake(websocket, socket, message);\n        return;\n      }\n\n      try {\n        perMessageDeflate.accept(extensions[PerMessageDeflate.extensionName]);\n      } catch (err) {\n        const message = 'Invalid Sec-WebSocket-Extensions header';\n        abortHandshake(websocket, socket, message);\n        return;\n      }\n\n      websocket._extensions[PerMessageDeflate.extensionName] =\n        perMessageDeflate;\n    }\n\n    websocket.setSocket(socket, head, {\n      generateMask: opts.generateMask,\n      maxPayload: opts.maxPayload,\n      skipUTF8Validation: opts.skipUTF8Validation\n    });\n  });\n\n  req.end();\n}\n\n/**\n * Emit the `'error'` and `'close'` events.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {Error} The error to emit\n * @private\n */\nfunction emitErrorAndClose(websocket, err) {\n  websocket._readyState = WebSocket.CLOSING;\n  websocket.emit('error', err);\n  websocket.emitClose();\n}\n\n/**\n * Create a `net.Socket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {net.Socket} The newly created socket used to start the connection\n * @private\n */\nfunction netConnect(options) {\n  options.path = options.socketPath;\n  return net.connect(options);\n}\n\n/**\n * Create a `tls.TLSSocket` and initiate a connection.\n *\n * @param {Object} options Connection options\n * @return {tls.TLSSocket} The newly created socket used to start the connection\n * @private\n */\nfunction tlsConnect(options) {\n  options.path = undefined;\n\n  if (!options.servername && options.servername !== '') {\n    options.servername = net.isIP(options.host) ? '' : options.host;\n  }\n\n  return tls.connect(options);\n}\n\n/**\n * Abort the handshake and emit an error.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {(http.ClientRequest|net.Socket|tls.Socket)} stream The request to\n *     abort or the socket to destroy\n * @param {String} message The error message\n * @private\n */\nfunction abortHandshake(websocket, stream, message) {\n  websocket._readyState = WebSocket.CLOSING;\n\n  const err = new Error(message);\n  Error.captureStackTrace(err, abortHandshake);\n\n  if (stream.setHeader) {\n    stream[kAborted] = true;\n    stream.abort();\n\n    if (stream.socket && !stream.socket.destroyed) {\n      //\n      // On Node.js >= 14.3.0 `request.abort()` does not destroy the socket if\n      // called after the request completed. See\n      // https://github.com/websockets/ws/issues/1869.\n      //\n      stream.socket.destroy();\n    }\n\n    process.nextTick(emitErrorAndClose, websocket, err);\n  } else {\n    stream.destroy(err);\n    stream.once('error', websocket.emit.bind(websocket, 'error'));\n    stream.once('close', websocket.emitClose.bind(websocket));\n  }\n}\n\n/**\n * Handle cases where the `ping()`, `pong()`, or `send()` methods are called\n * when the `readyState` attribute is `CLOSING` or `CLOSED`.\n *\n * @param {WebSocket} websocket The WebSocket instance\n * @param {*} [data] The data to send\n * @param {Function} [cb] Callback\n * @private\n */\nfunction sendAfterClose(websocket, data, cb) {\n  if (data) {\n    const length = toBuffer(data).length;\n\n    //\n    // The `_bufferedAmount` property is used only when the peer is a client and\n    // the opening handshake fails. Under these circumstances, in fact, the\n    // `setSocket()` method is not called, so the `_socket` and `_sender`\n    // properties are set to `null`.\n    //\n    if (websocket._socket) websocket._sender._bufferedBytes += length;\n    else websocket._bufferedAmount += length;\n  }\n\n  if (cb) {\n    const err = new Error(\n      `WebSocket is not open: readyState ${websocket.readyState} ` +\n        `(${readyStates[websocket.readyState]})`\n    );\n    cb(err);\n  }\n}\n\n/**\n * The listener of the `Receiver` `'conclude'` event.\n *\n * @param {Number} code The status code\n * @param {Buffer} reason The reason for closing\n * @private\n */\nfunction receiverOnConclude(code, reason) {\n  const websocket = this[kWebSocket];\n\n  websocket._closeFrameReceived = true;\n  websocket._closeMessage = reason;\n  websocket._closeCode = code;\n\n  if (websocket._socket[kWebSocket] === undefined) return;\n\n  websocket._socket.removeListener('data', socketOnData);\n  process.nextTick(resume, websocket._socket);\n\n  if (code === 1005) websocket.close();\n  else websocket.close(code, reason);\n}\n\n/**\n * The listener of the `Receiver` `'drain'` event.\n *\n * @private\n */\nfunction receiverOnDrain() {\n  const websocket = this[kWebSocket];\n\n  if (!websocket.isPaused) websocket._socket.resume();\n}\n\n/**\n * The listener of the `Receiver` `'error'` event.\n *\n * @param {(RangeError|Error)} err The emitted error\n * @private\n */\nfunction receiverOnError(err) {\n  const websocket = this[kWebSocket];\n\n  if (websocket._socket[kWebSocket] !== undefined) {\n    websocket._socket.removeListener('data', socketOnData);\n\n    //\n    // On Node.js < 14.0.0 the `'error'` event is emitted synchronously. See\n    // https://github.com/websockets/ws/issues/1940.\n    //\n    process.nextTick(resume, websocket._socket);\n\n    websocket.close(err[kStatusCode]);\n  }\n\n  websocket.emit('error', err);\n}\n\n/**\n * The listener of the `Receiver` `'finish'` event.\n *\n * @private\n */\nfunction receiverOnFinish() {\n  this[kWebSocket].emitClose();\n}\n\n/**\n * The listener of the `Receiver` `'message'` event.\n *\n * @param {Buffer|ArrayBuffer|Buffer[])} data The message\n * @param {Boolean} isBinary Specifies whether the message is binary or not\n * @private\n */\nfunction receiverOnMessage(data, isBinary) {\n  this[kWebSocket].emit('message', data, isBinary);\n}\n\n/**\n * The listener of the `Receiver` `'ping'` event.\n *\n * @param {Buffer} data The data included in the ping frame\n * @private\n */\nfunction receiverOnPing(data) {\n  const websocket = this[kWebSocket];\n\n  websocket.pong(data, !websocket._isServer, NOOP);\n  websocket.emit('ping', data);\n}\n\n/**\n * The listener of the `Receiver` `'pong'` event.\n *\n * @param {Buffer} data The data included in the pong frame\n * @private\n */\nfunction receiverOnPong(data) {\n  this[kWebSocket].emit('pong', data);\n}\n\n/**\n * Resume a readable stream\n *\n * @param {Readable} stream The readable stream\n * @private\n */\nfunction resume(stream) {\n  stream.resume();\n}\n\n/**\n * The listener of the `net.Socket` `'close'` event.\n *\n * @private\n */\nfunction socketOnClose() {\n  const websocket = this[kWebSocket];\n\n  this.removeListener('close', socketOnClose);\n  this.removeListener('data', socketOnData);\n  this.removeListener('end', socketOnEnd);\n\n  websocket._readyState = WebSocket.CLOSING;\n\n  let chunk;\n\n  //\n  // The close frame might not have been received or the `'end'` event emitted,\n  // for example, if the socket was destroyed due to an error. Ensure that the\n  // `receiver` stream is closed after writing any remaining buffered data to\n  // it. If the readable side of the socket is in flowing mode then there is no\n  // buffered data as everything has been already written and `readable.read()`\n  // will return `null`. If instead, the socket is paused, any possible buffered\n  // data will be read as a single chunk.\n  //\n  if (\n    !this._readableState.endEmitted &&\n    !websocket._closeFrameReceived &&\n    !websocket._receiver._writableState.errorEmitted &&\n    (chunk = websocket._socket.read()) !== null\n  ) {\n    websocket._receiver.write(chunk);\n  }\n\n  websocket._receiver.end();\n\n  this[kWebSocket] = undefined;\n\n  clearTimeout(websocket._closeTimer);\n\n  if (\n    websocket._receiver._writableState.finished ||\n    websocket._receiver._writableState.errorEmitted\n  ) {\n    websocket.emitClose();\n  } else {\n    websocket._receiver.on('error', receiverOnFinish);\n    websocket._receiver.on('finish', receiverOnFinish);\n  }\n}\n\n/**\n * The listener of the `net.Socket` `'data'` event.\n *\n * @param {Buffer} chunk A chunk of data\n * @private\n */\nfunction socketOnData(chunk) {\n  if (!this[kWebSocket]._receiver.write(chunk)) {\n    this.pause();\n  }\n}\n\n/**\n * The listener of the `net.Socket` `'end'` event.\n *\n * @private\n */\nfunction socketOnEnd() {\n  const websocket = this[kWebSocket];\n\n  websocket._readyState = WebSocket.CLOSING;\n  websocket._receiver.end();\n  this.end();\n}\n\n/**\n * The listener of the `net.Socket` `'error'` event.\n *\n * @private\n */\nfunction socketOnError() {\n  const websocket = this[kWebSocket];\n\n  this.removeListener('error', socketOnError);\n  this.on('error', NOOP);\n\n  if (websocket) {\n    websocket._readyState = WebSocket.CLOSING;\n    this.destroy();\n  }\n}\n", "'use strict';\n\nconst { tokenChars } = require('./validation');\n\n/**\n * Parses the `Sec-WebSocket-Protocol` header into a set of subprotocol names.\n *\n * @param {String} header The field value of the header\n * @return {Set} The subprotocol names\n * @public\n */\nfunction parse(header) {\n  const protocols = new Set();\n  let start = -1;\n  let end = -1;\n  let i = 0;\n\n  for (i; i < header.length; i++) {\n    const code = header.charCodeAt(i);\n\n    if (end === -1 && tokenChars[code] === 1) {\n      if (start === -1) start = i;\n    } else if (\n      i !== 0 &&\n      (code === 0x20 /* ' ' */ || code === 0x09) /* '\\t' */\n    ) {\n      if (end === -1 && start !== -1) end = i;\n    } else if (code === 0x2c /* ',' */) {\n      if (start === -1) {\n        throw new SyntaxError(`Unexpected character at index ${i}`);\n      }\n\n      if (end === -1) end = i;\n\n      const protocol = header.slice(start, end);\n\n      if (protocols.has(protocol)) {\n        throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n      }\n\n      protocols.add(protocol);\n      start = end = -1;\n    } else {\n      throw new SyntaxError(`Unexpected character at index ${i}`);\n    }\n  }\n\n  if (start === -1 || end !== -1) {\n    throw new SyntaxError('Unexpected end of input');\n  }\n\n  const protocol = header.slice(start, i);\n\n  if (protocols.has(protocol)) {\n    throw new SyntaxError(`The \"${protocol}\" subprotocol is duplicated`);\n  }\n\n  protocols.add(protocol);\n  return protocols;\n}\n\nmodule.exports = { parse };\n", "/* eslint no-unused-vars: [\"error\", { \"varsIgnorePattern\": \"^net|tls|https$\" }] */\n\n'use strict';\n\nconst EventEmitter = require('events');\nconst http = require('http');\nconst https = require('https');\nconst net = require('net');\nconst tls = require('tls');\nconst { createHash } = require('crypto');\n\nconst extension = require('./extension');\nconst PerMessageDeflate = require('./permessage-deflate');\nconst subprotocol = require('./subprotocol');\nconst WebSocket = require('./websocket');\nconst { GUID, kWebSocket } = require('./constants');\n\nconst keyRegex = /^[+/0-9A-Za-z]{22}==$/;\n\nconst RUNNING = 0;\nconst CLOSING = 1;\nconst CLOSED = 2;\n\n/**\n * Class representing a WebSocket server.\n *\n * @extends EventEmitter\n */\nclass WebSocketServer extends EventEmitter {\n  /**\n   * Create a `WebSocketServer` instance.\n   *\n   * @param {Object} options Configuration options\n   * @param {Number} [options.backlog=511] The maximum length of the queue of\n   *     pending connections\n   * @param {Boolean} [options.clientTracking=true] Specifies whether or not to\n   *     track clients\n   * @param {Function} [options.handleProtocols] A hook to handle protocols\n   * @param {String} [options.host] The hostname where to bind the server\n   * @param {Number} [options.maxPayload=104857600] The maximum allowed message\n   *     size\n   * @param {Boolean} [options.noServer=false] Enable no server mode\n   * @param {String} [options.path] Accept only connections matching this path\n   * @param {(Boolean|Object)} [options.perMessageDeflate=false] Enable/disable\n   *     permessage-deflate\n   * @param {Number} [options.port] The port where to bind the server\n   * @param {(http.Server|https.Server)} [options.server] A pre-created HTTP/S\n   *     server to use\n   * @param {Boolean} [options.skipUTF8Validation=false] Specifies whether or\n   *     not to skip UTF-8 validation for text and close messages\n   * @param {Function} [options.verifyClient] A hook to reject connections\n   * @param {Function} [options.WebSocket=WebSocket] Specifies the `WebSocket`\n   *     class to use. It must be the `WebSocket` class or class that extends it\n   * @param {Function} [callback] A listener for the `listening` event\n   */\n  constructor(options, callback) {\n    super();\n\n    options = {\n      maxPayload: 100 * 1024 * 1024,\n      skipUTF8Validation: false,\n      perMessageDeflate: false,\n      handleProtocols: null,\n      clientTracking: true,\n      verifyClient: null,\n      noServer: false,\n      backlog: null, // use default (511 as implemented in net.js)\n      server: null,\n      host: null,\n      path: null,\n      port: null,\n      WebSocket,\n      ...options\n    };\n\n    if (\n      (options.port == null && !options.server && !options.noServer) ||\n      (options.port != null && (options.server || options.noServer)) ||\n      (options.server && options.noServer)\n    ) {\n      throw new TypeError(\n        'One and only one of the \"port\", \"server\", or \"noServer\" options ' +\n          'must be specified'\n      );\n    }\n\n    if (options.port != null) {\n      this._server = http.createServer((req, res) => {\n        const body = http.STATUS_CODES[426];\n\n        res.writeHead(426, {\n          'Content-Length': body.length,\n          'Content-Type': 'text/plain'\n        });\n        res.end(body);\n      });\n      this._server.listen(\n        options.port,\n        options.host,\n        options.backlog,\n        callback\n      );\n    } else if (options.server) {\n      this._server = options.server;\n    }\n\n    if (this._server) {\n      const emitConnection = this.emit.bind(this, 'connection');\n\n      this._removeListeners = addListeners(this._server, {\n        listening: this.emit.bind(this, 'listening'),\n        error: this.emit.bind(this, 'error'),\n        upgrade: (req, socket, head) => {\n          this.handleUpgrade(req, socket, head, emitConnection);\n        }\n      });\n    }\n\n    if (options.perMessageDeflate === true) options.perMessageDeflate = {};\n    if (options.clientTracking) {\n      this.clients = new Set();\n      this._shouldEmitClose = false;\n    }\n\n    this.options = options;\n    this._state = RUNNING;\n  }\n\n  /**\n   * Returns the bound address, the address family name, and port of the server\n   * as reported by the operating system if listening on an IP socket.\n   * If the server is listening on a pipe or UNIX domain socket, the name is\n   * returned as a string.\n   *\n   * @return {(Object|String|null)} The address of the server\n   * @public\n   */\n  address() {\n    if (this.options.noServer) {\n      throw new Error('The server is operating in \"noServer\" mode');\n    }\n\n    if (!this._server) return null;\n    return this._server.address();\n  }\n\n  /**\n   * Stop the server from accepting new connections and emit the `'close'` event\n   * when all existing connections are closed.\n   *\n   * @param {Function} [cb] A one-time listener for the `'close'` event\n   * @public\n   */\n  close(cb) {\n    if (this._state === CLOSED) {\n      if (cb) {\n        this.once('close', () => {\n          cb(new Error('The server is not running'));\n        });\n      }\n\n      process.nextTick(emitClose, this);\n      return;\n    }\n\n    if (cb) this.once('close', cb);\n\n    if (this._state === CLOSING) return;\n    this._state = CLOSING;\n\n    if (this.options.noServer || this.options.server) {\n      if (this._server) {\n        this._removeListeners();\n        this._removeListeners = this._server = null;\n      }\n\n      if (this.clients) {\n        if (!this.clients.size) {\n          process.nextTick(emitClose, this);\n        } else {\n          this._shouldEmitClose = true;\n        }\n      } else {\n        process.nextTick(emitClose, this);\n      }\n    } else {\n      const server = this._server;\n\n      this._removeListeners();\n      this._removeListeners = this._server = null;\n\n      //\n      // The HTTP/S server was created internally. Close it, and rely on its\n      // `'close'` event.\n      //\n      server.close(() => {\n        emitClose(this);\n      });\n    }\n  }\n\n  /**\n   * See if a given request should be handled by this server instance.\n   *\n   * @param {http.IncomingMessage} req Request object to inspect\n   * @return {Boolean} `true` if the request is valid, else `false`\n   * @public\n   */\n  shouldHandle(req) {\n    if (this.options.path) {\n      const index = req.url.indexOf('?');\n      const pathname = index !== -1 ? req.url.slice(0, index) : req.url;\n\n      if (pathname !== this.options.path) return false;\n    }\n\n    return true;\n  }\n\n  /**\n   * Handle a HTTP Upgrade request.\n   *\n   * @param {http.IncomingMessage} req The request object\n   * @param {(net.Socket|tls.Socket)} socket The network socket between the\n   *     server and client\n   * @param {Buffer} head The first packet of the upgraded stream\n   * @param {Function} cb Callback\n   * @public\n   */\n  handleUpgrade(req, socket, head, cb) {\n    socket.on('error', socketOnError);\n\n    const key = req.headers['sec-websocket-key'];\n    const version = +req.headers['sec-websocket-version'];\n\n    if (req.method !== 'GET') {\n      const message = 'Invalid HTTP method';\n      abortHandshakeOrEmitwsClientError(this, req, socket, 405, message);\n      return;\n    }\n\n    if (req.headers.upgrade.toLowerCase() !== 'websocket') {\n      const message = 'Invalid Upgrade header';\n      abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n      return;\n    }\n\n    if (!key || !keyRegex.test(key)) {\n      const message = 'Missing or invalid Sec-WebSocket-Key header';\n      abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n      return;\n    }\n\n    if (version !== 8 && version !== 13) {\n      const message = 'Missing or invalid Sec-WebSocket-Version header';\n      abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n      return;\n    }\n\n    if (!this.shouldHandle(req)) {\n      abortHandshake(socket, 400);\n      return;\n    }\n\n    const secWebSocketProtocol = req.headers['sec-websocket-protocol'];\n    let protocols = new Set();\n\n    if (secWebSocketProtocol !== undefined) {\n      try {\n        protocols = subprotocol.parse(secWebSocketProtocol);\n      } catch (err) {\n        const message = 'Invalid Sec-WebSocket-Protocol header';\n        abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n        return;\n      }\n    }\n\n    const secWebSocketExtensions = req.headers['sec-websocket-extensions'];\n    const extensions = {};\n\n    if (\n      this.options.perMessageDeflate &&\n      secWebSocketExtensions !== undefined\n    ) {\n      const perMessageDeflate = new PerMessageDeflate(\n        this.options.perMessageDeflate,\n        true,\n        this.options.maxPayload\n      );\n\n      try {\n        const offers = extension.parse(secWebSocketExtensions);\n\n        if (offers[PerMessageDeflate.extensionName]) {\n          perMessageDeflate.accept(offers[PerMessageDeflate.extensionName]);\n          extensions[PerMessageDeflate.extensionName] = perMessageDeflate;\n        }\n      } catch (err) {\n        const message =\n          'Invalid or unacceptable Sec-WebSocket-Extensions header';\n        abortHandshakeOrEmitwsClientError(this, req, socket, 400, message);\n        return;\n      }\n    }\n\n    //\n    // Optionally call external client verification handler.\n    //\n    if (this.options.verifyClient) {\n      const info = {\n        origin:\n          req.headers[`${version === 8 ? 'sec-websocket-origin' : 'origin'}`],\n        secure: !!(req.socket.authorized || req.socket.encrypted),\n        req\n      };\n\n      if (this.options.verifyClient.length === 2) {\n        this.options.verifyClient(info, (verified, code, message, headers) => {\n          if (!verified) {\n            return abortHandshake(socket, code || 401, message, headers);\n          }\n\n          this.completeUpgrade(\n            extensions,\n            key,\n            protocols,\n            req,\n            socket,\n            head,\n            cb\n          );\n        });\n        return;\n      }\n\n      if (!this.options.verifyClient(info)) return abortHandshake(socket, 401);\n    }\n\n    this.completeUpgrade(extensions, key, protocols, req, socket, head, cb);\n  }\n\n  /**\n   * Upgrade the connection to WebSocket.\n   *\n   * @param {Object} extensions The accepted extensions\n   * @param {String} key The value of the `Sec-WebSocket-Key` header\n   * @param {Set} protocols The subprotocols\n   * @param {http.IncomingMessage} req The request object\n   * @param {(net.Socket|tls.Socket)} socket The network socket between the\n   *     server and client\n   * @param {Buffer} head The first packet of the upgraded stream\n   * @param {Function} cb Callback\n   * @throws {Error} If called more than once with the same socket\n   * @private\n   */\n  completeUpgrade(extensions, key, protocols, req, socket, head, cb) {\n    //\n    // Destroy the socket if the client has already sent a FIN packet.\n    //\n    if (!socket.readable || !socket.writable) return socket.destroy();\n\n    if (socket[kWebSocket]) {\n      throw new Error(\n        'server.handleUpgrade() was called more than once with the same ' +\n          'socket, possibly due to a misconfiguration'\n      );\n    }\n\n    if (this._state > RUNNING) return abortHandshake(socket, 503);\n\n    const digest = createHash('sha1')\n      .update(key + GUID)\n      .digest('base64');\n\n    const headers = [\n      'HTTP/1.1 101 Switching Protocols',\n      'Upgrade: websocket',\n      'Connection: Upgrade',\n      `Sec-WebSocket-Accept: ${digest}`\n    ];\n\n    const ws = new this.options.WebSocket(null);\n\n    if (protocols.size) {\n      //\n      // Optionally call external protocol selection handler.\n      //\n      const protocol = this.options.handleProtocols\n        ? this.options.handleProtocols(protocols, req)\n        : protocols.values().next().value;\n\n      if (protocol) {\n        headers.push(`Sec-WebSocket-Protocol: ${protocol}`);\n        ws._protocol = protocol;\n      }\n    }\n\n    if (extensions[PerMessageDeflate.extensionName]) {\n      const params = extensions[PerMessageDeflate.extensionName].params;\n      const value = extension.format({\n        [PerMessageDeflate.extensionName]: [params]\n      });\n      headers.push(`Sec-WebSocket-Extensions: ${value}`);\n      ws._extensions = extensions;\n    }\n\n    //\n    // Allow external modification/inspection of handshake headers.\n    //\n    this.emit('headers', headers, req);\n\n    socket.write(headers.concat('\\r\\n').join('\\r\\n'));\n    socket.removeListener('error', socketOnError);\n\n    ws.setSocket(socket, head, {\n      maxPayload: this.options.maxPayload,\n      skipUTF8Validation: this.options.skipUTF8Validation\n    });\n\n    if (this.clients) {\n      this.clients.add(ws);\n      ws.on('close', () => {\n        this.clients.delete(ws);\n\n        if (this._shouldEmitClose && !this.clients.size) {\n          process.nextTick(emitClose, this);\n        }\n      });\n    }\n\n    cb(ws, req);\n  }\n}\n\nmodule.exports = WebSocketServer;\n\n/**\n * Add event listeners on an `EventEmitter` using a map of <event, listener>\n * pairs.\n *\n * @param {EventEmitter} server The event emitter\n * @param {Object.<String, Function>} map The listeners to add\n * @return {Function} A function that will remove the added listeners when\n *     called\n * @private\n */\nfunction addListeners(server, map) {\n  for (const event of Object.keys(map)) server.on(event, map[event]);\n\n  return function removeListeners() {\n    for (const event of Object.keys(map)) {\n      server.removeListener(event, map[event]);\n    }\n  };\n}\n\n/**\n * Emit a `'close'` event on an `EventEmitter`.\n *\n * @param {EventEmitter} server The event emitter\n * @private\n */\nfunction emitClose(server) {\n  server._state = CLOSED;\n  server.emit('close');\n}\n\n/**\n * Handle socket errors.\n *\n * @private\n */\nfunction socketOnError() {\n  this.destroy();\n}\n\n/**\n * Close the connection when preconditions are not fulfilled.\n *\n * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} [message] The HTTP response body\n * @param {Object} [headers] Additional HTTP response headers\n * @private\n */\nfunction abortHandshake(socket, code, message, headers) {\n  //\n  // The socket is writable unless the user destroyed or ended it before calling\n  // `server.handleUpgrade()` or in the `verifyClient` function, which is a user\n  // error. Handling this does not make much sense as the worst that can happen\n  // is that some of the data written by the user might be discarded due to the\n  // call to `socket.end()` below, which triggers an `'error'` event that in\n  // turn causes the socket to be destroyed.\n  //\n  message = message || http.STATUS_CODES[code];\n  headers = {\n    Connection: 'close',\n    'Content-Type': 'text/html',\n    'Content-Length': Buffer.byteLength(message),\n    ...headers\n  };\n\n  socket.once('finish', socket.destroy);\n\n  socket.end(\n    `HTTP/1.1 ${code} ${http.STATUS_CODES[code]}\\r\\n` +\n      Object.keys(headers)\n        .map((h) => `${h}: ${headers[h]}`)\n        .join('\\r\\n') +\n      '\\r\\n\\r\\n' +\n      message\n  );\n}\n\n/**\n * Emit a `'wsClientError'` event on a `WebSocketServer` if there is at least\n * one listener for it, otherwise call `abortHandshake()`.\n *\n * @param {WebSocketServer} server The WebSocket server\n * @param {http.IncomingMessage} req The request object\n * @param {(net.Socket|tls.Socket)} socket The socket of the upgrade request\n * @param {Number} code The HTTP response status code\n * @param {String} message The HTTP response body\n * @private\n */\nfunction abortHandshakeOrEmitwsClientError(server, req, socket, code, message) {\n  if (server.listenerCount('wsClientError')) {\n    const err = new Error(message);\n    Error.captureStackTrace(err, abortHandshakeOrEmitwsClientError);\n\n    server.emit('wsClientError', err, socket, req);\n  } else {\n    abortHandshake(socket, code, message);\n  }\n}\n", "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n *  - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n  options = options || {};\n  var type = typeof val;\n  if (type === 'string' && val.length > 0) {\n    return parse(val);\n  } else if (type === 'number' && isFinite(val)) {\n    return options.long ? fmtLong(val) : fmtShort(val);\n  }\n  throw new Error(\n    'val is not a non-empty string or a valid number. val=' +\n      JSON.stringify(val)\n  );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n  str = String(str);\n  if (str.length > 100) {\n    return;\n  }\n  var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n    str\n  );\n  if (!match) {\n    return;\n  }\n  var n = parseFloat(match[1]);\n  var type = (match[2] || 'ms').toLowerCase();\n  switch (type) {\n    case 'years':\n    case 'year':\n    case 'yrs':\n    case 'yr':\n    case 'y':\n      return n * y;\n    case 'weeks':\n    case 'week':\n    case 'w':\n      return n * w;\n    case 'days':\n    case 'day':\n    case 'd':\n      return n * d;\n    case 'hours':\n    case 'hour':\n    case 'hrs':\n    case 'hr':\n    case 'h':\n      return n * h;\n    case 'minutes':\n    case 'minute':\n    case 'mins':\n    case 'min':\n    case 'm':\n      return n * m;\n    case 'seconds':\n    case 'second':\n    case 'secs':\n    case 'sec':\n    case 's':\n      return n * s;\n    case 'milliseconds':\n    case 'millisecond':\n    case 'msecs':\n    case 'msec':\n    case 'ms':\n      return n;\n    default:\n      return undefined;\n  }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n  var msAbs = Math.abs(ms);\n  if (msAbs >= d) {\n    return Math.round(ms / d) + 'd';\n  }\n  if (msAbs >= h) {\n    return Math.round(ms / h) + 'h';\n  }\n  if (msAbs >= m) {\n    return Math.round(ms / m) + 'm';\n  }\n  if (msAbs >= s) {\n    return Math.round(ms / s) + 's';\n  }\n  return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n  var msAbs = Math.abs(ms);\n  if (msAbs >= d) {\n    return plural(ms, msAbs, d, 'day');\n  }\n  if (msAbs >= h) {\n    return plural(ms, msAbs, h, 'hour');\n  }\n  if (msAbs >= m) {\n    return plural(ms, msAbs, m, 'minute');\n  }\n  if (msAbs >= s) {\n    return plural(ms, msAbs, s, 'second');\n  }\n  return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n  var isPlural = msAbs >= n * 1.5;\n  return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n", "\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n", "/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n", "'use strict';\nmodule.exports = (flag, argv) => {\n\targv = argv || process.argv;\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst pos = argv.indexOf(prefix + flag);\n\tconst terminatorPos = argv.indexOf('--');\n\treturn pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n", "'use strict';\nconst os = require('os');\nconst hasFlag = require('has-flag');\n\nconst env = process.env;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false')) {\n\tforceColor = false;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n\tforceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(stream) {\n\tif (forceColor === false) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (stream && !stream.isTTY && forceColor !== true) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor ? 1 : 0;\n\n\tif (process.platform === 'win32') {\n\t\t// Node.js 7.5.0 is the first version of Node.js to include a patch to\n\t\t// libuv that enables 256 color output on Windows. Anything earlier and it\n\t\t// won't work. However, here we target Node.js 8 at minimum as it is an LTS\n\t\t// release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows\n\t\t// release that supports 256 colors. Windows 10 build 14931 is the first release\n\t\t// that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(process.versions.node.split('.')[0]) >= 8 &&\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: getSupportLevel(process.stdout),\n\tstderr: getSupportLevel(process.stderr)\n};\n", "/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n *   $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = `  ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.format()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.format(...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n", "/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n", null, null, null, null, null, "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { createServer as createNetServer, Server, Socket } from 'net';\nimport Websocket, { ServerOptions } from 'ws';\n\nimport { Field } from './fields/Field';\nimport * as Constants from './fieldtypes';\nimport { FIXParser } from './FIXParser';\nimport { ConnectionType, Options as FIXParserOptions, Protocol } from './FIXParserBase';\nimport { IFIXParser } from './IFIXParser';\nimport { Message } from './message/Message';\nimport { heartBeat } from './messagetemplates/MessageTemplates';\nimport { serverProcessMessage } from './session/ServerMessageProcessor';\nimport { FrameDecoder } from './util/FrameDecoder';\nimport { MessageBuffer } from './util/MessageBuffer';\nimport {\n    DEFAULT_FIX_VERSION,\n    DEFAULT_HEARTBEAT_SECONDS,\n    log,\n    logError,\n    loggingSettings,\n    Parser,\n    READY_MS,\n    Version,\n    version,\n} from './util/util';\n\ntype Options = Pick<\n    FIXParserOptions,\n    | 'host'\n    | 'port'\n    | 'protocol'\n    | 'sender'\n    | 'target'\n    | 'heartbeatIntervalSeconds'\n    | 'fixVersion'\n    | 'logging'\n    | 'onMessage'\n    | 'onOpen'\n    | 'onError'\n    | 'onClose'\n    | 'onReady'\n>;\n\nclass FIXServer implements IFIXParser {\n    public static version: Version = version;\n\n    public parserName: Parser = 'FIXServer';\n    public fixParser: FIXParser = new FIXParser();\n    public host: string = 'localhost';\n    public port: number = 9878;\n    public protocol: Protocol = 'tcp';\n    public server: Server | Websocket.Server | null = null;\n    public connected: boolean = false;\n    public sender: string = '';\n    public target: string = '';\n    public heartBeatInterval: number = DEFAULT_HEARTBEAT_SECONDS;\n    public fixVersion: string = DEFAULT_FIX_VERSION;\n    public nextNumIn: number = 1;\n    public messageCounter: number = 0;\n    public heartBeatIntervalId: ReturnType<typeof setInterval> | null = null;\n    public messageBufferIn: MessageBuffer = new MessageBuffer();\n    public messageBufferOut: MessageBuffer = new MessageBuffer();\n    public socket: WebSocket | Socket | null = null;\n    public isLoggedIn: boolean = false;\n    public connectionType: ConnectionType = 'acceptor';\n\n    private static onMessageCallback: Options['onMessage'] = () => {};\n    private static onOpenCallback: Options['onOpen'] = () => {};\n    private static onErrorCallback: Options['onError'] = () => {};\n    private static onCloseCallback: Options['onClose'] = () => {};\n    private static onReadyCallback: Options['onReady'] = () => {};\n\n    public createServer(\n        {\n            host = this.host,\n            port = this.port,\n            protocol = this.protocol,\n            sender = this.sender,\n            target = this.target,\n            heartbeatIntervalSeconds = DEFAULT_HEARTBEAT_SECONDS,\n            fixVersion = this.fixVersion,\n            logging = true,\n            onMessage,\n            onOpen,\n            onError,\n            onClose,\n            onReady,\n        }: Options = {\n            onMessage: FIXServer.onMessageCallback,\n            onOpen: FIXServer.onOpenCallback,\n            onError: FIXServer.onErrorCallback,\n            onClose: FIXServer.onCloseCallback,\n            onReady: FIXServer.onReadyCallback,\n        },\n    ): void {\n        this.connectionType = 'acceptor';\n        this.host = host;\n        this.port = port;\n        this.protocol = protocol;\n        this.sender = sender;\n        this.target = target;\n        this.fixParser.sender = sender;\n        this.fixParser.target = target;\n        this.heartBeatInterval = heartbeatIntervalSeconds;\n        this.fixVersion = fixVersion;\n        loggingSettings.enabled = logging;\n\n        if (onMessage !== undefined) {\n            FIXServer.onMessageCallback = onMessage;\n        }\n\n        if (onOpen !== undefined) {\n            FIXServer.onOpenCallback = onOpen;\n        }\n\n        if (onError !== undefined) {\n            FIXServer.onErrorCallback = onError;\n        }\n\n        if (onClose !== undefined) {\n            FIXServer.onCloseCallback = onClose;\n        }\n\n        if (onReady !== undefined) {\n            FIXServer.onReadyCallback = onReady;\n        }\n\n        this.initialize();\n    }\n\n    private initialize() {\n        this.messageCounter = 0;\n        if (this.protocol === 'tcp') {\n            this.server = createNetServer((socket: Socket) => {\n                this.socket = socket;\n                this.socket.pipe(new FrameDecoder()).on('data', (data: string) => {\n                    this.connected = true;\n                    const messages: Message[] = this.parse(data.toString());\n                    let i: number = 0;\n                    for (i; i < messages.length; i++) {\n                        serverProcessMessage(this, messages[i]);\n                        this.messageBufferIn.add(messages[i]);\n                        FIXServer.onMessageCallback?.(messages[i]);\n                    }\n                });\n                this.socket.on('connect', () => {\n                    log(`FIXServer (${this.protocol.toUpperCase()}): -- Connection established`);\n                    this.connected = true;\n                    FIXServer.onOpenCallback?.();\n                });\n                this.socket.on('close', () => {\n                    this.connected = false;\n                    this.stopHeartbeat();\n                    this.resetSession();\n                    log(`FIXServer (${this.protocol.toUpperCase()}): -- Closed connection`);\n                    FIXServer.onCloseCallback?.();\n                });\n                this.socket.on('timeout', () => {\n                    this.connected = false;\n                    this.stopHeartbeat();\n                    this.close();\n                    this.resetSession();\n                    logError(`FIXServer (${this.protocol.toUpperCase()}): -- Connection timeout`);\n                    FIXServer.onCloseCallback?.();\n                });\n                this.socket.on('error', (error: Error) => {\n                    this.connected = false;\n                    this.stopHeartbeat();\n                    this.close();\n                    this.resetSession();\n                    logError(`FIXServer (${this.protocol.toUpperCase()}): -- Error`, error);\n                    FIXServer.onErrorCallback?.(error);\n                });\n            });\n            this.server.listen(this.port, this.host, () => {\n                log(\n                    `FIXServer (${this.protocol.toUpperCase()}): -- Listening for connections at ${this.host}:${\n                        this.port\n                    }...`,\n                );\n                setTimeout(() => FIXServer.onReadyCallback?.(), READY_MS);\n            });\n        } else if (this.protocol === 'websocket') {\n            const serverOptions: ServerOptions = {\n                host: this.host,\n                port: this.port,\n            };\n            this.server = new Websocket.Server(serverOptions);\n            this.server.on('connection', (socket) => {\n                this.connected = true;\n                socket.on('message', (data: string | Buffer) => {\n                    const messages: Message[] = this.parse(data.toString());\n                    let i: number = 0;\n                    for (i; i < messages.length; i++) {\n                        serverProcessMessage(this, messages[i]);\n                        this.messageBufferIn.add(messages[i]);\n                        FIXServer.onMessageCallback?.(messages[i]);\n                    }\n                });\n            });\n            this.server.on('close', () => {\n                this.connected = false;\n                this.stopHeartbeat();\n                FIXServer.onCloseCallback?.();\n                log(`FIXServer (${this.protocol.toUpperCase()}): -- Closed connection`);\n            });\n            this.server.on('error', (error) => {\n                this.connected = false;\n                this.stopHeartbeat();\n                this.close();\n                FIXServer.onErrorCallback?.(error);\n                logError(`FIXServer (${this.protocol.toUpperCase()}): -- Error`);\n            });\n            this.server.on('listening', () => {\n                log(\n                    `FIXServer (${this.protocol.toUpperCase()}): -- Listening for connections at ${this.host}:${\n                        this.port\n                    }...`,\n                );\n                setTimeout(() => FIXServer.onReadyCallback?.(), READY_MS);\n            });\n        } else {\n            logError(`FIXServer: Create server, invalid protocol: ${this.protocol.toUpperCase()}`);\n        }\n    }\n\n    public getNextTargetMsgSeqNum(): number {\n        return this.fixParser.getNextTargetMsgSeqNum();\n    }\n\n    public setNextTargetMsgSeqNum(nextMsgSeqNum: number): number {\n        return this.fixParser.setNextTargetMsgSeqNum(nextMsgSeqNum);\n    }\n\n    public getTimestamp(dateObject = new Date()): string {\n        return this.fixParser.getTimestamp(dateObject);\n    }\n\n    public createMessage(...fields: Field[]): Message {\n        return this.fixParser.createMessage(...fields);\n    }\n\n    public parse(data: string): Message[] {\n        return this.fixParser.parse(data);\n    }\n\n    public send(message: Message): void {\n        if (this.protocol === 'tcp') {\n            const socket: Socket = this.socket! as Socket;\n            const encodedMessage: string = message.encode();\n            this.fixParser.setNextTargetMsgSeqNum(this.fixParser.getNextTargetMsgSeqNum() + 1);\n            if (!socket.write(encodedMessage)) {\n                logError(`FIXServer (${this.protocol.toUpperCase()}): -- Could not send message, socket not open`);\n            } else {\n                this.messageBufferOut.add(message.clone());\n                log(`FIXServer (${this.protocol.toUpperCase()}): >> sent`, encodedMessage.replace(/\\x01/g, '|'));\n            }\n        } else if (this.protocol === 'websocket') {\n            const server: Websocket.Server = this.server! as Websocket.Server;\n            const encodedMessage: string = message.encode();\n            if (server && server.clients && server.clients.size > 0) {\n                server.clients.forEach((client: Websocket) => {\n                    if (client.readyState === client.OPEN) {\n                        this.fixParser.setNextTargetMsgSeqNum(this.fixParser.getNextTargetMsgSeqNum() + 1);\n                        client.send(encodedMessage);\n                        this.messageBufferOut.add(message.clone());\n                        log(\n                            `FIXServer (${this.protocol.toUpperCase()}): >> sent`,\n                            encodedMessage.replace(/\\x01/g, '|'),\n                        );\n                    }\n                });\n            } else {\n                logError(\n                    `FIXServer (${this.protocol.toUpperCase()}): -- Could not send message, socket not connected`,\n                    message,\n                );\n            }\n        }\n    }\n\n    public isConnected(): boolean {\n        return this.connected;\n    }\n\n    private resetSession() {\n        this.isLoggedIn = false;\n        this.messageCounter = 0;\n    }\n\n    public close(): void {\n        if (this.protocol === 'tcp') {\n            const socket: Socket = this.socket! as Socket;\n            const server: Server = this.server! as Server;\n            if (socket && socket.end) {\n                socket.end(() => {\n                    if (server) {\n                        server.close(() => {\n                            log(`FIXServer (${this.protocol.toUpperCase()}): -- Ended session`);\n                            this.initialize();\n                        });\n                    }\n                });\n            }\n        } else if (this.protocol === 'websocket') {\n            const server: Websocket.Server = this.server! as Websocket.Server;\n            if (server) {\n                server.clients.forEach((client: Websocket) => {\n                    client.close();\n                });\n                server.close(() => {\n                    log(`FIXServer (${this.protocol.toUpperCase()}): -- Ended session`);\n                    this.initialize();\n                });\n            }\n        }\n    }\n\n    public destroy(): void {\n        if (this.protocol === 'tcp') {\n            const socket: Socket = this.socket! as Socket;\n            const server: Server = this.server! as Server;\n            socket.destroy();\n            server.close(() => {\n                log(`FIXServer (${this.protocol.toUpperCase()}): -- Destroyed`);\n            });\n        } else if (this.protocol === 'websocket') {\n            const server: Websocket.Server = this.server! as Websocket.Server;\n            if (server) {\n                server.clients.forEach((client: Websocket) => {\n                    client.close();\n                });\n                server.close(() => {\n                    log(`FIXServer (${this.protocol.toUpperCase()}): -- Destroyed`);\n                });\n            }\n        }\n    }\n\n    public stopHeartbeat(): void {\n        clearInterval(this.heartBeatIntervalId!);\n    }\n\n    public startHeartbeat(heartBeatInterval: number = this.heartBeatInterval): void {\n        this.stopHeartbeat();\n        log(`FIXServer (${this.protocol.toUpperCase()}): -- Heartbeat configured to ${heartBeatInterval} seconds`);\n        this.heartBeatInterval = heartBeatInterval;\n        this.heartBeatIntervalId = setInterval(() => {\n            const heartBeatMessage: Message = heartBeat(this);\n            this.send(heartBeatMessage);\n            const encodedMessage: string = heartBeatMessage.encode();\n            log(`FIXServer (${this.protocol.toUpperCase()}): >> sent Heartbeat`, encodedMessage.replace(/\\x01/g, '|'));\n        }, this.heartBeatInterval * 1000);\n    }\n}\n\nexport { AllocPositionEffectEnum as AllocPositionEffect } from './fieldtypes/AllocPositionEffectEnum';\nexport { EncryptMethodEnum as EncryptMethod } from './fieldtypes/EncryptMethodEnum';\nexport { ExecTypeEnum as ExecType } from './fieldtypes/ExecTypeEnum';\nexport { FieldEnum as Fields } from './fieldtypes/FieldEnum';\nexport { HandlInstEnum as HandlInst } from './fieldtypes/HandlInstEnum';\nexport { MarketDepthEnum as MarketDepth } from './fieldtypes/MarketDepthEnum';\nexport { MDEntryTypeEnum as MDEntryType } from './fieldtypes/MDEntryTypeEnum';\nexport { MDUpdateTypeEnum as MDUpdateType } from './fieldtypes/MDUpdateTypeEnum';\nexport { MessageEnum as Messages } from './fieldtypes/MessageEnum';\nexport { OrderStatusEnum as OrderStatus } from './fieldtypes/OrderStatusEnum';\nexport { OrderTypesEnum as OrderTypes } from './fieldtypes/OrderTypesEnum';\nexport { SideEnum as Side } from './fieldtypes/SideEnum';\nexport { SubscriptionRequestTypeEnum as SubscriptionRequestType } from './fieldtypes/SubscriptionRequestTypeEnum';\nexport { TimeInForceEnum as TimeInForce } from './fieldtypes/TimeInForceEnum';\nexport { Protocol } from './FIXParserBase';\nexport { Options } from './FIXParserBase';\nexport { Constants };\nexport { Field };\nexport { Message };\nexport { FIXServer };\n", "import createWebSocketStream from './lib/stream.js';\nimport Receiver from './lib/receiver.js';\nimport Sender from './lib/sender.js';\nimport WebSocket from './lib/websocket.js';\nimport WebSocketServer from './lib/websocket-server.js';\n\nexport { createWebSocketStream, Receiver, Sender, WebSocket, WebSocketServer };\nexport default WebSocket;\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { EnumType } from '../enums/EnumType';\nimport { CategoryType } from './categories/CategoryType';\nimport { FieldType } from './datatypes/FieldType';\nimport { SectionType } from './sections/SectionType';\n\nexport class Field {\n    public tag: number;\n    public value: number | string | boolean | null;\n    public name: string | null = null;\n    public description: string | null = null;\n    public type: FieldType | null = null;\n    public category: CategoryType | null = null;\n    public section: SectionType | null = null;\n    public enumeration: EnumType | null = null;\n    public validated: boolean = false;\n\n    constructor(tag: number, value: number | string | boolean | null) {\n        this.tag = tag >> 0;\n        this.value = value;\n        this.name = null;\n        this.description = null;\n        this.type = null;\n        this.category = null;\n        this.section = null;\n        this.enumeration = null;\n        this.validated = false;\n    }\n\n    public setTag(tag: number): void {\n        this.tag = tag >> 0;\n    }\n\n    public setValue(value: number | string | boolean | null): void {\n        this.value = value;\n    }\n\n    public setName(name: string): void {\n        this.name = name;\n    }\n\n    public setDescription(description: string): void {\n        this.description = description;\n    }\n\n    public setType(type: FieldType | null): void {\n        this.type = type;\n    }\n\n    public setCategory(category: CategoryType): void {\n        this.category = category;\n    }\n\n    public setSection(section: SectionType): void {\n        this.section = section;\n    }\n\n    public setEnumeration(enumeration: EnumType): void {\n        this.enumeration = enumeration;\n    }\n\n    public setValidated(isValid: boolean): void {\n        this.validated = isValid;\n    }\n\n    public toString(): string {\n        return `${this.tag}=${this.value}`;\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport { AllocPositionEffectEnum as AllocPositionEffect } from './AllocPositionEffectEnum';\nexport { EncryptMethodEnum as EncryptMethod } from './EncryptMethodEnum';\nexport { ExecTypeEnum as ExecType } from './ExecTypeEnum';\nexport { FieldEnum as Fields } from './FieldEnum';\nexport { HandlInstEnum as HandlInst } from './HandlInstEnum';\nexport { MarketDepthEnum as MarketDepth } from './MarketDepthEnum';\nexport { MDEntryTypeEnum as MDEntryType } from './MDEntryTypeEnum';\nexport { MDUpdateTypeEnum as MDUpdateType } from './MDUpdateTypeEnum';\nexport { MessageEnum as Messages } from './MessageEnum';\nexport { OrderStatusEnum as OrderStatus } from './OrderStatusEnum';\nexport { OrderTypesEnum as OrderTypes } from './OrderTypesEnum';\nexport { SideEnum as Side } from './SideEnum';\nexport { SubscriptionRequestTypeEnum as SubscriptionRequestType } from './SubscriptionRequestTypeEnum';\nexport { TimeInForceEnum as TimeInForce } from './TimeInForceEnum';\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum AllocPositionEffectEnum {\n    Open = 'O',\n    Close = 'C',\n    Rolled = 'R',\n    Fifo = 'F',\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum EncryptMethodEnum {\n    None = 0,\n    PKCS = 1,\n    DES = 2,\n    PKCSDES = 3,\n    PGPDES = 4,\n    PGPDESMD5 = 5,\n    PEM = 6,\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum ExecTypeEnum {\n    New = '0',\n    PartialFill = '1',\n    Fill = '2',\n    DoneForDay = '3',\n    Canceled = '4',\n    Replaced = '5',\n    PendingCancel = '6',\n    Stopped = '7',\n    Rejected = '8',\n    Suspended = '9',\n    PendingNew = 'A',\n    Calculated = 'B',\n    Expired = 'C',\n    Restated = 'D',\n    PendingReplace = 'E',\n    Trade = 'F',\n    TradeCorrect = 'G',\n    TradeCancel = 'H',\n    OrderStatus = 'I',\n    TradeInClearing = 'J',\n    TradeReleasedClearing = 'K',\n    TriggeredBySystem = 'L',\n    Locked = 'M',\n    Released = 'N',\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum FieldEnum {\n    Account = 1,\n    AdvId = 2,\n    AdvRefID = 3,\n    AdvSide = 4,\n    AdvTransType = 5,\n    AvgPx = 6,\n    BeginSeqNo = 7,\n    BeginString = 8,\n    BodyLength = 9,\n    CheckSum = 10,\n    ClOrdID = 11,\n    Commission = 12,\n    CommType = 13,\n    CumQty = 14,\n    Currency = 15,\n    EndSeqNo = 16,\n    ExecID = 17,\n    ExecInst = 18,\n    ExecRefID = 19,\n    ExecTransType = 20,\n    HandlInst = 21,\n    SecurityIDSource = 22,\n    IOIID = 23,\n    IOIOthSvc = 24,\n    IOIQltyInd = 25,\n    IOIRefID = 26,\n    IOIQty = 27,\n    IOITransType = 28,\n    LastCapacity = 29,\n    LastMkt = 30,\n    LastPx = 31,\n    LastQty = 32,\n    NoLinesOfText = 33,\n    MsgSeqNum = 34,\n    MsgType = 35,\n    NewSeqNo = 36,\n    OrderID = 37,\n    OrderQty = 38,\n    OrdStatus = 39,\n    OrdType = 40,\n    OrigClOrdID = 41,\n    OrigTime = 42,\n    PossDupFlag = 43,\n    Price = 44,\n    RefSeqNum = 45,\n    RelatdSym = 46,\n    Rule80A = 47,\n    SecurityID = 48,\n    SenderCompID = 49,\n    SenderSubID = 50,\n    SendingDate = 51,\n    SendingTime = 52,\n    Quantity = 53,\n    Side = 54,\n    Symbol = 55,\n    TargetCompID = 56,\n    TargetSubID = 57,\n    Text = 58,\n    TimeInForce = 59,\n    TransactTime = 60,\n    Urgency = 61,\n    ValidUntilTime = 62,\n    SettlType = 63,\n    SettlDate = 64,\n    SymbolSfx = 65,\n    ListID = 66,\n    ListSeqNo = 67,\n    TotNoOrders = 68,\n    ListExecInst = 69,\n    AllocID = 70,\n    AllocTransType = 71,\n    RefAllocID = 72,\n    NoOrders = 73,\n    AvgPxPrecision = 74,\n    TradeDate = 75,\n    ExecBroker = 76,\n    PositionEffect = 77,\n    NoAllocs = 78,\n    AllocAccount = 79,\n    AllocQty = 80,\n    ProcessCode = 81,\n    NoRpts = 82,\n    RptSeq = 83,\n    CxlQty = 84,\n    NoDlvyInst = 85,\n    DlvyInst = 86,\n    AllocStatus = 87,\n    AllocRejCode = 88,\n    Signature = 89,\n    SecureDataLen = 90,\n    SecureData = 91,\n    BrokerOfCredit = 92,\n    SignatureLength = 93,\n    EmailType = 94,\n    RawDataLength = 95,\n    RawData = 96,\n    PossResend = 97,\n    EncryptMethod = 98,\n    StopPx = 99,\n    ExDestination = 100,\n    CxlRejReason = 102,\n    OrdRejReason = 103,\n    IOIQualifier = 104,\n    WaveNo = 105,\n    Issuer = 106,\n    SecurityDesc = 107,\n    HeartBtInt = 108,\n    ClientID = 109,\n    MinQty = 110,\n    MaxFloor = 111,\n    TestReqID = 112,\n    ReportToExch = 113,\n    LocateReqd = 114,\n    OnBehalfOfCompID = 115,\n    OnBehalfOfSubID = 116,\n    QuoteID = 117,\n    NetMoney = 118,\n    SettlCurrAmt = 119,\n    SettlCurrency = 120,\n    ForexReq = 121,\n    OrigSendingTime = 122,\n    GapFillFlag = 123,\n    NoExecs = 124,\n    CxlType = 125,\n    ExpireTime = 126,\n    DKReason = 127,\n    DeliverToCompID = 128,\n    DeliverToSubID = 129,\n    IOINaturalFlag = 130,\n    QuoteReqID = 131,\n    BidPx = 132,\n    OfferPx = 133,\n    BidSize = 134,\n    OfferSize = 135,\n    NoMiscFees = 136,\n    MiscFeeAmt = 137,\n    MiscFeeCurr = 138,\n    MiscFeeType = 139,\n    PrevClosePx = 140,\n    ResetSeqNumFlag = 141,\n    SenderLocationID = 142,\n    TargetLocationID = 143,\n    OnBehalfOfLocationID = 144,\n    DeliverToLocationID = 145,\n    NoRelatedSym = 146,\n    Subject = 147,\n    Headline = 148,\n    URLLink = 149,\n    ExecType = 150,\n    LeavesQty = 151,\n    CashOrderQty = 152,\n    AllocAvgPx = 153,\n    AllocNetMoney = 154,\n    SettlCurrFxRate = 155,\n    SettlCurrFxRateCalc = 156,\n    NumDaysInterest = 157,\n    AccruedInterestRate = 158,\n    AccruedInterestAmt = 159,\n    SettlInstMode = 160,\n    AllocText = 161,\n    SettlInstID = 162,\n    SettlInstTransType = 163,\n    EmailThreadID = 164,\n    SettlInstSource = 165,\n    SettlLocation = 166,\n    SecurityType = 167,\n    EffectiveTime = 168,\n    StandInstDbType = 169,\n    StandInstDbName = 170,\n    StandInstDbID = 171,\n    SettlDeliveryType = 172,\n    SettlDepositoryCode = 173,\n    SettlBrkrCode = 174,\n    SettlInstCode = 175,\n    SecuritySettlAgentName = 176,\n    SecuritySettlAgentCode = 177,\n    SecuritySettlAgentAcctNum = 178,\n    SecuritySettlAgentAcctName = 179,\n    SecuritySettlAgentContactName = 180,\n    SecuritySettlAgentContactPhone = 181,\n    CashSettlAgentName = 182,\n    CashSettlAgentCode = 183,\n    CashSettlAgentAcctNum = 184,\n    CashSettlAgentAcctName = 185,\n    CashSettlAgentContactName = 186,\n    CashSettlAgentContactPhone = 187,\n    BidSpotRate = 188,\n    BidForwardPoints = 189,\n    OfferSpotRate = 190,\n    OfferForwardPoints = 191,\n    OrderQty2 = 192,\n    SettlDate2 = 193,\n    LastSpotRate = 194,\n    LastForwardPoints = 195,\n    AllocLinkID = 196,\n    AllocLinkType = 197,\n    SecondaryOrderID = 198,\n    NoIOIQualifiers = 199,\n    MaturityMonthYear = 200,\n    PutOrCall = 201,\n    StrikePrice = 202,\n    CoveredOrUncovered = 203,\n    CustomerOrFirm = 204,\n    MaturityDay = 205,\n    OptAttribute = 206,\n    SecurityExchange = 207,\n    NotifyBrokerOfCredit = 208,\n    AllocHandlInst = 209,\n    MaxShow = 210,\n    PegOffsetValue = 211,\n    XmlDataLen = 212,\n    XmlData = 213,\n    SettlInstRefID = 214,\n    NoRoutingIDs = 215,\n    RoutingType = 216,\n    RoutingID = 217,\n    Spread = 218,\n    Benchmark = 219,\n    BenchmarkCurveCurrency = 220,\n    BenchmarkCurveName = 221,\n    BenchmarkCurvePoint = 222,\n    CouponRate = 223,\n    CouponPaymentDate = 224,\n    IssueDate = 225,\n    RepurchaseTerm = 226,\n    RepurchaseRate = 227,\n    Factor = 228,\n    TradeOriginationDate = 229,\n    ExDate = 230,\n    ContractMultiplier = 231,\n    NoStipulations = 232,\n    StipulationType = 233,\n    StipulationValue = 234,\n    YieldType = 235,\n    Yield = 236,\n    TotalTakedown = 237,\n    Concession = 238,\n    RepoCollateralSecurityType = 239,\n    RedemptionDate = 240,\n    UnderlyingCouponPaymentDate = 241,\n    UnderlyingIssueDate = 242,\n    UnderlyingRepoCollateralSecurityType = 243,\n    UnderlyingRepurchaseTerm = 244,\n    UnderlyingRepurchaseRate = 245,\n    UnderlyingFactor = 246,\n    UnderlyingRedemptionDate = 247,\n    LegCouponPaymentDate = 248,\n    LegIssueDate = 249,\n    LegRepoCollateralSecurityType = 250,\n    LegRepurchaseTerm = 251,\n    LegRepurchaseRate = 252,\n    LegFactor = 253,\n    LegRedemptionDate = 254,\n    CreditRating = 255,\n    UnderlyingCreditRating = 256,\n    LegCreditRating = 257,\n    TradedFlatSwitch = 258,\n    BasisFeatureDate = 259,\n    BasisFeaturePrice = 260,\n    MDReqID = 262,\n    SubscriptionRequestType = 263,\n    MarketDepth = 264,\n    MDUpdateType = 265,\n    AggregatedBook = 266,\n    NoMDEntryTypes = 267,\n    NoMDEntries = 268,\n    MDEntryType = 269,\n    MDEntryPx = 270,\n    MDEntrySize = 271,\n    MDEntryDate = 272,\n    MDEntryTime = 273,\n    TickDirection = 274,\n    MDMkt = 275,\n    QuoteCondition = 276,\n    TradeCondition = 277,\n    MDEntryID = 278,\n    MDUpdateAction = 279,\n    MDEntryRefID = 280,\n    MDReqRejReason = 281,\n    MDEntryOriginator = 282,\n    LocationID = 283,\n    DeskID = 284,\n    DeleteReason = 285,\n    OpenCloseSettlFlag = 286,\n    SellerDays = 287,\n    MDEntryBuyer = 288,\n    MDEntrySeller = 289,\n    MDEntryPositionNo = 290,\n    FinancialStatus = 291,\n    CorporateAction = 292,\n    DefBidSize = 293,\n    DefOfferSize = 294,\n    NoQuoteEntries = 295,\n    NoQuoteSets = 296,\n    QuoteStatus = 297,\n    QuoteCancelType = 298,\n    QuoteEntryID = 299,\n    QuoteRejectReason = 300,\n    QuoteResponseLevel = 301,\n    QuoteSetID = 302,\n    QuoteRequestType = 303,\n    TotNoQuoteEntries = 304,\n    UnderlyingSecurityIDSource = 305,\n    UnderlyingIssuer = 306,\n    UnderlyingSecurityDesc = 307,\n    UnderlyingSecurityExchange = 308,\n    UnderlyingSecurityID = 309,\n    UnderlyingSecurityType = 310,\n    UnderlyingSymbol = 311,\n    UnderlyingSymbolSfx = 312,\n    UnderlyingMaturityMonthYear = 313,\n    UnderlyingMaturityDay = 314,\n    UnderlyingPutOrCall = 315,\n    UnderlyingStrikePrice = 316,\n    UnderlyingOptAttribute = 317,\n    UnderlyingCurrency = 318,\n    RatioQty = 319,\n    SecurityReqID = 320,\n    SecurityRequestType = 321,\n    SecurityResponseID = 322,\n    SecurityResponseType = 323,\n    SecurityStatusReqID = 324,\n    UnsolicitedIndicator = 325,\n    SecurityTradingStatus = 326,\n    HaltReason = 327,\n    InViewOfCommon = 328,\n    DueToRelated = 329,\n    BuyVolume = 330,\n    SellVolume = 331,\n    HighPx = 332,\n    LowPx = 333,\n    Adjustment = 334,\n    TradSesReqID = 335,\n    TradingSessionID = 336,\n    ContraTrader = 337,\n    TradSesMethod = 338,\n    TradSesMode = 339,\n    TradSesStatus = 340,\n    TradSesStartTime = 341,\n    TradSesOpenTime = 342,\n    TradSesPreCloseTime = 343,\n    TradSesCloseTime = 344,\n    TradSesEndTime = 345,\n    NumberOfOrders = 346,\n    MessageEncoding = 347,\n    EncodedIssuerLen = 348,\n    EncodedIssuer = 349,\n    EncodedSecurityDescLen = 350,\n    EncodedSecurityDesc = 351,\n    EncodedListExecInstLen = 352,\n    EncodedListExecInst = 353,\n    EncodedTextLen = 354,\n    EncodedText = 355,\n    EncodedSubjectLen = 356,\n    EncodedSubject = 357,\n    EncodedHeadlineLen = 358,\n    EncodedHeadline = 359,\n    EncodedAllocTextLen = 360,\n    EncodedAllocText = 361,\n    EncodedUnderlyingIssuerLen = 362,\n    EncodedUnderlyingIssuer = 363,\n    EncodedUnderlyingSecurityDescLen = 364,\n    EncodedUnderlyingSecurityDesc = 365,\n    AllocPrice = 366,\n    QuoteSetValidUntilTime = 367,\n    QuoteEntryRejectReason = 368,\n    LastMsgSeqNumProcessed = 369,\n    OnBehalfOfSendingTime = 370,\n    RefTagID = 371,\n    RefMsgType = 372,\n    SessionRejectReason = 373,\n    BidRequestTransType = 374,\n    ContraBroker = 375,\n    ComplianceID = 376,\n    SolicitedFlag = 377,\n    ExecRestatementReason = 378,\n    BusinessRejectRefID = 379,\n    BusinessRejectReason = 380,\n    GrossTradeAmt = 381,\n    NoContraBrokers = 382,\n    MaxMessageSize = 383,\n    NoMsgTypes = 384,\n    MsgDirection = 385,\n    NoTradingSessions = 386,\n    TotalVolumeTraded = 387,\n    DiscretionInst = 388,\n    DiscretionOffsetValue = 389,\n    BidID = 390,\n    ClientBidID = 391,\n    ListName = 392,\n    TotNoRelatedSym = 393,\n    BidType = 394,\n    NumTickets = 395,\n    SideValue1 = 396,\n    SideValue2 = 397,\n    NoBidDescriptors = 398,\n    BidDescriptorType = 399,\n    BidDescriptor = 400,\n    SideValueInd = 401,\n    LiquidityPctLow = 402,\n    LiquidityPctHigh = 403,\n    LiquidityValue = 404,\n    EFPTrackingError = 405,\n    FairValue = 406,\n    OutsideIndexPct = 407,\n    ValueOfFutures = 408,\n    LiquidityIndType = 409,\n    WtAverageLiquidity = 410,\n    ExchangeForPhysical = 411,\n    OutMainCntryUIndex = 412,\n    CrossPercent = 413,\n    ProgRptReqs = 414,\n    ProgPeriodInterval = 415,\n    IncTaxInd = 416,\n    NumBidders = 417,\n    BidTradeType = 418,\n    BasisPxType = 419,\n    NoBidComponents = 420,\n    Country = 421,\n    TotNoStrikes = 422,\n    PriceType = 423,\n    DayOrderQty = 424,\n    DayCumQty = 425,\n    DayAvgPx = 426,\n    GTBookingInst = 427,\n    NoStrikes = 428,\n    ListStatusType = 429,\n    NetGrossInd = 430,\n    ListOrderStatus = 431,\n    ExpireDate = 432,\n    ListExecInstType = 433,\n    CxlRejResponseTo = 434,\n    UnderlyingCouponRate = 435,\n    UnderlyingContractMultiplier = 436,\n    ContraTradeQty = 437,\n    ContraTradeTime = 438,\n    ClearingFirm = 439,\n    ClearingAccount = 440,\n    LiquidityNumSecurities = 441,\n    MultiLegReportingType = 442,\n    StrikeTime = 443,\n    ListStatusText = 444,\n    EncodedListStatusTextLen = 445,\n    EncodedListStatusText = 446,\n    PartyIDSource = 447,\n    PartyID = 448,\n    TotalVolumeTradedDate = 449,\n    TotalVolumeTradedTime = 450,\n    NetChgPrevDay = 451,\n    PartyRole = 452,\n    NoPartyIDs = 453,\n    NoSecurityAltID = 454,\n    SecurityAltID = 455,\n    SecurityAltIDSource = 456,\n    NoUnderlyingSecurityAltID = 457,\n    UnderlyingSecurityAltID = 458,\n    UnderlyingSecurityAltIDSource = 459,\n    Product = 460,\n    CFICode = 461,\n    UnderlyingProduct = 462,\n    UnderlyingCFICode = 463,\n    TestMessageIndicator = 464,\n    QuantityType = 465,\n    BookingRefID = 466,\n    IndividualAllocID = 467,\n    RoundingDirection = 468,\n    RoundingModulus = 469,\n    CountryOfIssue = 470,\n    StateOrProvinceOfIssue = 471,\n    LocaleOfIssue = 472,\n    NoRegistDtls = 473,\n    MailingDtls = 474,\n    InvestorCountryOfResidence = 475,\n    PaymentRef = 476,\n    DistribPaymentMethod = 477,\n    CashDistribCurr = 478,\n    CommCurrency = 479,\n    CancellationRights = 480,\n    MoneyLaunderingStatus = 481,\n    MailingInst = 482,\n    TransBkdTime = 483,\n    ExecPriceType = 484,\n    ExecPriceAdjustment = 485,\n    DateOfBirth = 486,\n    TradeReportTransType = 487,\n    CardHolderName = 488,\n    CardNumber = 489,\n    CardExpDate = 490,\n    CardIssNum = 491,\n    PaymentMethod = 492,\n    RegistAcctType = 493,\n    Designation = 494,\n    TaxAdvantageType = 495,\n    RegistRejReasonText = 496,\n    FundRenewWaiv = 497,\n    CashDistribAgentName = 498,\n    CashDistribAgentCode = 499,\n    CashDistribAgentAcctNumber = 500,\n    CashDistribPayRef = 501,\n    CashDistribAgentAcctName = 502,\n    CardStartDate = 503,\n    PaymentDate = 504,\n    PaymentRemitterID = 505,\n    RegistStatus = 506,\n    RegistRejReasonCode = 507,\n    RegistRefID = 508,\n    RegistDtls = 509,\n    NoDistribInsts = 510,\n    RegistEmail = 511,\n    DistribPercentage = 512,\n    RegistID = 513,\n    RegistTransType = 514,\n    ExecValuationPoint = 515,\n    OrderPercent = 516,\n    OwnershipType = 517,\n    NoContAmts = 518,\n    ContAmtType = 519,\n    ContAmtValue = 520,\n    ContAmtCurr = 521,\n    OwnerType = 522,\n    PartySubID = 523,\n    NestedPartyID = 524,\n    NestedPartyIDSource = 525,\n    SecondaryClOrdID = 526,\n    SecondaryExecID = 527,\n    OrderCapacity = 528,\n    OrderRestrictions = 529,\n    MassCancelRequestType = 530,\n    MassCancelResponse = 531,\n    MassCancelRejectReason = 532,\n    TotalAffectedOrders = 533,\n    NoAffectedOrders = 534,\n    AffectedOrderID = 535,\n    AffectedSecondaryOrderID = 536,\n    QuoteType = 537,\n    NestedPartyRole = 538,\n    NoNestedPartyIDs = 539,\n    TotalAccruedInterestAmt = 540,\n    MaturityDate = 541,\n    UnderlyingMaturityDate = 542,\n    InstrRegistry = 543,\n    CashMargin = 544,\n    NestedPartySubID = 545,\n    Scope = 546,\n    MDImplicitDelete = 547,\n    CrossID = 548,\n    CrossType = 549,\n    CrossPrioritization = 550,\n    OrigCrossID = 551,\n    NoSides = 552,\n    Username = 553,\n    Password = 554,\n    NoLegs = 555,\n    LegCurrency = 556,\n    TotNoSecurityTypes = 557,\n    NoSecurityTypes = 558,\n    SecurityListRequestType = 559,\n    SecurityRequestResult = 560,\n    RoundLot = 561,\n    MinTradeVol = 562,\n    MultiLegRptTypeReq = 563,\n    LegPositionEffect = 564,\n    LegCoveredOrUncovered = 565,\n    LegPrice = 566,\n    TradSesStatusRejReason = 567,\n    TradeRequestID = 568,\n    TradeRequestType = 569,\n    PreviouslyReported = 570,\n    TradeReportID = 571,\n    TradeReportRefID = 572,\n    MatchStatus = 573,\n    MatchType = 574,\n    OddLot = 575,\n    NoClearingInstructions = 576,\n    ClearingInstruction = 577,\n    TradeInputSource = 578,\n    TradeInputDevice = 579,\n    NoDates = 580,\n    AccountType = 581,\n    CustOrderCapacity = 582,\n    ClOrdLinkID = 583,\n    MassStatusReqID = 584,\n    MassStatusReqType = 585,\n    OrigOrdModTime = 586,\n    LegSettlType = 587,\n    LegSettlDate = 588,\n    DayBookingInst = 589,\n    BookingUnit = 590,\n    PreallocMethod = 591,\n    UnderlyingCountryOfIssue = 592,\n    UnderlyingStateOrProvinceOfIssue = 593,\n    UnderlyingLocaleOfIssue = 594,\n    UnderlyingInstrRegistry = 595,\n    LegCountryOfIssue = 596,\n    LegStateOrProvinceOfIssue = 597,\n    LegLocaleOfIssue = 598,\n    LegInstrRegistry = 599,\n    LegSymbol = 600,\n    LegSymbolSfx = 601,\n    LegSecurityID = 602,\n    LegSecurityIDSource = 603,\n    NoLegSecurityAltID = 604,\n    LegSecurityAltID = 605,\n    LegSecurityAltIDSource = 606,\n    LegProduct = 607,\n    LegCFICode = 608,\n    LegSecurityType = 609,\n    LegMaturityMonthYear = 610,\n    LegMaturityDate = 611,\n    LegStrikePrice = 612,\n    LegOptAttribute = 613,\n    LegContractMultiplier = 614,\n    LegCouponRate = 615,\n    LegSecurityExchange = 616,\n    LegIssuer = 617,\n    EncodedLegIssuerLen = 618,\n    EncodedLegIssuer = 619,\n    LegSecurityDesc = 620,\n    EncodedLegSecurityDescLen = 621,\n    EncodedLegSecurityDesc = 622,\n    LegRatioQty = 623,\n    LegSide = 624,\n    TradingSessionSubID = 625,\n    AllocType = 626,\n    NoHops = 627,\n    HopCompID = 628,\n    HopSendingTime = 629,\n    HopRefID = 630,\n    MidPx = 631,\n    BidYield = 632,\n    MidYield = 633,\n    OfferYield = 634,\n    ClearingFeeIndicator = 635,\n    WorkingIndicator = 636,\n    LegLastPx = 637,\n    PriorityIndicator = 638,\n    PriceImprovement = 639,\n    Price2 = 640,\n    LastForwardPoints2 = 641,\n    BidForwardPoints2 = 642,\n    OfferForwardPoints2 = 643,\n    RFQReqID = 644,\n    MktBidPx = 645,\n    MktOfferPx = 646,\n    MinBidSize = 647,\n    MinOfferSize = 648,\n    QuoteStatusReqID = 649,\n    LegalConfirm = 650,\n    UnderlyingLastPx = 651,\n    UnderlyingLastQty = 652,\n    SecDefStatus = 653,\n    LegRefID = 654,\n    ContraLegRefID = 655,\n    SettlCurrBidFxRate = 656,\n    SettlCurrOfferFxRate = 657,\n    QuoteRequestRejectReason = 658,\n    SideComplianceID = 659,\n    AcctIDSource = 660,\n    AllocAcctIDSource = 661,\n    BenchmarkPrice = 662,\n    BenchmarkPriceType = 663,\n    ConfirmID = 664,\n    ConfirmStatus = 665,\n    ConfirmTransType = 666,\n    ContractSettlMonth = 667,\n    DeliveryForm = 668,\n    LastParPx = 669,\n    NoLegAllocs = 670,\n    LegAllocAccount = 671,\n    LegIndividualAllocID = 672,\n    LegAllocQty = 673,\n    LegAllocAcctIDSource = 674,\n    LegSettlCurrency = 675,\n    LegBenchmarkCurveCurrency = 676,\n    LegBenchmarkCurveName = 677,\n    LegBenchmarkCurvePoint = 678,\n    LegBenchmarkPrice = 679,\n    LegBenchmarkPriceType = 680,\n    LegBidPx = 681,\n    LegIOIQty = 682,\n    NoLegStipulations = 683,\n    LegOfferPx = 684,\n    LegOrderQty = 685,\n    LegPriceType = 686,\n    LegQty = 687,\n    LegStipulationType = 688,\n    LegStipulationValue = 689,\n    LegSwapType = 690,\n    Pool = 691,\n    QuotePriceType = 692,\n    QuoteRespID = 693,\n    QuoteRespType = 694,\n    QuoteQualifier = 695,\n    YieldRedemptionDate = 696,\n    YieldRedemptionPrice = 697,\n    YieldRedemptionPriceType = 698,\n    BenchmarkSecurityID = 699,\n    ReversalIndicator = 700,\n    YieldCalcDate = 701,\n    NoPositions = 702,\n    PosType = 703,\n    LongQty = 704,\n    ShortQty = 705,\n    PosQtyStatus = 706,\n    PosAmtType = 707,\n    PosAmt = 708,\n    PosTransType = 709,\n    PosReqID = 710,\n    NoUnderlyings = 711,\n    PosMaintAction = 712,\n    OrigPosReqRefID = 713,\n    PosMaintRptRefID = 714,\n    ClearingBusinessDate = 715,\n    SettlSessID = 716,\n    SettlSessSubID = 717,\n    AdjustmentType = 718,\n    ContraryInstructionIndicator = 719,\n    PriorSpreadIndicator = 720,\n    PosMaintRptID = 721,\n    PosMaintStatus = 722,\n    PosMaintResult = 723,\n    PosReqType = 724,\n    ResponseTransportType = 725,\n    ResponseDestination = 726,\n    TotalNumPosReports = 727,\n    PosReqResult = 728,\n    PosReqStatus = 729,\n    SettlPrice = 730,\n    SettlPriceType = 731,\n    UnderlyingSettlPrice = 732,\n    UnderlyingSettlPriceType = 733,\n    PriorSettlPrice = 734,\n    NoQuoteQualifiers = 735,\n    AllocSettlCurrency = 736,\n    AllocSettlCurrAmt = 737,\n    InterestAtMaturity = 738,\n    LegDatedDate = 739,\n    LegPool = 740,\n    AllocInterestAtMaturity = 741,\n    AllocAccruedInterestAmt = 742,\n    DeliveryDate = 743,\n    AssignmentMethod = 744,\n    AssignmentUnit = 745,\n    OpenInterest = 746,\n    ExerciseMethod = 747,\n    TotNumTradeReports = 748,\n    TradeRequestResult = 749,\n    TradeRequestStatus = 750,\n    TradeReportRejectReason = 751,\n    SideMultiLegReportingType = 752,\n    NoPosAmt = 753,\n    AutoAcceptIndicator = 754,\n    AllocReportID = 755,\n    NoNested2PartyIDs = 756,\n    Nested2PartyID = 757,\n    Nested2PartyIDSource = 758,\n    Nested2PartyRole = 759,\n    Nested2PartySubID = 760,\n    BenchmarkSecurityIDSource = 761,\n    SecuritySubType = 762,\n    UnderlyingSecuritySubType = 763,\n    LegSecuritySubType = 764,\n    AllowableOneSidednessPct = 765,\n    AllowableOneSidednessValue = 766,\n    AllowableOneSidednessCurr = 767,\n    NoTrdRegTimestamps = 768,\n    TrdRegTimestamp = 769,\n    TrdRegTimestampType = 770,\n    TrdRegTimestampOrigin = 771,\n    ConfirmRefID = 772,\n    ConfirmType = 773,\n    ConfirmRejReason = 774,\n    BookingType = 775,\n    IndividualAllocRejCode = 776,\n    SettlInstMsgID = 777,\n    NoSettlInst = 778,\n    LastUpdateTime = 779,\n    AllocSettlInstType = 780,\n    NoSettlPartyIDs = 781,\n    SettlPartyID = 782,\n    SettlPartyIDSource = 783,\n    SettlPartyRole = 784,\n    SettlPartySubID = 785,\n    SettlPartySubIDType = 786,\n    DlvyInstType = 787,\n    TerminationType = 788,\n    NextExpectedMsgSeqNum = 789,\n    OrdStatusReqID = 790,\n    SettlInstReqID = 791,\n    SettlInstReqRejCode = 792,\n    SecondaryAllocID = 793,\n    AllocReportType = 794,\n    AllocReportRefID = 795,\n    AllocCancReplaceReason = 796,\n    CopyMsgIndicator = 797,\n    AllocAccountType = 798,\n    OrderAvgPx = 799,\n    OrderBookingQty = 800,\n    NoSettlPartySubIDs = 801,\n    NoPartySubIDs = 802,\n    PartySubIDType = 803,\n    NoNestedPartySubIDs = 804,\n    NestedPartySubIDType = 805,\n    NoNested2PartySubIDs = 806,\n    Nested2PartySubIDType = 807,\n    AllocIntermedReqType = 808,\n    NoUsernames = 809,\n    UnderlyingPx = 810,\n    PriceDelta = 811,\n    ApplQueueMax = 812,\n    ApplQueueDepth = 813,\n    ApplQueueResolution = 814,\n    ApplQueueAction = 815,\n    NoAltMDSource = 816,\n    AltMDSourceID = 817,\n    SecondaryTradeReportID = 818,\n    AvgPxIndicator = 819,\n    TradeLinkID = 820,\n    OrderInputDevice = 821,\n    UnderlyingTradingSessionID = 822,\n    UnderlyingTradingSessionSubID = 823,\n    TradeLegRefID = 824,\n    ExchangeRule = 825,\n    TradeAllocIndicator = 826,\n    ExpirationCycle = 827,\n    TrdType = 828,\n    TrdSubType = 829,\n    TransferReason = 830,\n    AsgnReqID = 831,\n    TotNumAssignmentReports = 832,\n    AsgnRptID = 833,\n    ThresholdAmount = 834,\n    PegMoveType = 835,\n    PegOffsetType = 836,\n    PegLimitType = 837,\n    PegRoundDirection = 838,\n    PeggedPrice = 839,\n    PegScope = 840,\n    DiscretionMoveType = 841,\n    DiscretionOffsetType = 842,\n    DiscretionLimitType = 843,\n    DiscretionRoundDirection = 844,\n    DiscretionPrice = 845,\n    DiscretionScope = 846,\n    TargetStrategy = 847,\n    TargetStrategyParameters = 848,\n    ParticipationRate = 849,\n    TargetStrategyPerformance = 850,\n    LastLiquidityInd = 851,\n    PublishTrdIndicator = 852,\n    ShortSaleReason = 853,\n    QtyType = 854,\n    SecondaryTrdType = 855,\n    TradeReportType = 856,\n    AllocNoOrdersType = 857,\n    SharedCommission = 858,\n    ConfirmReqID = 859,\n    AvgParPx = 860,\n    ReportedPx = 861,\n    NoCapacities = 862,\n    OrderCapacityQty = 863,\n    NoEvents = 864,\n    EventType = 865,\n    EventDate = 866,\n    EventPx = 867,\n    EventText = 868,\n    PctAtRisk = 869,\n    NoInstrAttrib = 870,\n    InstrAttribType = 871,\n    InstrAttribValue = 872,\n    DatedDate = 873,\n    InterestAccrualDate = 874,\n    CPProgram = 875,\n    CPRegType = 876,\n    UnderlyingCPProgram = 877,\n    UnderlyingCPRegType = 878,\n    UnderlyingQty = 879,\n    TrdMatchID = 880,\n    SecondaryTradeReportRefID = 881,\n    UnderlyingDirtyPrice = 882,\n    UnderlyingEndPrice = 883,\n    UnderlyingStartValue = 884,\n    UnderlyingCurrentValue = 885,\n    UnderlyingEndValue = 886,\n    NoUnderlyingStips = 887,\n    UnderlyingStipType = 888,\n    UnderlyingStipValue = 889,\n    MaturityNetMoney = 890,\n    MiscFeeBasis = 891,\n    TotNoAllocs = 892,\n    LastFragment = 893,\n    CollReqID = 894,\n    CollAsgnReason = 895,\n    CollInquiryQualifier = 896,\n    NoTrades = 897,\n    MarginRatio = 898,\n    MarginExcess = 899,\n    TotalNetValue = 900,\n    CashOutstanding = 901,\n    CollAsgnID = 902,\n    CollAsgnTransType = 903,\n    CollRespID = 904,\n    CollAsgnRespType = 905,\n    CollAsgnRejectReason = 906,\n    CollAsgnRefID = 907,\n    CollRptID = 908,\n    CollInquiryID = 909,\n    CollStatus = 910,\n    TotNumReports = 911,\n    LastRptRequested = 912,\n    AgreementDesc = 913,\n    AgreementID = 914,\n    AgreementDate = 915,\n    StartDate = 916,\n    EndDate = 917,\n    AgreementCurrency = 918,\n    DeliveryType = 919,\n    EndAccruedInterestAmt = 920,\n    StartCash = 921,\n    EndCash = 922,\n    UserRequestID = 923,\n    UserRequestType = 924,\n    NewPassword = 925,\n    UserStatus = 926,\n    UserStatusText = 927,\n    StatusValue = 928,\n    StatusText = 929,\n    RefCompID = 930,\n    RefSubID = 931,\n    NetworkResponseID = 932,\n    NetworkRequestID = 933,\n    LastNetworkResponseID = 934,\n    NetworkRequestType = 935,\n    NoCompIDs = 936,\n    NetworkStatusResponseType = 937,\n    NoCollInquiryQualifier = 938,\n    TrdRptStatus = 939,\n    AffirmStatus = 940,\n    UnderlyingStrikeCurrency = 941,\n    LegStrikeCurrency = 942,\n    TimeBracket = 943,\n    CollAction = 944,\n    CollInquiryStatus = 945,\n    CollInquiryResult = 946,\n    StrikeCurrency = 947,\n    NoNested3PartyIDs = 948,\n    Nested3PartyID = 949,\n    Nested3PartyIDSource = 950,\n    Nested3PartyRole = 951,\n    NoNested3PartySubIDs = 952,\n    Nested3PartySubID = 953,\n    Nested3PartySubIDType = 954,\n    LegContractSettlMonth = 955,\n    LegInterestAccrualDate = 956,\n    NoStrategyParameters = 957,\n    StrategyParameterName = 958,\n    StrategyParameterType = 959,\n    StrategyParameterValue = 960,\n    HostCrossID = 961,\n    SideTimeInForce = 962,\n    MDReportID = 963,\n    SecurityReportID = 964,\n    SecurityStatus = 965,\n    SettleOnOpenFlag = 966,\n    StrikeMultiplier = 967,\n    StrikeValue = 968,\n    MinPriceIncrement = 969,\n    PositionLimit = 970,\n    NTPositionLimit = 971,\n    UnderlyingAllocationPercent = 972,\n    UnderlyingCashAmount = 973,\n    UnderlyingCashType = 974,\n    UnderlyingSettlementType = 975,\n    QuantityDate = 976,\n    ContIntRptID = 977,\n    LateIndicator = 978,\n    InputSource = 979,\n    SecurityUpdateAction = 980,\n    NoExpiration = 981,\n    ExpirationQtyType = 982,\n    ExpQty = 983,\n    NoUnderlyingAmounts = 984,\n    UnderlyingPayAmount = 985,\n    UnderlyingCollectAmount = 986,\n    UnderlyingSettlementDate = 987,\n    UnderlyingSettlementStatus = 988,\n    SecondaryIndividualAllocID = 989,\n    LegReportID = 990,\n    RndPx = 991,\n    IndividualAllocType = 992,\n    AllocCustomerCapacity = 993,\n    TierCode = 994,\n    UnitOfMeasure = 996,\n    TimeUnit = 997,\n    UnderlyingUnitOfMeasure = 998,\n    LegUnitOfMeasure = 999,\n    UnderlyingTimeUnit = 1000,\n    LegTimeUnit = 1001,\n    AllocMethod = 1002,\n    TradeID = 1003,\n    SideTradeReportID = 1005,\n    SideFillStationCd = 1006,\n    SideReasonCd = 1007,\n    SideTrdSubTyp = 1008,\n    SideQty = 1009,\n    MessageEventSource = 1011,\n    SideTrdRegTimestamp = 1012,\n    SideTrdRegTimestampType = 1013,\n    SideTrdRegTimestampSrc = 1014,\n    AsOfIndicator = 1015,\n    NoSideTrdRegTS = 1016,\n    LegOptionRatio = 1017,\n    NoInstrumentParties = 1018,\n    InstrumentPartyID = 1019,\n    TradeVolume = 1020,\n    MDBookType = 1021,\n    MDFeedType = 1022,\n    MDPriceLevel = 1023,\n    MDOriginType = 1024,\n    FirstPx = 1025,\n    MDEntrySpotRate = 1026,\n    MDEntryForwardPoints = 1027,\n    ManualOrderIndicator = 1028,\n    CustDirectedOrder = 1029,\n    ReceivedDeptID = 1030,\n    CustOrderHandlingInst = 1031,\n    OrderHandlingInstSource = 1032,\n    DeskType = 1033,\n    DeskTypeSource = 1034,\n    DeskOrderHandlingInst = 1035,\n    ExecAckStatus = 1036,\n    UnderlyingDeliveryAmount = 1037,\n    UnderlyingCapValue = 1038,\n    UnderlyingSettlMethod = 1039,\n    SecondaryTradeID = 1040,\n    FirmTradeID = 1041,\n    SecondaryFirmTradeID = 1042,\n    CollApplType = 1043,\n    UnderlyingAdjustedQuantity = 1044,\n    UnderlyingFXRate = 1045,\n    UnderlyingFXRateCalc = 1046,\n    AllocPositionEffect = 1047,\n    DealingCapacity = 1048,\n    InstrmtAssignmentMethod = 1049,\n    InstrumentPartyIDSource = 1050,\n    InstrumentPartyRole = 1051,\n    NoInstrumentPartySubIDs = 1052,\n    InstrumentPartySubID = 1053,\n    InstrumentPartySubIDType = 1054,\n    PositionCurrency = 1055,\n    CalculatedCcyLastQty = 1056,\n    AggressorIndicator = 1057,\n    NoUndlyInstrumentParties = 1058,\n    UndlyInstrumentPartyID = 1059,\n    UndlyInstrumentPartyIDSource = 1060,\n    UndlyInstrumentPartyRole = 1061,\n    NoUndlyInstrumentPartySubIDs = 1062,\n    UndlyInstrumentPartySubID = 1063,\n    UndlyInstrumentPartySubIDType = 1064,\n    BidSwapPoints = 1065,\n    OfferSwapPoints = 1066,\n    LegBidForwardPoints = 1067,\n    LegOfferForwardPoints = 1068,\n    SwapPoints = 1069,\n    MDQuoteType = 1070,\n    LastSwapPoints = 1071,\n    SideGrossTradeAmt = 1072,\n    LegLastForwardPoints = 1073,\n    LegCalculatedCcyLastQty = 1074,\n    LegGrossTradeAmt = 1075,\n    MaturityTime = 1079,\n    RefOrderID = 1080,\n    RefOrderIDSource = 1081,\n    SecondaryDisplayQty = 1082,\n    DisplayWhen = 1083,\n    DisplayMethod = 1084,\n    DisplayLowQty = 1085,\n    DisplayHighQty = 1086,\n    DisplayMinIncr = 1087,\n    RefreshQty = 1088,\n    MatchIncrement = 1089,\n    MaxPriceLevels = 1090,\n    PreTradeAnonymity = 1091,\n    PriceProtectionScope = 1092,\n    LotType = 1093,\n    PegPriceType = 1094,\n    PeggedRefPrice = 1095,\n    PegSecurityIDSource = 1096,\n    PegSecurityID = 1097,\n    PegSymbol = 1098,\n    PegSecurityDesc = 1099,\n    TriggerType = 1100,\n    TriggerAction = 1101,\n    TriggerPrice = 1102,\n    TriggerSymbol = 1103,\n    TriggerSecurityID = 1104,\n    TriggerSecurityIDSource = 1105,\n    TriggerSecurityDesc = 1106,\n    TriggerPriceType = 1107,\n    TriggerPriceTypeScope = 1108,\n    TriggerPriceDirection = 1109,\n    TriggerNewPrice = 1110,\n    TriggerOrderType = 1111,\n    TriggerNewQty = 1112,\n    TriggerTradingSessionID = 1113,\n    TriggerTradingSessionSubID = 1114,\n    OrderCategory = 1115,\n    NoRootPartyIDs = 1116,\n    RootPartyID = 1117,\n    RootPartyIDSource = 1118,\n    RootPartyRole = 1119,\n    NoRootPartySubIDs = 1120,\n    RootPartySubID = 1121,\n    RootPartySubIDType = 1122,\n    TradeHandlingInstr = 1123,\n    OrigTradeHandlingInstr = 1124,\n    OrigTradeDate = 1125,\n    OrigTradeID = 1126,\n    OrigSecondaryTradeID = 1127,\n    ApplVerID = 1128,\n    CstmApplVerID = 1129,\n    RefApplVerID = 1130,\n    RefCstmApplVerID = 1131,\n    TZTransactTime = 1132,\n    ExDestinationIDSource = 1133,\n    ReportedPxDiff = 1134,\n    RptSys = 1135,\n    AllocClearingFeeIndicator = 1136,\n    DefaultApplVerID = 1137,\n    DisplayQty = 1138,\n    ExchangeSpecialInstructions = 1139,\n    MaxTradeVol = 1140,\n    NoMDFeedTypes = 1141,\n    MatchAlgorithm = 1142,\n    MaxPriceVariation = 1143,\n    ImpliedMarketIndicator = 1144,\n    EventTime = 1145,\n    MinPriceIncrementAmount = 1146,\n    UnitOfMeasureQty = 1147,\n    LowLimitPrice = 1148,\n    HighLimitPrice = 1149,\n    TradingReferencePrice = 1150,\n    SecurityGroup = 1151,\n    LegNumber = 1152,\n    SettlementCycleNo = 1153,\n    SideCurrency = 1154,\n    SideSettlCurrency = 1155,\n    ApplExtID = 1156,\n    CcyAmt = 1157,\n    NoSettlDetails = 1158,\n    SettlObligMode = 1159,\n    SettlObligMsgID = 1160,\n    SettlObligID = 1161,\n    SettlObligTransType = 1162,\n    SettlObligRefID = 1163,\n    SettlObligSource = 1164,\n    NoSettlOblig = 1165,\n    QuoteMsgID = 1166,\n    QuoteEntryStatus = 1167,\n    TotNoCxldQuotes = 1168,\n    TotNoAccQuotes = 1169,\n    TotNoRejQuotes = 1170,\n    PrivateQuote = 1171,\n    RespondentType = 1172,\n    MDSubBookType = 1173,\n    SecurityTradingEvent = 1174,\n    NoStatsIndicators = 1175,\n    StatsType = 1176,\n    NoOfSecSizes = 1177,\n    MDSecSizeType = 1178,\n    MDSecSize = 1179,\n    ApplID = 1180,\n    ApplSeqNum = 1181,\n    ApplBegSeqNum = 1182,\n    ApplEndSeqNum = 1183,\n    SecurityXMLLen = 1184,\n    SecurityXML = 1185,\n    SecurityXMLSchema = 1186,\n    RefreshIndicator = 1187,\n    Volatility = 1188,\n    TimeToExpiration = 1189,\n    RiskFreeRate = 1190,\n    PriceUnitOfMeasure = 1191,\n    PriceUnitOfMeasureQty = 1192,\n    SettlMethod = 1193,\n    ExerciseStyle = 1194,\n    OptPayAmount = 1195,\n    PriceQuoteMethod = 1196,\n    FuturesValuationMethod = 1197,\n    ListMethod = 1198,\n    CapPrice = 1199,\n    FloorPrice = 1200,\n    NoStrikeRules = 1201,\n    StartStrikePxRange = 1202,\n    EndStrikePxRange = 1203,\n    StrikeIncrement = 1204,\n    NoTickRules = 1205,\n    StartTickPriceRange = 1206,\n    EndTickPriceRange = 1207,\n    TickIncrement = 1208,\n    TickRuleType = 1209,\n    NestedInstrAttribType = 1210,\n    NestedInstrAttribValue = 1211,\n    LegMaturityTime = 1212,\n    UnderlyingMaturityTime = 1213,\n    DerivativeSymbol = 1214,\n    DerivativeSymbolSfx = 1215,\n    DerivativeSecurityID = 1216,\n    DerivativeSecurityIDSource = 1217,\n    NoDerivativeSecurityAltID = 1218,\n    DerivativeSecurityAltID = 1219,\n    DerivativeSecurityAltIDSource = 1220,\n    SecondaryLowLimitPrice = 1221,\n    MaturityRuleID = 1222,\n    StrikeRuleID = 1223,\n    LegUnitOfMeasureQty = 1224,\n    DerivativeOptPayAmount = 1225,\n    EndMaturityMonthYear = 1226,\n    ProductComplex = 1227,\n    DerivativeProductComplex = 1228,\n    MaturityMonthYearIncrement = 1229,\n    SecondaryHighLimitPrice = 1230,\n    MinLotSize = 1231,\n    NoExecInstRules = 1232,\n    NoLotTypeRules = 1234,\n    NoMatchRules = 1235,\n    NoMaturityRules = 1236,\n    NoOrdTypeRules = 1237,\n    NoTimeInForceRules = 1239,\n    SecondaryTradingReferencePrice = 1240,\n    StartMaturityMonthYear = 1241,\n    FlexProductEligibilityIndicator = 1242,\n    DerivFlexProductEligibilityIndicator = 1243,\n    FlexibleIndicator = 1244,\n    TradingCurrency = 1245,\n    DerivativeProduct = 1246,\n    DerivativeSecurityGroup = 1247,\n    DerivativeCFICode = 1248,\n    DerivativeSecurityType = 1249,\n    DerivativeSecuritySubType = 1250,\n    DerivativeMaturityMonthYear = 1251,\n    DerivativeMaturityDate = 1252,\n    DerivativeMaturityTime = 1253,\n    DerivativeSettleOnOpenFlag = 1254,\n    DerivativeInstrmtAssignmentMethod = 1255,\n    DerivativeSecurityStatus = 1256,\n    DerivativeInstrRegistry = 1257,\n    DerivativeCountryOfIssue = 1258,\n    DerivativeStateOrProvinceOfIssue = 1259,\n    DerivativeLocaleOfIssue = 1260,\n    DerivativeStrikePrice = 1261,\n    DerivativeStrikeCurrency = 1262,\n    DerivativeStrikeMultiplier = 1263,\n    DerivativeStrikeValue = 1264,\n    DerivativeOptAttribute = 1265,\n    DerivativeContractMultiplier = 1266,\n    DerivativeMinPriceIncrement = 1267,\n    DerivativeMinPriceIncrementAmount = 1268,\n    DerivativeUnitOfMeasure = 1269,\n    DerivativeUnitOfMeasureQty = 1270,\n    DerivativeTimeUnit = 1271,\n    DerivativeSecurityExchange = 1272,\n    DerivativePositionLimit = 1273,\n    DerivativeNTPositionLimit = 1274,\n    DerivativeIssuer = 1275,\n    DerivativeIssueDate = 1276,\n    DerivativeEncodedIssuerLen = 1277,\n    DerivativeEncodedIssuer = 1278,\n    DerivativeSecurityDesc = 1279,\n    DerivativeEncodedSecurityDescLen = 1280,\n    DerivativeEncodedSecurityDesc = 1281,\n    DerivativeSecurityXMLLen = 1282,\n    DerivativeSecurityXML = 1283,\n    DerivativeSecurityXMLSchema = 1284,\n    DerivativeContractSettlMonth = 1285,\n    NoDerivativeEvents = 1286,\n    DerivativeEventType = 1287,\n    DerivativeEventDate = 1288,\n    DerivativeEventTime = 1289,\n    DerivativeEventPx = 1290,\n    DerivativeEventText = 1291,\n    NoDerivativeInstrumentParties = 1292,\n    DerivativeInstrumentPartyID = 1293,\n    DerivativeInstrumentPartyIDSource = 1294,\n    DerivativeInstrumentPartyRole = 1295,\n    NoDerivativeInstrumentPartySubIDs = 1296,\n    DerivativeInstrumentPartySubID = 1297,\n    DerivativeInstrumentPartySubIDType = 1298,\n    DerivativeExerciseStyle = 1299,\n    MarketSegmentID = 1300,\n    MarketID = 1301,\n    MaturityMonthYearIncrementUnits = 1302,\n    MaturityMonthYearFormat = 1303,\n    StrikeExerciseStyle = 1304,\n    SecondaryPriceLimitType = 1305,\n    PriceLimitType = 1306,\n    DerivativeSecurityListRequestType = 1307,\n    ExecInstValue = 1308,\n    NoTradingSessionRules = 1309,\n    NoMarketSegments = 1310,\n    NoDerivativeInstrAttrib = 1311,\n    NoNestedInstrAttrib = 1312,\n    DerivativeInstrAttribType = 1313,\n    DerivativeInstrAttribValue = 1314,\n    DerivativePriceUnitOfMeasure = 1315,\n    DerivativePriceUnitOfMeasureQty = 1316,\n    DerivativeSettlMethod = 1317,\n    DerivativePriceQuoteMethod = 1318,\n    DerivativeFuturesValuationMethod = 1319,\n    DerivativeListMethod = 1320,\n    DerivativeCapPrice = 1321,\n    DerivativeFloorPrice = 1322,\n    DerivativePutOrCall = 1323,\n    ListUpdateAction = 1324,\n    ParentMktSegmID = 1325,\n    TradingSessionDesc = 1326,\n    TradSesUpdateAction = 1327,\n    RejectText = 1328,\n    FeeMultiplier = 1329,\n    UnderlyingLegSymbol = 1330,\n    UnderlyingLegSymbolSfx = 1331,\n    UnderlyingLegSecurityID = 1332,\n    UnderlyingLegSecurityIDSource = 1333,\n    NoUnderlyingLegSecurityAltID = 1334,\n    UnderlyingLegSecurityAltID = 1335,\n    UnderlyingLegSecurityAltIDSource = 1336,\n    UnderlyingLegSecurityType = 1337,\n    UnderlyingLegSecuritySubType = 1338,\n    UnderlyingLegMaturityMonthYear = 1339,\n    UnderlyingLegStrikePrice = 1340,\n    UnderlyingLegSecurityExchange = 1341,\n    NoOfLegUnderlyings = 1342,\n    UnderlyingLegPutOrCall = 1343,\n    UnderlyingLegCFICode = 1344,\n    UnderlyingLegMaturityDate = 1345,\n    ApplReqID = 1346,\n    ApplReqType = 1347,\n    ApplResponseType = 1348,\n    ApplTotalMessageCount = 1349,\n    ApplLastSeqNum = 1350,\n    NoApplIDs = 1351,\n    ApplResendFlag = 1352,\n    ApplResponseID = 1353,\n    ApplResponseError = 1354,\n    RefApplID = 1355,\n    ApplReportID = 1356,\n    RefApplLastSeqNum = 1357,\n    LegPutOrCall = 1358,\n    EncodedSymbolLen = 1359,\n    EncodedSymbol = 1360,\n    TotNoFills = 1361,\n    NoFills = 1362,\n    FillExecID = 1363,\n    FillPx = 1364,\n    FillQty = 1365,\n    LegAllocID = 1366,\n    LegAllocSettlCurrency = 1367,\n    TradSesEvent = 1368,\n    MassActionReportID = 1369,\n    NoNotAffectedOrders = 1370,\n    NotAffectedOrderID = 1371,\n    NotAffOrigClOrdID = 1372,\n    MassActionType = 1373,\n    MassActionScope = 1374,\n    MassActionResponse = 1375,\n    MassActionRejectReason = 1376,\n    MultilegModel = 1377,\n    MultilegPriceMethod = 1378,\n    LegVolatility = 1379,\n    DividendYield = 1380,\n    LegDividendYield = 1381,\n    CurrencyRatio = 1382,\n    LegCurrencyRatio = 1383,\n    LegExecInst = 1384,\n    ContingencyType = 1385,\n    ListRejectReason = 1386,\n    NoTrdRepIndicators = 1387,\n    TrdRepPartyRole = 1388,\n    TrdRepIndicator = 1389,\n    TradePublishIndicator = 1390,\n    UnderlyingLegOptAttribute = 1391,\n    UnderlyingLegSecurityDesc = 1392,\n    MarketReqID = 1393,\n    MarketReportID = 1394,\n    MarketUpdateAction = 1395,\n    MarketSegmentDesc = 1396,\n    EncodedMktSegmDescLen = 1397,\n    EncodedMktSegmDesc = 1398,\n    ApplNewSeqNum = 1399,\n    EncryptedPasswordMethod = 1400,\n    EncryptedPasswordLen = 1401,\n    EncryptedPassword = 1402,\n    EncryptedNewPasswordLen = 1403,\n    EncryptedNewPassword = 1404,\n    UnderlyingLegMaturityTime = 1405,\n    RefApplExtID = 1406,\n    DefaultApplExtID = 1407,\n    DefaultCstmApplVerID = 1408,\n    SessionStatus = 1409,\n    DefaultVerIndicator = 1410,\n    Nested4PartySubIDType = 1411,\n    Nested4PartySubID = 1412,\n    NoNested4PartySubIDs = 1413,\n    NoNested4PartyIDs = 1414,\n    Nested4PartyID = 1415,\n    Nested4PartyIDSource = 1416,\n    Nested4PartyRole = 1417,\n    LegLastQty = 1418,\n    UnderlyingExerciseStyle = 1419,\n    LegExerciseStyle = 1420,\n    LegPriceUnitOfMeasure = 1421,\n    LegPriceUnitOfMeasureQty = 1422,\n    UnderlyingUnitOfMeasureQty = 1423,\n    UnderlyingPriceUnitOfMeasure = 1424,\n    UnderlyingPriceUnitOfMeasureQty = 1425,\n    ApplReportType = 1426,\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum HandlInstEnum {\n    AutomatedExecutionNoIntervention = 1,\n    AutomatedExecutionInterventionOK = 2,\n    ManualOrder = 3,\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum MarketDepthEnum {\n    FullBook = 0,\n    TopofBook = 1,\n    Best_2_PriceTiers = 2,\n    Best_3_PriceTiers = 3,\n    Best_4_PriceTiers = 4,\n    Best_5_PriceTiers = 5,\n    Best_6_PriceTiers = 6,\n    Best_7_PriceTiers = 7,\n    Best_8_PriceTiers = 8,\n    Best_9_PriceTiers = 9,\n    Best_10_PriceTiers = 10,\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum MDEntryTypeEnum {\n    Bid = '0',\n    Offer = '1',\n    Trade = '2',\n    IndexValue = '3',\n    OpeningPrice = '4',\n    ClosingPrice = '5',\n    SettlementPrice = '6',\n    TradingSessionHighPrice = '7',\n    TradingSessionLowPrice = '8',\n    TradingSessionVWAPPrice = '9',\n    Imbalance = 'A',\n    TradeVolume = 'B',\n    OpenInterest = 'C',\n    CompositeUnderlyingPrice = 'D',\n    SimulatedSellPrice = 'E',\n    SimulatedBuyPrice = 'F',\n    MarginRate = 'G',\n    MidPrice = 'H',\n    EmptyBook = 'J',\n    SettleHighPrice = 'K',\n    SettleLowPrice = 'L',\n    PriorSettlePrice = 'M',\n    SessionHighBid = 'N',\n    SessionLowOffer = 'O',\n    EarlyPrices = 'P',\n    AuctionClearingPrice = 'Q',\n    SwapValueFactor = 'S',\n    DailyValueAdjustmentLongPosition = 'R',\n    CumulativeValueAdjustmentLongPosition = 'T',\n    DailyValueAdjustmentShortPosition = 'U',\n    CumulativeValueAdjustmentShortPosition = 'V',\n    FixingPrice = 'W',\n    CashRate = 'X',\n    RecoveryRate = 'Y',\n    RecoveryRateLongPosition = 'Z',\n    RecoveryRateShortPosition = 'a',\n    MarketBid = 'b',\n    MarketOffer = 'c',\n    ShortSaleMinPrice = 'd',\n    PreviousClosingPrice = 'e',\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum MDUpdateTypeEnum {\n    FullRefresh = 0,\n    IncrementalRefresh = 1,\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum MessageEnum {\n    Heartbeat = '0',\n    TestRequest = '1',\n    ResendRequest = '2',\n    Reject = '3',\n    SequenceReset = '4',\n    Logout = '5',\n    IOI = '6',\n    Advertisement = '7',\n    ExecutionReport = '8',\n    OrderCancelReject = '9',\n    Logon = 'A',\n    News = 'B',\n    Email = 'C',\n    NewOrderSingle = 'D',\n    NewOrderList = 'E',\n    OrderCancelRequest = 'F',\n    OrderCancelReplaceRequest = 'G',\n    OrderStatusRequest = 'H',\n    AllocationInstruction = 'J',\n    ListCancelRequest = 'K',\n    ListExecute = 'L',\n    ListStatusRequest = 'M',\n    ListStatus = 'N',\n    AllocationInstructionAck = 'P',\n    DontKnowTrade = 'Q',\n    QuoteRequest = 'R',\n    Quote = 'S',\n    SettlementInstructions = 'T',\n    MarketDataRequest = 'V',\n    MarketDataSnapshotFullRefresh = 'W',\n    MarketDataIncrementalRefresh = 'X',\n    MarketDataRequestReject = 'Y',\n    QuoteCancel = 'Z',\n    QuoteStatusRequest = 'a',\n    MassQuoteAcknowledgement = 'b',\n    SecurityDefinitionRequest = 'c',\n    SecurityDefinition = 'd',\n    SecurityStatusRequest = 'e',\n    SecurityStatus = 'f',\n    TradingSessionStatusRequest = 'g',\n    TradingSessionStatus = 'h',\n    MassQuote = 'i',\n    BusinessMessageReject = 'j',\n    BidRequest = 'k',\n    BidResponse = 'l',\n    ListStrikePrice = 'm',\n    XMLnonFIX = 'n',\n    RegistrationInstructions = 'o',\n    RegistrationInstructionsResponse = 'p',\n    OrderMassCancelRequest = 'q',\n    OrderMassCancelReport = 'r',\n    NewOrderCross = 's',\n    CrossOrderCancelReplaceRequest = 't',\n    CrossOrderCancelRequest = 'u',\n    SecurityTypeRequest = 'v',\n    SecurityTypes = 'w',\n    SecurityListRequest = 'x',\n    SecurityList = 'y',\n    DerivativeSecurityListRequest = 'z',\n    DerivativeSecurityList = 'AA',\n    NewOrderMultileg = 'AB',\n    MultilegOrderCancelReplace = 'AC',\n    TradeCaptureReportRequest = 'AD',\n    TradeCaptureReport = 'AE',\n    OrderMassStatusRequest = 'AF',\n    QuoteRequestReject = 'AG',\n    RFQRequest = 'AH',\n    QuoteStatusReport = 'AI',\n    QuoteResponse = 'AJ',\n    Confirmation = 'AK',\n    PositionMaintenanceRequest = 'AL',\n    PositionMaintenanceReport = 'AM',\n    RequestForPositions = 'AN',\n    RequestForPositionsAck = 'AO',\n    PositionReport = 'AP',\n    TradeCaptureReportRequestAck = 'AQ',\n    TradeCaptureReportAck = 'AR',\n    AllocationReport = 'AS',\n    AllocationReportAck = 'AT',\n    ConfirmationAck = 'AU',\n    SettlementInstructionRequest = 'AV',\n    AssignmentReport = 'AW',\n    CollateralRequest = 'AX',\n    CollateralAssignment = 'AY',\n    CollateralResponse = 'AZ',\n    CollateralReport = 'BA',\n    CollateralInquiry = 'BB',\n    NetworkCounterpartySystemStatusRequest = 'BC',\n    NetworkCounterpartySystemStatusResponse = 'BD',\n    UserRequest = 'BE',\n    UserResponse = 'BF',\n    CollateralInquiryAck = 'BG',\n    ConfirmationRequest = 'BH',\n    TradingSessionListRequest = 'BI',\n    TradingSessionList = 'BJ',\n    SecurityListUpdateReport = 'BK',\n    AdjustedPositionReport = 'BL',\n    AllocationInstructionAlert = 'BM',\n    ExecutionAcknowledgement = 'BN',\n    ContraryIntentionReport = 'BO',\n    SecurityDefinitionUpdateReport = 'BP',\n    SettlementObligationReport = 'BQ',\n    DerivativeSecurityListUpdateReport = 'BR',\n    TradingSessionListUpdateReport = 'BS',\n    MarketDefinitionRequest = 'BT',\n    MarketDefinition = 'BU',\n    MarketDefinitionUpdateReport = 'BV',\n    ApplicationMessageRequest = 'BW',\n    ApplicationMessageRequestAck = 'BX',\n    ApplicationMessageReport = 'BY',\n    OrderMassActionReport = 'BZ',\n    OrderMassActionRequest = 'CA',\n    UserNotification = 'CB',\n    StreamAssignmentRequest = 'CC',\n    StreamAssignmentReport = 'CD',\n    StreamAssignmentReportACK = 'CE',\n    MarginRequirementInquiry = 'CH',\n    MarginRequirementInquiryAck = 'CI',\n    MarginRequirementReport = 'CJ',\n    PartyDetailsListRequest = 'CF',\n    PartyDetailsListReport = 'CG',\n    PartyDetailsListUpdateReport = 'CK',\n    PartyRiskLimitsRequest = 'CL',\n    PartyRiskLimitsReport = 'CM',\n    SecurityMassStatusRequest = 'CN',\n    SecurityMassStatus = 'CO',\n    AccountSummaryReport = 'CQ',\n    PartyRiskLimitsUpdateReport = 'CR',\n    PartyRiskLimitsDefinitionRequest = 'CS',\n    PartyRiskLimitsDefinitionRequestAck = 'CT',\n    PartyEntitlementsRequest = 'CU',\n    PartyEntitlementsReport = 'CV',\n    QuoteAck = 'CW',\n    PartyDetailsDefinitionRequest = 'CX',\n    PartyDetailsDefinitionRequestAck = 'CY',\n    PartyEntitlementsUpdateReport = 'CZ',\n    PartyEntitlementsDefinitionRequest = 'DA',\n    PartyEntitlementsDefinitionRequestAck = 'DB',\n    TradeMatchReport = 'DC',\n    TradeMatchReportAck = 'DD',\n    PartyRiskLimitsReportAck = 'DE',\n    PartyRiskLimitCheckRequest = 'DF',\n    PartyRiskLimitCheckRequestAck = 'DG',\n    PartyActionRequest = 'DH',\n    PartyActionReport = 'DI',\n    MassOrder = 'DJ',\n    MassOrderAck = 'DK',\n    PositionTransferInstruction = 'DL',\n    PositionTransferInstructionAck = 'DM',\n    PositionTransferReport = 'DN',\n    MarketDataStatisticsRequest = 'DO',\n    MarketDataStatisticsReport = 'DP',\n    CollateralReportAck = 'DQ',\n    MarketDataReport = 'DR',\n    AllocationInstructionAlertRequest = 'DU',\n    AllocationInstructionAlertRequestAck = 'DV',\n    TradeAggregationRequest = 'DW',\n    TradeAggregationReport = 'DX',\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum OrderStatusEnum {\n    New = '0',\n    PartiallyFilled = '1',\n    Filled = '2',\n    DoneForDay = '3',\n    Canceled = '4',\n    Replaced = '5',\n    PendingCancel = '6',\n    Stopped = '7',\n    Rejected = '8',\n    Suspended = '9',\n    PendingNew = 'A',\n    Calculated = 'B',\n    Expired = 'C',\n    AcceptedForBidding = 'D',\n    PendingReplace = 'E',\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum OrderTypesEnum {\n    Market = '1',\n    Limit = '2',\n    Stop = '3',\n    StopLimit = '4',\n    MarketOnClose = '5',\n    WithOrWithout = '6',\n    LimitOrBetter = '7',\n    LimitWithOrWithout = '8',\n    OnBasis = '9',\n    OnClose = 'A',\n    LimitOnClose = 'B',\n    ForexMarket = 'C',\n    PreviouslyQuoted = 'D',\n    PreviouslyIndicated = 'E',\n    ForexLimit = 'F',\n    ForexSwap = 'G',\n    ForexPreviouslyQuoted = 'H',\n    Funari = 'I',\n    MarketIfTouched = 'J',\n    MarketWithLeftOverAsLimit = 'K',\n    PreviousFundValuationPoint = 'L',\n    NextFundValuationPoint = 'M',\n    Pegged = 'P',\n    CounterOrderSelection = 'Q',\n    StopOnBidOrOffer = 'R',\n    StopLimitOnBidOrOffer = 'S',\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum SideEnum {\n    Buy = '1',\n    Sell = '2',\n    BuyMinus = '3',\n    SellPlus = '4',\n    SellShort = '5',\n    SellShortExempt = '6',\n    Undisclosed = '7',\n    Cross = '8',\n    CrossShort = '9',\n    CrossShortExempt = 'A',\n    AsDefined = 'B',\n    Opposite = 'C',\n    Subscribe = 'D',\n    Redeem = 'E',\n    Lend = 'F',\n    Borrow = 'G',\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum SubscriptionRequestTypeEnum {\n    Snapshot = 0,\n    SnapshotPlusUpdates = 1,\n    DisablePreviousSnapshotPlusUpdateRequest = 2,\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport enum TimeInForceEnum {\n    Day = '0',\n    GoodTillCancel = '1',\n    AtTheOpening = '2',\n    ImmediateOrCancel = '3',\n    FillOrKill = '4',\n    GoodTillCrossing = '5',\n    GoodTillDate = '6',\n    AtTheClose = '7',\n    GoodThroughCrossing = '8',\n    AtCrossing = '9',\n    GoodForTime = 'A',\n    GoodForAuction = 'B',\n    GoodForThisMonth = 'C',\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { HttpsProxyAgent } from 'https-proxy-agent';\nimport { Socket } from 'net';\nimport { connect as TLSConnect, ConnectionOptions, TLSSocket } from 'tls';\nimport { URL } from 'url';\nimport WebSocket from 'ws';\n\nimport { Field } from './fields/Field';\nimport * as Constants from './fieldtypes';\nimport { ConnectionType, FIXParserBase, Options, Protocol } from './FIXParserBase';\nimport { IFIXParser } from './IFIXParser';\nimport { Message } from './message/Message';\nimport { heartBeat } from './messagetemplates/MessageTemplates';\nimport { clientProcessMessage } from './session/ClientMessageProcessor';\nimport { FrameDecoder } from './util/FrameDecoder';\nimport { MessageBuffer } from './util/MessageBuffer';\nimport {\n    DEFAULT_FIX_VERSION,\n    DEFAULT_HEARTBEAT_SECONDS,\n    log,\n    logError,\n    loggingSettings,\n    Parser,\n    READY_MS,\n    timestamp,\n    Version,\n    version,\n} from './util/util';\n\nclass FIXParser implements IFIXParser {\n    public static version: Version = version;\n\n    public parserName: Parser = 'FIXParser';\n    public fixParserBase: FIXParserBase = new FIXParserBase();\n    public nextNumIn: number = 1;\n    public nextNumOut: number = 1;\n    public heartBeatIntervalId: ReturnType<typeof setInterval> | null = null;\n    public socket: Socket | WebSocket | TLSSocket | null = null;\n    public connected: boolean = false;\n    public host: string | null = null;\n    public port: number | null = null;\n    public protocol: Protocol | null = 'tcp';\n    public sender: string | null = null;\n    public target: string | null = null;\n    public heartBeatInterval: number = DEFAULT_HEARTBEAT_SECONDS;\n    public fixVersion: string = DEFAULT_FIX_VERSION;\n    public messageBufferIn: MessageBuffer = new MessageBuffer();\n    public messageBufferOut: MessageBuffer = new MessageBuffer();\n    public connectionType: ConnectionType = 'initiator';\n\n    private static onMessageCallback: Options['onMessage'] = () => {};\n    private static onOpenCallback: Options['onOpen'] = () => {};\n    private static onErrorCallback: Options['onError'] = () => {};\n    private static onCloseCallback: Options['onClose'] = () => {};\n    private static onReadyCallback: Options['onReady'] = () => {};\n\n    public connect(\n        {\n            host = 'localhost',\n            port = 9878,\n            protocol = 'tcp',\n            sender = 'SENDER',\n            target = 'TARGET',\n            heartbeatIntervalSeconds = DEFAULT_HEARTBEAT_SECONDS,\n            fixVersion = this.fixVersion,\n            tlsKey = null,\n            tlsCert = null,\n            tlsUseSNI = false,\n            logging = true,\n            proxy = null,\n            onMessage,\n            onOpen,\n            onError,\n            onClose,\n            onReady,\n        }: Options = {\n            onMessage: FIXParser.onMessageCallback,\n            onOpen: FIXParser.onOpenCallback,\n            onError: FIXParser.onErrorCallback,\n            onClose: FIXParser.onCloseCallback,\n            onReady: FIXParser.onReadyCallback,\n        },\n    ): void {\n        this.connectionType = 'initiator';\n        this.fixVersion = fixVersion;\n        this.fixParserBase.fixVersion = fixVersion;\n        this.protocol = protocol;\n        this.sender = sender;\n        this.target = target;\n        this.heartBeatInterval = heartbeatIntervalSeconds;\n        loggingSettings.enabled = logging;\n\n        if (onMessage !== undefined) {\n            FIXParser.onMessageCallback = onMessage;\n        }\n\n        if (onOpen !== undefined) {\n            FIXParser.onOpenCallback = onOpen;\n        }\n\n        if (onError !== undefined) {\n            FIXParser.onErrorCallback = onError;\n        }\n\n        if (onClose !== undefined) {\n            FIXParser.onCloseCallback = onClose;\n        }\n\n        if (onReady !== undefined) {\n            FIXParser.onReadyCallback = onReady;\n        }\n\n        if (protocol === 'tcp') {\n            this.socket = new Socket();\n            this.socket.setEncoding('ascii');\n            this.socket.pipe(new FrameDecoder()).on('data', (data: string) => {\n                const messages: Message[] = this.parse(data.toString());\n                let i: number = 0;\n                for (i; i < messages.length; i++) {\n                    clientProcessMessage(this, messages[i]);\n                    this.messageBufferIn.add(messages[i]);\n                    FIXParser.onMessageCallback?.(messages[i]);\n                }\n            });\n            this.socket.connect(port, host, () => {\n                this.connected = true;\n                log(`FIXParser (${this.protocol!.toUpperCase()}): -- Connected`);\n                FIXParser.onOpenCallback?.();\n            });\n            this.socket.on('close', () => {\n                this.connected = false;\n                FIXParser.onCloseCallback?.();\n                this.stopHeartbeat();\n            });\n            this.socket.on('ready', () => {\n                setTimeout(() => FIXParser.onReadyCallback?.(), READY_MS);\n            });\n            this.socket.on('timeout', () => {\n                this.connected = false;\n                const socket: Socket = this.socket! as Socket;\n                FIXParser.onCloseCallback?.();\n                socket.end();\n                this.stopHeartbeat();\n            });\n            this.socket.on('error', (error) => {\n                this.connected = false;\n                FIXParser.onErrorCallback?.(error);\n                this.stopHeartbeat();\n            });\n        } else if (protocol === 'websocket') {\n            const connectionString: string =\n                host.indexOf('ws://') === -1 && host.indexOf('wss://') === -1\n                    ? `ws://${host}:${port}`\n                    : `${host}:${port}`;\n            if (proxy) {\n                const proxyUrl: URL = new URL(proxy);\n                const agent: HttpsProxyAgent = new HttpsProxyAgent(proxyUrl);\n                this.socket = new WebSocket(connectionString, { agent });\n            } else {\n                this.socket = new WebSocket(connectionString);\n            }\n            this.socket.on('message', (data: string | Buffer) => {\n                const messages: Message[] = this.parse(data.toString());\n                let i: number = 0;\n                for (i; i < messages.length; i++) {\n                    clientProcessMessage(this, messages[i]);\n                    this.messageBufferIn.add(messages[i]);\n                    FIXParser.onMessageCallback?.(messages[i]);\n                }\n            });\n            this.socket.on('open', () => {\n                log(`FIXParser (${this.protocol!.toUpperCase()}): -- Connected`);\n                this.connected = true;\n                FIXParser.onOpenCallback?.();\n            });\n            this.socket.on('close', () => {\n                this.connected = false;\n                FIXParser.onCloseCallback?.();\n                this.stopHeartbeat();\n            });\n            if (\n                this.socket.readyState ===\n                (WebSocket.OPEN || WebSocket.CLOSED || WebSocket.CLOSING || WebSocket.CONNECTING)\n            ) {\n                setTimeout(() => FIXParser.onReadyCallback?.(), READY_MS);\n            }\n        } else if (protocol === 'ssl-tcp' || protocol === 'tls-tcp') {\n            const options: ConnectionOptions = {\n                host,\n                port,\n                rejectUnauthorized: false,\n            };\n\n            if (tlsKey && tlsCert) {\n                options.key = tlsKey as any;\n                options.cert = tlsCert as any;\n            }\n\n            if (tlsUseSNI) {\n                options.servername = host;\n            }\n\n            this.socket = TLSConnect(port, host, options, () => {\n                this.connected = true;\n                FIXParser.onOpenCallback?.();\n                log(`FIXParser (${this.protocol!.toUpperCase()}): -- Connected through TLS`);\n\n                process.stdin.pipe(this.socket as TLSSocket);\n                process.stdin.resume();\n            });\n            this.socket.setEncoding('utf8');\n            this.socket.on('data', (data: string) => {\n                const messages: Message[] = this.parse(data.toString());\n                let i: number = 0;\n                for (i; i < messages.length; i++) {\n                    clientProcessMessage(this, messages[i]);\n                    this.messageBufferIn.add(messages[i]);\n                    FIXParser.onMessageCallback?.(messages[i]);\n                }\n            });\n            this.socket.on('close', () => {\n                this.connected = false;\n                FIXParser.onCloseCallback?.();\n                this.stopHeartbeat();\n            });\n            this.socket.on('timeout', () => {\n                const socket: TLSSocket = this.socket! as TLSSocket;\n                this.connected = false;\n                FIXParser.onCloseCallback?.();\n                socket.end();\n                this.stopHeartbeat();\n            });\n            this.socket.on('error', (error: Error) => {\n                this.connected = false;\n                FIXParser.onErrorCallback?.(error);\n                this.stopHeartbeat();\n            });\n            setTimeout(() => FIXParser.onReadyCallback?.(), READY_MS);\n        }\n    }\n\n    public getNextTargetMsgSeqNum(): number {\n        return this.nextNumOut;\n    }\n\n    public setNextTargetMsgSeqNum(nextMsgSeqNum: number): number {\n        this.nextNumOut = nextMsgSeqNum;\n        return this.nextNumOut;\n    }\n\n    public getTimestamp(dateObject = new Date()): string {\n        return timestamp(dateObject);\n    }\n\n    public createMessage(...fields: Field[]): Message {\n        const message: Message = new Message(this.fixVersion, ...fields);\n        message.messageSequence = this.getNextTargetMsgSeqNum();\n        return message;\n    }\n\n    public parse(data: string): Message[] {\n        return this.fixParserBase.parse(data);\n    }\n\n    public send(message: Message): void {\n        const encodedMessage: string = message.encode();\n        if (this.protocol === 'tcp' && this.connected) {\n            this.setNextTargetMsgSeqNum(this.getNextTargetMsgSeqNum() + 1);\n            (this.socket! as Socket).write(encodedMessage);\n            this.messageBufferOut.add(message.clone());\n            log(`FIXParser (${this.protocol.toUpperCase()}): >> sent`, encodedMessage.replace(/\\x01/g, '|'));\n        } else if (this.protocol === 'websocket' && (this.socket! as WebSocket).readyState === WebSocket.OPEN) {\n            this.setNextTargetMsgSeqNum(this.getNextTargetMsgSeqNum() + 1);\n            (this.socket! as WebSocket).send(encodedMessage);\n            this.messageBufferOut.add(message.clone());\n            log(`FIXParser (${this.protocol.toUpperCase()}): >> sent`, encodedMessage.replace(/\\x01/g, '|'));\n        } else if ((this.protocol === 'ssl-tcp' || this.protocol === 'tls-tcp') && this.connected) {\n            this.setNextTargetMsgSeqNum(this.getNextTargetMsgSeqNum() + 1);\n            (this.socket! as TLSSocket).write(encodedMessage);\n            this.messageBufferOut.add(message.clone());\n            log(`FIXParser (${this.protocol.toUpperCase()}): >> sent`, encodedMessage.replace(/\\x01/g, '|'));\n        } else {\n            logError(\n                `FIXParser (${this.protocol!.toUpperCase()}): -- Could not send message, no connection`,\n                encodedMessage.replace(/\\x01/g, '|'),\n            );\n        }\n    }\n\n    public isConnected(): boolean {\n        return this.connected;\n    }\n\n    public close(): void {\n        if (this.protocol === 'tcp') {\n            const socket: Socket = this.socket! as Socket;\n            if (socket) {\n                socket.destroy();\n                this.connected = false;\n            } else {\n                logError(`FIXParser (${this.protocol.toUpperCase()}): -- Could not close socket, connection not open`);\n            }\n        } else if (this.protocol === 'websocket') {\n            const socket: WebSocket = this.socket! as WebSocket;\n            if (socket) {\n                try {\n                    socket.close();\n                } catch (error) {\n                    logError(`FIXParser (${this.protocol.toUpperCase()}): -- Could not close socket,`, error);\n                }\n                this.connected = false;\n            } else {\n                logError(`FIXParser (${this.protocol.toUpperCase()}): -- Could not close socket, connection not open`);\n            }\n        } else if (this.protocol === 'ssl-tcp' || this.protocol === 'tls-tcp') {\n            const socket: TLSSocket = this.socket! as TLSSocket;\n            if (socket) {\n                socket.destroy();\n                this.connected = false;\n            } else {\n                logError(`FIXParser (${this.protocol.toUpperCase()}): -- Could not close socket, connection not open`);\n            }\n        }\n    }\n\n    public stopHeartbeat(): void {\n        clearInterval(this.heartBeatIntervalId!);\n    }\n\n    public startHeartbeat(heartBeatInterval: number = this.heartBeatInterval): void {\n        this.stopHeartbeat();\n        log(`FIXParser (${this.protocol!.toUpperCase()}): -- Heartbeat configured to ${heartBeatInterval} seconds`);\n        this.heartBeatInterval = heartBeatInterval;\n        this.heartBeatIntervalId = setInterval(() => {\n            const heartBeatMessage: Message = heartBeat(this);\n            this.send(heartBeatMessage);\n            const encodedMessage: string = heartBeatMessage.encode();\n            log(`FIXParser (${this.protocol!.toUpperCase()}): >> sent Heartbeat`, encodedMessage.replace(/\\x01/g, '|'));\n        }, this.heartBeatInterval * 1000);\n    }\n}\n\nexport { AllocPositionEffectEnum as AllocPositionEffect } from './fieldtypes/AllocPositionEffectEnum';\nexport { EncryptMethodEnum as EncryptMethod } from './fieldtypes/EncryptMethodEnum';\nexport { ExecTypeEnum as ExecType } from './fieldtypes/ExecTypeEnum';\nexport { FieldEnum as Fields } from './fieldtypes/FieldEnum';\nexport { HandlInstEnum as HandlInst } from './fieldtypes/HandlInstEnum';\nexport { MarketDepthEnum as MarketDepth } from './fieldtypes/MarketDepthEnum';\nexport { MDEntryTypeEnum as MDEntryType } from './fieldtypes/MDEntryTypeEnum';\nexport { MDUpdateTypeEnum as MDUpdateType } from './fieldtypes/MDUpdateTypeEnum';\nexport { MessageEnum as Messages } from './fieldtypes/MessageEnum';\nexport { OrderStatusEnum as OrderStatus } from './fieldtypes/OrderStatusEnum';\nexport { OrderTypesEnum as OrderTypes } from './fieldtypes/OrderTypesEnum';\nexport { SideEnum as Side } from './fieldtypes/SideEnum';\nexport { SubscriptionRequestTypeEnum as SubscriptionRequestType } from './fieldtypes/SubscriptionRequestTypeEnum';\nexport { TimeInForceEnum as TimeInForce } from './fieldtypes/TimeInForceEnum';\nexport { Protocol } from './FIXParserBase';\nexport { Options } from './FIXParserBase';\nexport { Constants };\nexport { Field };\nexport { Message };\nexport { FIXParser };\n", "export interface ISpecEnums {\n    Group?: string;\n    Description: string;\n    Elaboration?: string;\n    Value: string;\n    Sort: number;\n    Tag: number;\n    SymbolicName: string;\n    added?: string;\n    addedEP?: number;\n    updated?: string;\n    updatedEP?: number;\n    deprecated?: string;\n    deprecatedEP?: number;\n    issue?: string;\n}\n\nconst batch1: ISpecEnums[] = [\n    {\n        Group: '',\n        Description: 'Buy',\n        added: 'FIX.2.7',\n        Value: 'B',\n        Sort: 1,\n        Tag: 4,\n        SymbolicName: 'Buy',\n    },\n    {\n        Group: '',\n        Description: 'Sell',\n        added: 'FIX.2.7',\n        Value: 'S',\n        Sort: 2,\n        Tag: 4,\n        SymbolicName: 'Sell',\n    },\n    {\n        Group: '',\n        Description: 'Trade',\n        added: 'FIX.2.7',\n        Value: 'T',\n        Sort: 3,\n        Tag: 4,\n        SymbolicName: 'Trade',\n    },\n    {\n        Group: '',\n        Description: 'Cross',\n        added: 'FIX.2.7',\n        Value: 'X',\n        Sort: 4,\n        Tag: 4,\n        SymbolicName: 'Cross',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.2.7',\n        Value: 'N',\n        Sort: 1,\n        Tag: 5,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.2.7',\n        Value: 'C',\n        Sort: 2,\n        Tag: 5,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.2.7',\n        Value: 'R',\n        Sort: 3,\n        Tag: 5,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Per Unit (implying shares, par, currency, etc.)',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 1,\n        Tag: 13,\n        SymbolicName: 'PerUnit',\n    },\n    {\n        Group: '',\n        Description: 'Percent',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 2,\n        Tag: 13,\n        SymbolicName: 'Percent',\n    },\n    {\n        Group: '',\n        Description: 'Absolute (total monetary amount)',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 3,\n        Tag: 13,\n        SymbolicName: 'Absolute',\n    },\n    {\n        Group: '',\n        Description: 'Percentage waived - cash discount (for CIV buy orders)',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 13,\n        SymbolicName: 'PercentageWaivedCashDiscount',\n    },\n    {\n        Group: '',\n        Description: 'Percentage waived -= enhanced units (for CIV buy orders)',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 13,\n        SymbolicName: 'PercentageWaivedEnhancedUnits',\n    },\n    {\n        Group: '',\n        Description:\n            'Points per bond or contract (supply ContractMultiplier (231) in the <Instrument> component block if the object security is denominated in a size other than the industry default - 1000 par for bonds)',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 13,\n        SymbolicName: 'PointsPerBondOrContract',\n    },\n    {\n        Group: '',\n        Description: 'Stay on offer side',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 18,\n        SymbolicName: 'StayOnOfferSide',\n    },\n    {\n        Group: '',\n        Description: 'Not held',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 18,\n        SymbolicName: 'NotHeld',\n    },\n    {\n        Group: '',\n        Description: 'Work',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 18,\n        SymbolicName: 'Work',\n    },\n    {\n        Group: '',\n        Description: 'Go along',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 4,\n        Tag: 18,\n        SymbolicName: 'GoAlong',\n    },\n    {\n        Group: '',\n        Description: 'Over the day',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 5,\n        Tag: 18,\n        SymbolicName: 'OverTheDay',\n    },\n    {\n        Group: '',\n        Description: 'Held',\n        added: 'FIX.2.7',\n        Value: '5',\n        Sort: 6,\n        Tag: 18,\n        SymbolicName: 'Held',\n    },\n    {\n        Group: '',\n        Description: \"Participate don't initiate\",\n        added: 'FIX.2.7',\n        Value: '6',\n        Sort: 7,\n        Tag: 18,\n        SymbolicName: 'ParticipateDoNotInitiate',\n    },\n    {\n        Group: '',\n        Description: 'Strict scale',\n        added: 'FIX.2.7',\n        Value: '7',\n        Sort: 8,\n        Tag: 18,\n        SymbolicName: 'StrictScale',\n    },\n    {\n        Group: '',\n        Description: 'Try to scale',\n        added: 'FIX.2.7',\n        Value: '8',\n        Sort: 9,\n        Tag: 18,\n        SymbolicName: 'TryToScale',\n    },\n    {\n        Group: '',\n        Description: 'Stay on bid side',\n        added: 'FIX.2.7',\n        Value: '9',\n        Sort: 10,\n        Tag: 18,\n        SymbolicName: 'StayOnBidSide',\n    },\n    {\n        Group: '',\n        Description: 'No cross (cross is forbidden)',\n        added: 'FIX.2.7',\n        Value: 'A',\n        Sort: 11,\n        Tag: 18,\n        SymbolicName: 'NoCross',\n    },\n    {\n        Group: '',\n        Description: 'OK to cross',\n        added: 'FIX.2.7',\n        Value: 'B',\n        Sort: 12,\n        Tag: 18,\n        SymbolicName: 'OKToCross',\n    },\n    {\n        Group: '',\n        Description: 'Call first',\n        added: 'FIX.2.7',\n        Value: 'C',\n        Sort: 13,\n        Tag: 18,\n        SymbolicName: 'CallFirst',\n    },\n    {\n        Group: '',\n        Description:\n            'Percent of volume (indicates that the sender does not want to be all of the volume on the floor vs. a specific percentage)',\n        added: 'FIX.2.7',\n        Value: 'D',\n        Sort: 14,\n        Tag: 18,\n        SymbolicName: 'PercentOfVolume',\n    },\n    {\n        Group: '',\n        Description: 'Do not increase - DNI',\n        added: 'FIX.2.7',\n        Value: 'E',\n        Sort: 15,\n        Tag: 18,\n        SymbolicName: 'DoNotIncrease',\n    },\n    {\n        Group: '',\n        Description: 'Do not reduce - DNR',\n        added: 'FIX.2.7',\n        Value: 'F',\n        Sort: 16,\n        Tag: 18,\n        SymbolicName: 'DoNotReduce',\n    },\n    {\n        Group: '',\n        Description: 'All or none - AON',\n        added: 'FIX.2.7',\n        Value: 'G',\n        Sort: 17,\n        Tag: 18,\n        SymbolicName: 'AllOrNone',\n    },\n    {\n        Group: '',\n        Description: 'Reinstate on system failure (mutually exclusive with Q and l)',\n        added: 'FIX.4.3',\n        Value: 'H',\n        Sort: 18,\n        Tag: 18,\n        SymbolicName: 'ReinstateOnSystemFailure',\n    },\n    {\n        Group: '',\n        Description: 'Institutions only',\n        added: 'FIX.3.0',\n        Value: 'I',\n        Sort: 19,\n        Tag: 18,\n        SymbolicName: 'InstitutionsOnly',\n    },\n    {\n        Group: '',\n        Description: 'Reinstate on Trading Halt (mutually exclusive with K and m)',\n        added: 'FIX.4.3',\n        Value: 'J',\n        Sort: 20,\n        Tag: 18,\n        SymbolicName: 'ReinstateOnTradingHalt',\n    },\n    {\n        Group: '',\n        Description: 'Cancel on Trading Halt (mutually exclusive with J and m)',\n        added: 'FIX.4.3',\n        Value: 'K',\n        Sort: 21,\n        Tag: 18,\n        SymbolicName: 'CancelOnTradingHalt',\n    },\n    {\n        Group: '',\n        Description: 'Last peg (last sale)',\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        Value: 'L',\n        Sort: 22,\n        Tag: 18,\n        SymbolicName: 'LastPeg',\n    },\n    {\n        Group: '',\n        Description: 'Mid-price peg (midprice of inside quote)',\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        Value: 'M',\n        Sort: 23,\n        Tag: 18,\n        SymbolicName: 'MidPricePeg',\n    },\n    {\n        Group: '',\n        Description: 'Non-negotiable',\n        added: 'FIX.3.0',\n        Value: 'N',\n        Sort: 24,\n        Tag: 18,\n        SymbolicName: 'NonNegotiable',\n    },\n    {\n        Group: '',\n        Description: 'Opening peg',\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        Value: 'O',\n        Sort: 25,\n        Tag: 18,\n        SymbolicName: 'OpeningPeg',\n    },\n    {\n        Group: '',\n        Description: 'Market peg',\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        Value: 'P',\n        Sort: 26,\n        Tag: 18,\n        SymbolicName: 'MarketPeg',\n    },\n    {\n        Group: '',\n        Description: 'Cancel on system failure (mutually exclusive with H and l)',\n        added: 'FIX.4.3',\n        Value: 'Q',\n        Sort: 27,\n        Tag: 18,\n        SymbolicName: 'CancelOnSystemFailure',\n    },\n    {\n        Group: '',\n        Description: 'Primary peg (primary market - buy at bid/sell at offer)',\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        Value: 'R',\n        Sort: 28,\n        Tag: 18,\n        SymbolicName: 'PrimaryPeg',\n    },\n    {\n        Group: '',\n        Description: 'Suspend',\n        added: 'FIX.3.0',\n        Value: 'S',\n        Sort: 29,\n        Tag: 18,\n        SymbolicName: 'Suspend',\n    },\n    {\n        Group: '',\n        Description: 'Fixed Peg to Local best bid or offer at time of order',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        Value: 'T',\n        Sort: 30,\n        addedEP: 35,\n        Tag: 18,\n        SymbolicName: 'FixedPegToLocalBestBidOrOfferAtTimeOfOrder',\n    },\n    {\n        Group: '',\n        Description: 'Customer Display Instruction (Rule 11Ac1-1/4)',\n        added: 'FIX.4.1',\n        Value: 'U',\n        Sort: 31,\n        Tag: 18,\n        SymbolicName: 'CustomerDisplayInstruction',\n    },\n    {\n        Group: '',\n        Description: 'Netting (for Forex)',\n        added: 'FIX.4.1',\n        Value: 'V',\n        Sort: 32,\n        Tag: 18,\n        SymbolicName: 'Netting',\n    },\n    {\n        Group: '',\n        Description: 'Peg to VWAP',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        Value: 'W',\n        Sort: 33,\n        Tag: 18,\n        SymbolicName: 'PegToVWAP',\n    },\n    {\n        Group: '',\n        Description: 'Trade Along',\n        added: 'FIX.4.3',\n        Value: 'X',\n        Sort: 34,\n        Tag: 18,\n        SymbolicName: 'TradeAlong',\n    },\n    {\n        Group: '',\n        Description: 'Try To Stop',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 35,\n        Tag: 18,\n        SymbolicName: 'TryToStop',\n    },\n    {\n        Group: '',\n        Description: 'Cancel if not best',\n        added: 'FIX.4.4',\n        Value: 'Z',\n        Sort: 36,\n        Tag: 18,\n        SymbolicName: 'CancelIfNotBest',\n    },\n    {\n        Group: '',\n        Description: 'Trailing Stop Peg',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        Value: 'a',\n        Sort: 37,\n        Tag: 18,\n        SymbolicName: 'TrailingStopPeg',\n    },\n    {\n        Group: '',\n        Description: 'Strict Limit (No price improvement)',\n        added: 'FIX.4.4',\n        Value: 'b',\n        Sort: 38,\n        Tag: 18,\n        SymbolicName: 'StrictLimit',\n    },\n    {\n        Group: '',\n        Description: 'Ignore Price Validity Checks',\n        added: 'FIX.4.4',\n        Value: 'c',\n        Sort: 39,\n        Tag: 18,\n        SymbolicName: 'IgnorePriceValidityChecks',\n    },\n    {\n        Group: '',\n        Description: 'Peg to Limit Price',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        Value: 'd',\n        Sort: 40,\n        Tag: 18,\n        SymbolicName: 'PegToLimitPrice',\n    },\n    {\n        Group: '',\n        Description: 'Work to Target Strategy',\n        added: 'FIX.4.4',\n        Value: 'e',\n        Sort: 41,\n        Tag: 18,\n        SymbolicName: 'WorkToTargetStrategy',\n    },\n    {\n        Group: '',\n        Description: 'Intermarket Sweep',\n        added: 'FIX.4.4',\n        Value: 'f',\n        Sort: 42,\n        addedEP: 6,\n        Tag: 18,\n        SymbolicName: 'IntermarketSweep',\n    },\n    {\n        Group: '',\n        Description: 'External Routing Allowed',\n        added: 'FIX.4.4',\n        Value: 'g',\n        Sort: 43,\n        addedEP: 14,\n        Tag: 18,\n        SymbolicName: 'ExternalRoutingAllowed',\n    },\n    {\n        Group: '',\n        Description: 'External Routing Not Allowed',\n        added: 'FIX.4.4',\n        Value: 'h',\n        Sort: 44,\n        addedEP: 14,\n        Tag: 18,\n        SymbolicName: 'ExternalRoutingNotAllowed',\n    },\n    {\n        Group: '',\n        Description: 'Imbalance Only',\n        added: 'FIX.4.4',\n        Value: 'i',\n        Sort: 45,\n        addedEP: 22,\n        Tag: 18,\n        SymbolicName: 'ImbalanceOnly',\n    },\n    {\n        Group: '',\n        Description: 'Single execution requested for block trade',\n        added: 'FIX.4.4',\n        Value: 'j',\n        Sort: 46,\n        addedEP: 6,\n        Tag: 18,\n        SymbolicName: 'SingleExecutionRequestedForBlockTrade',\n    },\n    {\n        Group: '',\n        Description: 'Best Execution',\n        added: 'FIX.4.4',\n        Value: 'k',\n        Sort: 47,\n        addedEP: 35,\n        Tag: 18,\n        SymbolicName: 'BestExecution',\n    },\n    {\n        Group: '',\n        Description: 'Suspend on system failure (mutually exclusive with H and Q)',\n        added: 'FIX.5.0',\n        Value: 'l',\n        Sort: 48,\n        addedEP: 58,\n        Tag: 18,\n        SymbolicName: 'SuspendOnSystemFailure',\n    },\n    {\n        Group: '',\n        Description: 'Suspend on Trading Halt (mutually exclusive with J and K)',\n        added: 'FIX.5.0',\n        Value: 'm',\n        Sort: 49,\n        addedEP: 58,\n        Tag: 18,\n        SymbolicName: 'SuspendOnTradingHalt',\n    },\n    {\n        Group: '',\n        Description: 'Reinstate on connection loss (mutually exclusive with o and p)',\n        added: 'FIX.5.0',\n        Value: 'n',\n        Sort: 50,\n        addedEP: 58,\n        Tag: 18,\n        SymbolicName: 'ReinstateOnConnectionLoss',\n    },\n    {\n        Group: '',\n        Description: 'Cancel on connection loss (mutually exclusive with n and p)',\n        added: 'FIX.5.0',\n        Value: 'o',\n        Sort: 51,\n        addedEP: 58,\n        Tag: 18,\n        SymbolicName: 'CancelOnConnectionLoss',\n    },\n    {\n        Group: '',\n        Description: 'Suspend on connection loss (mutually exclusive with n and o)',\n        added: 'FIX.5.0',\n        Value: 'p',\n        Sort: 52,\n        addedEP: 58,\n        Tag: 18,\n        SymbolicName: 'SuspendOnConnectionLoss',\n    },\n    {\n        Group: '',\n        Description: 'Release from suspension (mutually exclusive with S)',\n        added: 'FIX.5.0',\n        Value: 'q',\n        Sort: 53,\n        addedEP: 58,\n        Tag: 18,\n        SymbolicName: 'ReleaseFromSuspension',\n    },\n    {\n        Group: '',\n        Description: 'Execute as delta neutral using volatility provided',\n        added: 'FIX.5.0',\n        Value: 'r',\n        Sort: 54,\n        addedEP: 59,\n        Tag: 18,\n        SymbolicName: 'ExecuteAsDeltaNeutral',\n    },\n    {\n        Group: '',\n        Description: 'Execute as duration neutral',\n        added: 'FIX.5.0',\n        Value: 's',\n        Sort: 55,\n        addedEP: 59,\n        Tag: 18,\n        SymbolicName: 'ExecuteAsDurationNeutral',\n    },\n    {\n        Group: '',\n        Description: 'Execute as FX neutral',\n        added: 'FIX.5.0',\n        Value: 't',\n        Sort: 56,\n        addedEP: 59,\n        Tag: 18,\n        SymbolicName: 'ExecuteAsFXNeutral',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 20,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 20,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Correct',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 20,\n        SymbolicName: 'Correct',\n    },\n    {\n        Group: '',\n        Description: 'Status',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 4,\n        Tag: 20,\n        SymbolicName: 'Status',\n    },\n    {\n        Group: '',\n        Description: 'Automated execution order, private, no Broker intervention',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 1,\n        Tag: 21,\n        SymbolicName: 'AutomatedExecutionNoIntervention',\n    },\n    {\n        Group: '',\n        Description: 'Automated execution order, public, Broker intervention OK',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 2,\n        Tag: 21,\n        SymbolicName: 'AutomatedExecutionInterventionOK',\n    },\n    {\n        Group: '',\n        Description: 'Manual order, best execution',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 3,\n        Tag: 21,\n        SymbolicName: 'ManualOrder',\n    },\n    {\n        Group: '',\n        Description: 'CUSIP',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 1,\n        Tag: 22,\n        SymbolicName: 'CUSIP',\n    },\n    {\n        Group: '',\n        Description: 'SEDOL',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 2,\n        Tag: 22,\n        SymbolicName: 'SEDOL',\n    },\n    {\n        Group: '',\n        Description: 'QUIK',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 3,\n        Tag: 22,\n        SymbolicName: 'QUIK',\n    },\n    {\n        Group: '',\n        Description: 'ISIN number',\n        added: 'FIX.3.0',\n        Value: '4',\n        Sort: 4,\n        Tag: 22,\n        SymbolicName: 'ISINNumber',\n    },\n    {\n        Group: '',\n        Description: 'RIC code',\n        added: 'FIX.3.0',\n        Value: '5',\n        Sort: 5,\n        Tag: 22,\n        SymbolicName: 'RICCode',\n    },\n    {\n        Group: '',\n        Description: 'ISO Currency Code',\n        added: 'FIX.4.1',\n        Value: '6',\n        Sort: 6,\n        Tag: 22,\n        SymbolicName: 'ISOCurrencyCode',\n    },\n    {\n        Group: '',\n        Description: 'ISO Country Code',\n        added: 'FIX.4.1',\n        Value: '7',\n        Sort: 7,\n        Tag: 22,\n        SymbolicName: 'ISOCountryCode',\n    },\n    {\n        Group: '',\n        Description: 'Exchange Symbol',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 8,\n        Tag: 22,\n        SymbolicName: 'ExchangeSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Consolidated Tape Association (CTA) Symbol (SIAC CTS/CQS line format)',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 9,\n        Tag: 22,\n        SymbolicName: 'ConsolidatedTapeAssociation',\n    },\n    {\n        Group: '',\n        Description: 'Bloomberg Symbol',\n        added: 'FIX.4.3',\n        Value: 'A',\n        Sort: 10,\n        Tag: 22,\n        SymbolicName: 'BloombergSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Wertpapier',\n        added: 'FIX.4.3',\n        Value: 'B',\n        Sort: 11,\n        Tag: 22,\n        SymbolicName: 'Wertpapier',\n    },\n    {\n        Group: '',\n        Description: 'Dutch',\n        added: 'FIX.4.3',\n        Value: 'C',\n        Sort: 12,\n        Tag: 22,\n        SymbolicName: 'Dutch',\n    },\n    {\n        Group: '',\n        Description: 'Valoren',\n        added: 'FIX.4.3',\n        Value: 'D',\n        Sort: 13,\n        Tag: 22,\n        SymbolicName: 'Valoren',\n    },\n    {\n        Group: '',\n        Description: 'Sicovam',\n        added: 'FIX.4.3',\n        Value: 'E',\n        Sort: 14,\n        Tag: 22,\n        SymbolicName: 'Sicovam',\n    },\n    {\n        Group: '',\n        Description: 'Belgian',\n        added: 'FIX.4.3',\n        Value: 'F',\n        Sort: 15,\n        Tag: 22,\n        SymbolicName: 'Belgian',\n    },\n    {\n        Group: '',\n        Description: '\"Common\" (Clearstream and Euroclear)',\n        added: 'FIX.4.3',\n        Value: 'G',\n        Sort: 16,\n        Tag: 22,\n        SymbolicName: 'Common',\n    },\n    {\n        Group: '',\n        Description: 'Clearing House / Clearing Organization',\n        added: 'FIX.4.4',\n        Value: 'H',\n        Sort: 17,\n        Tag: 22,\n        SymbolicName: 'ClearingHouse',\n    },\n    {\n        Group: '',\n        Description: 'ISDA/FpML Product Specification (XML in EncodedSecurityDesc)',\n        added: 'FIX.4.4',\n        Value: 'I',\n        Sort: 18,\n        Tag: 22,\n        SymbolicName: 'ISDAFpMLSpecification',\n    },\n    {\n        Group: '',\n        Description: 'Option Price Reporting Authority',\n        added: 'FIX.4.4',\n        Value: 'J',\n        Sort: 19,\n        Tag: 22,\n        SymbolicName: 'OptionPriceReportingAuthority',\n    },\n    {\n        Group: '',\n        Description: 'ISDA/FpML Product URL (URL in SecurityID)',\n        added: 'FIX.4.4',\n        Value: 'K',\n        Sort: 20,\n        addedEP: 15,\n        Tag: 22,\n        SymbolicName: 'ISDAFpMLURL',\n    },\n    {\n        Group: '',\n        Description: 'Letter of Credit',\n        added: 'FIX.4.4',\n        Value: 'L',\n        Sort: 21,\n        addedEP: 8,\n        Tag: 22,\n        SymbolicName: 'LetterOfCredit',\n    },\n    {\n        Group: '',\n        Description: 'Marketplace-assigned Identifier',\n        added: 'FIX.5.0',\n        Value: 'M',\n        Sort: 22,\n        addedEP: 58,\n        Tag: 22,\n        SymbolicName: 'MarketplaceAssignedIdentifier',\n    },\n    {\n        Group: '',\n        Description: 'High',\n        added: 'FIX.2.7',\n        Value: 'H',\n        Sort: 1,\n        Tag: 25,\n        SymbolicName: 'High',\n    },\n    {\n        Group: '',\n        Description: 'Low',\n        added: 'FIX.2.7',\n        Value: 'L',\n        Sort: 2,\n        Tag: 25,\n        SymbolicName: 'Low',\n    },\n    {\n        Group: '',\n        Description: 'Medium',\n        added: 'FIX.2.7',\n        Value: 'M',\n        Sort: 3,\n        Tag: 25,\n        SymbolicName: 'Medium',\n    },\n    {\n        Group: '',\n        Description: 'Small',\n        added: 'FIX.4.4',\n        Value: 'S',\n        Sort: 2,\n        addedEP: 25,\n        Tag: 27,\n        SymbolicName: 'Small',\n    },\n    {\n        Group: '',\n        Description: 'Medium',\n        added: 'FIX.4.4',\n        Value: 'M',\n        Sort: 3,\n        addedEP: 25,\n        Tag: 27,\n        SymbolicName: 'Medium',\n    },\n    {\n        Group: '',\n        Description: 'Large',\n        added: 'FIX.4.4',\n        Value: 'L',\n        Sort: 4,\n        addedEP: 25,\n        Tag: 27,\n        SymbolicName: 'Large',\n    },\n    {\n        Group: '',\n        Description: 'Undisclosed Quantity',\n        added: 'FIX.4.4',\n        Value: 'U',\n        Sort: 5,\n        addedEP: 25,\n        Tag: 27,\n        SymbolicName: 'UndisclosedQuantity',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.2.7',\n        Value: 'N',\n        Sort: 1,\n        Tag: 28,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.2.7',\n        Value: 'C',\n        Sort: 2,\n        Tag: 28,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.2.7',\n        Value: 'R',\n        Sort: 3,\n        Tag: 28,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Agent',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 1,\n        Tag: 29,\n        SymbolicName: 'Agent',\n    },\n    {\n        Group: '',\n        Description: 'Cross as agent',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 2,\n        Tag: 29,\n        SymbolicName: 'CrossAsAgent',\n    },\n    {\n        Group: '',\n        Description: 'Cross as principal',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 3,\n        Tag: 29,\n        SymbolicName: 'CrossAsPrincipal',\n    },\n    {\n        Group: '',\n        Description: 'Principal',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 4,\n        Tag: 29,\n        SymbolicName: 'Principal',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 39,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Partially filled',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 39,\n        SymbolicName: 'PartiallyFilled',\n    },\n    {\n        Group: '',\n        Description: 'Filled',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 39,\n        SymbolicName: 'Filled',\n    },\n    {\n        Group: '',\n        Description: 'Done for day',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 4,\n        Tag: 39,\n        SymbolicName: 'DoneForDay',\n    },\n    {\n        Group: '',\n        Description: 'Canceled',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 5,\n        Tag: 39,\n        SymbolicName: 'Canceled',\n    },\n    {\n        Group: '',\n        Description: 'Replaced (No longer used)',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.4.3',\n        Value: '5',\n        Sort: 6,\n        addedEP: 35,\n        Tag: 39,\n        SymbolicName: 'Replaced',\n    },\n    {\n        Group: '',\n        Description: 'Pending Cancel (i.e. result of Order Cancel Request)',\n        added: 'FIX.2.7',\n        Value: '6',\n        Sort: 7,\n        Tag: 39,\n        SymbolicName: 'PendingCancel',\n    },\n    {\n        Group: '',\n        Description: 'Stopped',\n        added: 'FIX.2.7',\n        Value: '7',\n        Sort: 8,\n        Tag: 39,\n        SymbolicName: 'Stopped',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.2.7',\n        Value: '8',\n        Sort: 9,\n        Tag: 39,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Suspended',\n        added: 'FIX.3.0',\n        Value: '9',\n        Sort: 10,\n        Tag: 39,\n        SymbolicName: 'Suspended',\n    },\n    {\n        Group: '',\n        Description: 'Pending New',\n        added: 'FIX.3.0',\n        Value: 'A',\n        Sort: 11,\n        Tag: 39,\n        SymbolicName: 'PendingNew',\n    },\n    {\n        Group: '',\n        Description: 'Calculated',\n        added: 'FIX.4.0',\n        Value: 'B',\n        Sort: 12,\n        Tag: 39,\n        SymbolicName: 'Calculated',\n    },\n    {\n        Group: '',\n        Description: 'Expired',\n        added: 'FIX.4.0',\n        Value: 'C',\n        Sort: 13,\n        Tag: 39,\n        SymbolicName: 'Expired',\n    },\n    {\n        Group: '',\n        Description: 'Accepted for Bidding',\n        added: 'FIX.4.2',\n        Value: 'D',\n        Sort: 14,\n        Tag: 39,\n        SymbolicName: 'AcceptedForBidding',\n    },\n    {\n        Group: '',\n        Description: 'Pending Replace (i.e. result of Order Cancel/Replace Request)',\n        added: 'FIX.4.2',\n        Value: 'E',\n        Sort: 15,\n        Tag: 39,\n        SymbolicName: 'PendingReplace',\n    },\n    {\n        Group: '',\n        Description: 'Market',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 1,\n        Tag: 40,\n        SymbolicName: 'Market',\n    },\n    {\n        Group: '',\n        Description: 'Limit',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 2,\n        Tag: 40,\n        SymbolicName: 'Limit',\n    },\n    {\n        Group: '',\n        Description: 'Stop / Stop Loss',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 3,\n        Tag: 40,\n        SymbolicName: 'Stop',\n    },\n    {\n        Group: '',\n        Description: 'Stop Limit',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 4,\n        Tag: 40,\n        SymbolicName: 'StopLimit',\n    },\n    {\n        Group: '',\n        Description: 'Market On Close (No longer used)',\n        added: 'FIX.2.7',\n        deprecated: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 40,\n        SymbolicName: 'MarketOnClose',\n    },\n    {\n        Group: '',\n        Description: 'With Or Without',\n        added: 'FIX.2.7',\n        Value: '6',\n        Sort: 6,\n        Tag: 40,\n        SymbolicName: 'WithOrWithout',\n    },\n    {\n        Group: '',\n        Description: 'Limit Or Better',\n        added: 'FIX.2.7',\n        deprecated: 'FIX.4.4',\n        Value: '7',\n        Sort: 7,\n        Tag: 40,\n        SymbolicName: 'LimitOrBetter',\n    },\n    {\n        Group: '',\n        Description: 'Limit With Or Without',\n        added: 'FIX.2.7',\n        Value: '8',\n        Sort: 8,\n        Tag: 40,\n        SymbolicName: 'LimitWithOrWithout',\n    },\n    {\n        Group: '',\n        Description: 'On Basis',\n        added: 'FIX.2.7',\n        Value: '9',\n        Sort: 9,\n        Tag: 40,\n        SymbolicName: 'OnBasis',\n    },\n    {\n        Group: '',\n        Description: 'On Close (No longer used)',\n        added: 'FIX.2.7',\n        deprecated: 'FIX.4.3',\n        Value: 'A',\n        Sort: 10,\n        Tag: 40,\n        SymbolicName: 'OnClose',\n    },\n    {\n        Group: '',\n        Description: 'Limit On Close (No longer used)',\n        added: 'FIX.2.7',\n        deprecated: 'FIX.4.3',\n        Value: 'B',\n        Sort: 11,\n        Tag: 40,\n        SymbolicName: 'LimitOnClose',\n    },\n    {\n        Group: '',\n        Description: 'Forex Market (No longer used)',\n        added: 'FIX.4.0',\n        deprecated: 'FIX.4.3',\n        Value: 'C',\n        Sort: 12,\n        Tag: 40,\n        SymbolicName: 'ForexMarket',\n    },\n    {\n        Group: '',\n        Description: 'Previously Quoted',\n        added: 'FIX.4.0',\n        Value: 'D',\n        Sort: 13,\n        Tag: 40,\n        SymbolicName: 'PreviouslyQuoted',\n    },\n    {\n        Group: '',\n        Description: 'Previously Indicated',\n        added: 'FIX.4.0',\n        Value: 'E',\n        Sort: 14,\n        Tag: 40,\n        SymbolicName: 'PreviouslyIndicated',\n    },\n    {\n        Group: '',\n        Description: 'Forex Limit (No longer used)',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.4.3',\n        Value: 'F',\n        Sort: 15,\n        Tag: 40,\n        SymbolicName: 'ForexLimit',\n    },\n    {\n        Group: '',\n        Description: 'Forex Swap',\n        added: 'FIX.4.1',\n        Value: 'G',\n        Sort: 16,\n        Tag: 40,\n        SymbolicName: 'ForexSwap',\n    },\n    {\n        Group: '',\n        Description: 'Forex Previously Quoted (No longer used)',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.4.3',\n        Value: 'H',\n        Sort: 17,\n        Tag: 40,\n        SymbolicName: 'ForexPreviouslyQuoted',\n    },\n    {\n        Group: '',\n        Description: 'Funari (Limit day order with unexecuted portion handles as Market On Close. E.g. Japan)',\n        added: 'FIX.4.2',\n        Value: 'I',\n        Sort: 18,\n        Tag: 40,\n        SymbolicName: 'Funari',\n    },\n    {\n        Group: '',\n        Description: 'Market If Touched (MIT)',\n        added: 'FIX.4.3',\n        Value: 'J',\n        Sort: 19,\n        Tag: 40,\n        SymbolicName: 'MarketIfTouched',\n    },\n    {\n        Group: '',\n        Description:\n            'Market With Left Over as Limit (market order with unexecuted quantity becoming limit order at last price)',\n        added: 'FIX.4.3',\n        Value: 'K',\n        Sort: 20,\n        Tag: 40,\n        SymbolicName: 'MarketWithLeftOverAsLimit',\n    },\n    {\n        Group: '',\n        Description: 'Previous Fund Valuation Point (Historic pricing; for CIV)',\n        added: 'FIX.4.3',\n        Value: 'L',\n        Sort: 21,\n        Tag: 40,\n        SymbolicName: 'PreviousFundValuationPoint',\n    },\n    {\n        Group: '',\n        Description: 'Next Fund Valuation Point (Forward pricing; for CIV)',\n        added: 'FIX.4.3',\n        Value: 'M',\n        Sort: 22,\n        Tag: 40,\n        SymbolicName: 'NextFundValuationPoint',\n    },\n    {\n        Group: '',\n        Description: 'Pegged',\n        added: 'FIX.3.0',\n        Value: 'P',\n        Sort: 23,\n        Tag: 40,\n        SymbolicName: 'Pegged',\n    },\n    {\n        Group: '',\n        Description: 'Counter-order selection',\n        added: 'FIX.4.4',\n        Value: 'Q',\n        Sort: 24,\n        addedEP: 22,\n        Tag: 40,\n        SymbolicName: 'CounterOrderSelection',\n    },\n    {\n        Group: '',\n        Description: 'Original transmission',\n        added: 'FIX.2.7',\n        Value: 'N',\n        Sort: 1,\n        Tag: 43,\n        SymbolicName: 'OriginalTransmission',\n    },\n    {\n        Group: '',\n        Description: 'Possible duplicate',\n        added: 'FIX.2.7',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 43,\n        SymbolicName: 'PossibleDuplicate',\n    },\n    {\n        Group: '',\n        Description: 'Agency single order',\n        added: 'FIX.2.7',\n        Value: 'A',\n        Sort: 1,\n        Tag: 47,\n        SymbolicName: 'AgencySingleOrder',\n    },\n    {\n        Group: '',\n        Description: 'Short exempt transaction (refer to A type)',\n        added: 'FIX.4.1',\n        Value: 'B',\n        Sort: 2,\n        Tag: 47,\n        SymbolicName: 'ShortExemptTransactionAType',\n    },\n    {\n        Group: '',\n        Description: 'Proprietary, Non-Algorithmic Program Trade (non-index arbitrage)',\n        added: 'FIX.2.7',\n        Value: 'C',\n        Sort: 3,\n        Tag: 47,\n        SymbolicName: 'ProprietaryNonAlgo',\n    },\n    {\n        Group: '',\n        Description: 'Program order, index arb, for Member firm/org',\n        added: 'FIX.2.7',\n        Value: 'D',\n        Sort: 4,\n        Tag: 47,\n        SymbolicName: 'ProgramOrderMember',\n    },\n    {\n        Group: '',\n        Description:\n            'Short Exempt Transaction for Principal (was incorrectly identified in the FIX spec as \"Registered Equity Market Maker trades\")',\n        added: 'FIX.4.1',\n        Value: 'E',\n        Sort: 5,\n        Tag: 47,\n        SymbolicName: 'ShortExemptTransactionForPrincipal',\n    },\n    {\n        Group: '',\n        Description: 'Short exempt transaction (refer to W type)',\n        added: 'FIX.4.1',\n        Value: 'F',\n        Sort: 6,\n        Tag: 47,\n        SymbolicName: 'ShortExemptTransactionWType',\n    },\n    {\n        Group: '',\n        Description: 'Short exempt transaction (refer to I type)',\n        added: 'FIX.4.1',\n        Value: 'H',\n        Sort: 7,\n        Tag: 47,\n        SymbolicName: 'ShortExemptTransactionIType',\n    },\n    {\n        Group: '',\n        Description: 'Individual Investor, single order',\n        added: 'FIX.2.7',\n        Value: 'I',\n        Sort: 8,\n        Tag: 47,\n        SymbolicName: 'IndividualInvestor',\n    },\n    {\n        Group: '',\n        Description: 'Proprietary, Algorithmic Program Trading (non-index arbitrage)',\n        added: 'FIX.2.7',\n        Value: 'J',\n        Sort: 9,\n        Tag: 47,\n        SymbolicName: 'ProprietaryAlgo',\n    },\n    {\n        Group: '',\n        Description: 'Agency, Algorithmic Program Trading (non-index arbitrage)',\n        added: 'FIX.2.7',\n        Value: 'K',\n        Sort: 10,\n        Tag: 47,\n        SymbolicName: 'AgencyAlgo',\n    },\n    {\n        Group: '',\n        Description:\n            'Short exempt transaction for member competing market-maker affliated with the firm clearing the trade (refer to P and O types)',\n        added: 'FIX.4.1',\n        Value: 'L',\n        Sort: 11,\n        Tag: 47,\n        SymbolicName: 'ShortExemptTransactionMemberAffliated',\n    },\n    {\n        Group: '',\n        Description: 'Program Order, index arb, for other member',\n        added: 'FIX.2.7',\n        Value: 'M',\n        Sort: 12,\n        Tag: 47,\n        SymbolicName: 'ProgramOrderOtherMember',\n    },\n    {\n        Group: '',\n        Description: 'Agent for other Member, Non-Algorithmic Program Trade (non-index arbitrage)',\n        added: 'FIX.2.7',\n        Value: 'N',\n        Sort: 13,\n        Tag: 47,\n        SymbolicName: 'AgentForOtherMember',\n    },\n    {\n        Group: '',\n        Description:\n            'Proprietary transactions for competing market-maker that is affiliated with the clearing member (was incorrectly identified in the FIX spec as \"Competing dealer trades\")',\n        added: 'FIX.4.1',\n        Value: 'O',\n        Sort: 14,\n        Tag: 47,\n        SymbolicName: 'ProprietaryTransactionAffiliated',\n    },\n    {\n        Group: '',\n        Description: 'Principal',\n        added: 'FIX.4.1',\n        Value: 'P',\n        Sort: 15,\n        Tag: 47,\n        SymbolicName: 'Principal',\n    },\n    {\n        Group: '',\n        Description:\n            'Transactions for the account of a non-member compting market-maker (was incorrectly identified in the FIX spec as \"Competing dealer trades\")',\n        added: 'FIX.4.1',\n        Value: 'R',\n        Sort: 16,\n        Tag: 47,\n        SymbolicName: 'TransactionNonMember',\n    },\n    {\n        Group: '',\n        Description: 'Specialist trades',\n        added: 'FIX.4.1',\n        Value: 'S',\n        Sort: 17,\n        Tag: 47,\n        SymbolicName: 'SpecialistTrades',\n    },\n    {\n        Group: '',\n        Description:\n            'Transactions for the account of an unaffiliated member\\'s competing market-maker (was incorrectly identified in the FIX spec as \"Competing dealer trades\")',\n        added: 'FIX.4.1',\n        Value: 'T',\n        Sort: 18,\n        Tag: 47,\n        SymbolicName: 'TransactionUnaffiliatedMember',\n    },\n    {\n        Group: '',\n        Description: 'Agency, Index Arbitrage (includes Individual, Index Arbitrage trades)',\n        added: 'FIX.2.7',\n        Value: 'U',\n        Sort: 19,\n        Tag: 47,\n        SymbolicName: 'AgencyIndexArb',\n    },\n    {\n        Group: '',\n        Description: 'All other orders as agent for other member',\n        added: 'FIX.2.7',\n        Value: 'W',\n        Sort: 20,\n        Tag: 47,\n        SymbolicName: 'AllOtherOrdersAsAgentForOtherMember',\n    },\n    {\n        Group: '',\n        Description:\n            'Short exempt transaction for member competing market-maker not affiliated with the firm clearing the trade (refer to W and T types)',\n        added: 'FIX.4.1',\n        Value: 'X',\n        Sort: 21,\n        Tag: 47,\n        SymbolicName: 'ShortExemptTransactionMemberNotAffliated',\n    },\n    {\n        Group: '',\n        Description: 'Agency, Non-Algorithmic Program Trade (non-index arbitrage)',\n        added: 'FIX.2.7',\n        Value: 'Y',\n        Sort: 22,\n        Tag: 47,\n        SymbolicName: 'AgencyNonAlgo',\n    },\n    {\n        Group: '',\n        Description: 'Short exempt transaction for non-member competing market-maker (refer to A and R types)',\n        added: 'FIX.4.1',\n        Value: 'Z',\n        Sort: 23,\n        Tag: 47,\n        SymbolicName: 'ShortExemptTransactionNonMember',\n    },\n    {\n        Group: '',\n        Description: 'Buy',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 1,\n        Tag: 54,\n        SymbolicName: 'Buy',\n    },\n    {\n        Group: '',\n        Description: 'Sell',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 2,\n        Tag: 54,\n        SymbolicName: 'Sell',\n    },\n    {\n        Group: '',\n        Description: 'Buy minus',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 3,\n        Tag: 54,\n        SymbolicName: 'BuyMinus',\n    },\n    {\n        Group: '',\n        Description: 'Sell plus',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 4,\n        Tag: 54,\n        SymbolicName: 'SellPlus',\n    },\n    {\n        Group: '',\n        Description: 'Sell short',\n        added: 'FIX.2.7',\n        Value: '5',\n        Sort: 5,\n        Tag: 54,\n        SymbolicName: 'SellShort',\n    },\n    {\n        Group: '',\n        Description: 'Sell short exempt',\n        added: 'FIX.2.7',\n        Value: '6',\n        Sort: 6,\n        Tag: 54,\n        SymbolicName: 'SellShortExempt',\n    },\n    {\n        Group: '',\n        Description: 'Undisclosed (valid for IOI and List Order messages only)',\n        added: 'FIX.4.1',\n        Value: '7',\n        Sort: 7,\n        Tag: 54,\n        SymbolicName: 'Undisclosed',\n    },\n    {\n        Group: '',\n        Description: 'Cross (orders where counterparty is an exchange, valid for all messages except IOIs)',\n        added: 'FIX.4.1',\n        Value: '8',\n        Sort: 8,\n        Tag: 54,\n        SymbolicName: 'Cross',\n    },\n    {\n        Group: '',\n        Description: 'Cross short',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 9,\n        Tag: 54,\n        SymbolicName: 'CrossShort',\n    },\n    {\n        Group: '',\n        Description: 'Cross short exempt',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        Value: 'A',\n        Sort: 10,\n        Tag: 54,\n        SymbolicName: 'CrossShortExempt',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: '\"As Defined\" (for use with multileg instruments)',\n        added: 'FIX.4.3',\n        Value: 'B',\n        Sort: 11,\n        Tag: 54,\n        SymbolicName: 'AsDefined',\n    },\n    {\n        Group: '',\n        Description: '\"Opposite\" (for use with multileg instruments)',\n        added: 'FIX.4.3',\n        Value: 'C',\n        Sort: 12,\n        Tag: 54,\n        SymbolicName: 'Opposite',\n    },\n    {\n        Group: '',\n        Description: 'Subscribe (e.g. CIV)',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 13,\n        Tag: 54,\n        SymbolicName: 'Subscribe',\n    },\n    {\n        Group: '',\n        Description: 'Redeem (e.g. CIV)',\n        added: 'FIX.4.4',\n        Value: 'E',\n        Sort: 14,\n        Tag: 54,\n        SymbolicName: 'Redeem',\n    },\n    {\n        Group: '',\n        Description: 'Lend (FINANCING - identifies direction of collateral)',\n        added: 'FIX.4.4',\n        Value: 'F',\n        Sort: 15,\n        Tag: 54,\n        SymbolicName: 'Lend',\n    },\n    {\n        Group: '',\n        Description: 'Borrow (FINANCING - identifies direction of collateral)',\n        added: 'FIX.4.4',\n        Value: 'G',\n        Sort: 16,\n        Tag: 54,\n        SymbolicName: 'Borrow',\n    },\n    {\n        Group: '',\n        Description: 'Day (or session)',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 59,\n        SymbolicName: 'Day',\n    },\n    {\n        Group: '',\n        Description: 'Good Till Cancel (GTC)',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 59,\n        SymbolicName: 'GoodTillCancel',\n    },\n    {\n        Group: '',\n        Description: 'At the Opening (OPG)',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 59,\n        SymbolicName: 'AtTheOpening',\n    },\n    {\n        Group: '',\n        Description: 'Immediate Or Cancel (IOC)',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 4,\n        Tag: 59,\n        SymbolicName: 'ImmediateOrCancel',\n    },\n    {\n        Group: '',\n        Description: 'Fill Or Kill (FOK)',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 5,\n        Tag: 59,\n        SymbolicName: 'FillOrKill',\n    },\n    {\n        Group: '',\n        Description: 'Good Till Crossing (GTX)',\n        added: 'FIX.2.7',\n        Value: '5',\n        Sort: 6,\n        Tag: 59,\n        SymbolicName: 'GoodTillCrossing',\n    },\n    {\n        Group: '',\n        Description: 'Good Till Date (GTD)',\n        added: 'FIX.4.0',\n        Value: '6',\n        Sort: 7,\n        Tag: 59,\n        SymbolicName: 'GoodTillDate',\n    },\n    {\n        Group: '',\n        Description: 'At the Close',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 8,\n        Tag: 59,\n        SymbolicName: 'AtTheClose',\n    },\n    {\n        Group: '',\n        Description: 'Good Through Crossing',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 9,\n        addedEP: 61,\n        Tag: 59,\n        SymbolicName: 'GoodThroughCrossing',\n    },\n    {\n        Group: '',\n        Description: 'At Crossing',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 10,\n        addedEP: 61,\n        Tag: 59,\n        SymbolicName: 'AtCrossing',\n    },\n    {\n        Group: '',\n        Description: 'Normal',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 61,\n        SymbolicName: 'Normal',\n    },\n    {\n        Group: '',\n        Description: 'Flash',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 61,\n        SymbolicName: 'Flash',\n    },\n    {\n        Group: '',\n        Description: 'Background',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 61,\n        SymbolicName: 'Background',\n    },\n    {\n        Group: '',\n        Description: 'Regular / FX Spot settlement (T+1 or T+2 depending on currency)',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 63,\n        SymbolicName: 'Regular',\n    },\n    {\n        Group: '',\n        Description: 'Cash (TOD / T+0)',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 63,\n        SymbolicName: 'Cash',\n    },\n    {\n        Group: '',\n        Description: 'Next Day (TOM / T+1)',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 63,\n        SymbolicName: 'NextDay',\n    },\n    {\n        Group: '',\n        Description: 'T+2',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 4,\n        Tag: 63,\n        SymbolicName: 'TPlus2',\n    },\n    {\n        Group: '',\n        Description: 'T+3',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 5,\n        Tag: 63,\n        SymbolicName: 'TPlus3',\n    },\n    {\n        Group: '',\n        Description: 'T+4',\n        added: 'FIX.2.7',\n        Value: '5',\n        Sort: 6,\n        Tag: 63,\n        SymbolicName: 'TPlus4',\n    },\n    {\n        Group: '',\n        Description: 'Future',\n        added: 'FIX.2.7',\n        Value: '6',\n        Sort: 7,\n        Tag: 63,\n        SymbolicName: 'Future',\n    },\n    {\n        Group: '',\n        Description: 'When And If Issued',\n        added: 'FIX.2.7',\n        Value: '7',\n        Sort: 8,\n        Tag: 63,\n        SymbolicName: 'WhenAndIfIssued',\n    },\n    {\n        Group: '',\n        Description: 'Sellers Option',\n        added: 'FIX.2.7',\n        Value: '8',\n        Sort: 9,\n        Tag: 63,\n        SymbolicName: 'SellersOption',\n    },\n    {\n        Group: '',\n        Description: 'T+5',\n        added: 'FIX.3.0',\n        Value: '9',\n        Sort: 10,\n        Tag: 63,\n        SymbolicName: 'TPlus5',\n    },\n    {\n        Group: '',\n        Description: 'Broken date - for FX expressing non-standard tenor, SettlDate (64) must be specified',\n        added: 'FIX.4.4',\n        Value: 'B',\n        Sort: 12,\n        addedEP: 25,\n        Tag: 63,\n        SymbolicName: 'BrokenDate',\n    },\n    {\n        Group: '',\n        Description: 'FX Spot Next settlement (Spot+1, aka next day)',\n        added: 'FIX.4.4',\n        Value: 'C',\n        Sort: 99,\n        addedEP: 21,\n        Tag: 63,\n        SymbolicName: 'FXSpotNextSettlement',\n    },\n    {\n        Group: 'For Fixed Income',\n        Description: 'EUCP with lump-sum interest rather than discount price',\n        added: 'FIX.4.4',\n        Value: 'CD',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 65,\n        SymbolicName: 'EUCPWithLumpSumInterest',\n    },\n    {\n        Group: 'For Fixed Income',\n        Description: '\"When Issued\" for a security to be reissued under an old CUSIP or ISIN',\n        added: 'FIX.4.4',\n        Value: 'WI',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 65,\n        SymbolicName: 'WhenIssued',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 71,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 71,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 71,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Preliminary (without MiscFees and NetMoney) (Removed/Replaced)',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.4.2',\n        Value: '3',\n        Sort: 4,\n        Tag: 71,\n        SymbolicName: 'Preliminary',\n    },\n    {\n        Group: '',\n        Description: 'Calculated (includes MiscFees and NetMoney) (Removed/Replaced)',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.4.2',\n        Value: '4',\n        Sort: 5,\n        Tag: 71,\n        SymbolicName: 'Calculated',\n    },\n    {\n        Group: '',\n        Description:\n            'Calculated without Preliminary (sent unsolicited by broker, includes MiscFees and NetMoney) (Removed/Replaced)',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.2',\n        Value: '5',\n        Sort: 6,\n        Tag: 71,\n        SymbolicName: 'CalculatedWithoutPreliminary',\n    },\n    {\n        Group: '',\n        Description: 'Reversal',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 7,\n        addedEP: 5,\n        Tag: 71,\n        SymbolicName: 'Reversal',\n    },\n    {\n        Group: '',\n        Description: 'Close',\n        added: 'FIX.4.1',\n        Value: 'C',\n        Sort: 1,\n        Tag: 77,\n        SymbolicName: 'Close',\n    },\n    {\n        Group: '',\n        Description: 'FIFO',\n        added: 'FIX.4.3',\n        Value: 'F',\n        Sort: 2,\n        Tag: 77,\n        SymbolicName: 'FIFO',\n    },\n    {\n        Group: '',\n        Description: 'Open',\n        added: 'FIX.4.1',\n        Value: 'O',\n        Sort: 3,\n        Tag: 77,\n        SymbolicName: 'Open',\n    },\n    {\n        Group: '',\n        Description: 'Rolled',\n        added: 'FIX.4.3',\n        Value: 'R',\n        Sort: 4,\n        Tag: 77,\n        SymbolicName: 'Rolled',\n    },\n    {\n        Group: '',\n        Description: 'Close but notify on open',\n        added: 'FIX.5.0',\n        Value: 'N',\n        Sort: 5,\n        addedEP: 61,\n        Tag: 77,\n        SymbolicName: 'CloseButNotifyOnOpen',\n    },\n    {\n        Group: '',\n        Description: 'Default',\n        added: 'FIX.5.0',\n        Value: 'D',\n        Sort: 6,\n        addedEP: 61,\n        Tag: 77,\n        SymbolicName: 'Default',\n    },\n    {\n        Group: '',\n        Description: 'Regular',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 81,\n        SymbolicName: 'Regular',\n    },\n    {\n        Group: '',\n        Description: 'Soft Dollar',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 81,\n        SymbolicName: 'SoftDollar',\n    },\n    {\n        Group: '',\n        Description: 'Step-In',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 81,\n        SymbolicName: 'StepIn',\n    },\n    {\n        Group: '',\n        Description: 'Step-Out',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 4,\n        Tag: 81,\n        SymbolicName: 'StepOut',\n    },\n    {\n        Group: '',\n        Description: 'Soft-dollar Step-In',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 5,\n        Tag: 81,\n        SymbolicName: 'SoftDollarStepIn',\n    },\n    {\n        Group: '',\n        Description: 'Soft-dollar Step-Out',\n        added: 'FIX.2.7',\n        Value: '5',\n        Sort: 6,\n        Tag: 81,\n        SymbolicName: 'SoftDollarStepOut',\n    },\n    {\n        Group: '',\n        Description: 'Plan Sponsor',\n        added: 'FIX.4.0',\n        Value: '6',\n        Sort: 7,\n        Tag: 81,\n        SymbolicName: 'PlanSponsor',\n    },\n    {\n        Group: '',\n        Description: 'accepted (successfully processed)',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 87,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'block level reject',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 87,\n        SymbolicName: 'BlockLevelReject',\n    },\n    {\n        Group: '',\n        Description: 'account level reject',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 87,\n        SymbolicName: 'AccountLevelReject',\n    },\n    {\n        Group: '',\n        Description: 'received (received, not yet processed)',\n        added: 'FIX.4.0',\n        Value: '3',\n        Sort: 4,\n        Tag: 87,\n        SymbolicName: 'Received',\n    },\n    {\n        Group: '',\n        Description: 'incomplete',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 87,\n        SymbolicName: 'Incomplete',\n    },\n    {\n        Group: '',\n        Description: 'rejected by intermediary',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 87,\n        SymbolicName: 'RejectedByIntermediary',\n    },\n    {\n        Group: '',\n        Description: 'allocation pending',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 7,\n        addedEP: 5,\n        Tag: 87,\n        SymbolicName: 'AllocationPending',\n    },\n    {\n        Group: '',\n        Description: 'reversed',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 8,\n        addedEP: 5,\n        Tag: 87,\n        SymbolicName: 'Reversed',\n    },\n    {\n        Group: '',\n        Description: 'Unknown account(s)',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 88,\n        SymbolicName: 'UnknownAccount',\n    },\n    {\n        Group: '',\n        Description: 'Incorrect quantity',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 88,\n        SymbolicName: 'IncorrectQuantity',\n    },\n    {\n        Group: '',\n        Description: 'Incorrect averageg price',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 88,\n        SymbolicName: 'IncorrectAveragegPrice',\n    },\n    {\n        Group: '',\n        Description: 'Unknown executing broker mnemonic',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 4,\n        Tag: 88,\n        SymbolicName: 'UnknownExecutingBrokerMnemonic',\n    },\n    {\n        Group: '',\n        Description: 'Commission difference',\n        added: 'FIX.2.7',\n        Value: '4',\n        Sort: 5,\n        Tag: 88,\n        SymbolicName: 'CommissionDifference',\n    },\n    {\n        Group: '',\n        Description: 'Unknown OrderID (37)',\n        added: 'FIX.2.7',\n        Value: '5',\n        Sort: 6,\n        Tag: 88,\n        SymbolicName: 'UnknownOrderID',\n    },\n    {\n        Group: '',\n        Description: 'Unknown ListID (66)',\n        added: 'FIX.2.7',\n        Value: '6',\n        Sort: 7,\n        Tag: 88,\n        SymbolicName: 'UnknownListID',\n    },\n    {\n        Group: '',\n        Description: 'Other (further in Text (58))',\n        added: 'FIX.2.7',\n        Value: '7',\n        Sort: 8,\n        Tag: 88,\n        SymbolicName: 'OtherSeeText',\n    },\n    {\n        Group: '',\n        Description: 'Incorrect allocated quantity',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 9,\n        Tag: 88,\n        SymbolicName: 'IncorrectAllocatedQuantity',\n    },\n    {\n        Group: '',\n        Description: 'Calculation difference',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 10,\n        Tag: 88,\n        SymbolicName: 'CalculationDifference',\n    },\n    {\n        Group: '',\n        Description: 'Unknown or stale ExecID',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 11,\n        Tag: 88,\n        SymbolicName: 'UnknownOrStaleExecID',\n    },\n    {\n        Group: '',\n        Description: 'Mismatched data',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 12,\n        Tag: 88,\n        SymbolicName: 'MismatchedData',\n    },\n    {\n        Group: '',\n        Description: 'Unknown ClOrdID',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 13,\n        Tag: 88,\n        SymbolicName: 'UnknownClOrdID',\n    },\n    {\n        Group: '',\n        Description: 'Warehouse request rejected',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 14,\n        Tag: 88,\n        SymbolicName: 'WarehouseRequestRejected',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 94,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Reply',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 94,\n        SymbolicName: 'Reply',\n    },\n    {\n        Group: '',\n        Description: 'Admin Reply',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 94,\n        SymbolicName: 'AdminReply',\n    },\n    {\n        Group: '',\n        Description: 'Original Transmission',\n        added: 'FIX.4.1',\n        Value: 'N',\n        Sort: 1,\n        Tag: 97,\n        SymbolicName: 'OriginalTransmission',\n    },\n    {\n        Group: '',\n        Description: 'Possible Resend',\n        added: 'FIX.4.1',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 97,\n        SymbolicName: 'PossibleResend',\n    },\n    {\n        Group: '',\n        Description: 'None / Other',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 98,\n        SymbolicName: 'None',\n    },\n    {\n        Group: '',\n        Description: 'PKCS (Proprietary)',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 98,\n        SymbolicName: 'PKCS',\n    },\n    {\n        Group: '',\n        Description: 'DES (ECB Mode)',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 3,\n        Tag: 98,\n        SymbolicName: 'DES',\n    },\n    {\n        Group: '',\n        Description: 'PKCS / DES (Proprietary)',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 4,\n        Tag: 98,\n        SymbolicName: 'PKCSDES',\n    },\n    {\n        Group: '',\n        Description: 'PGP / DES (Defunct)',\n        added: 'FIX.3.0',\n        Value: '4',\n        Sort: 5,\n        Tag: 98,\n        SymbolicName: 'PGPDES',\n    },\n    {\n        Group: '',\n        Description: 'PGP / DES-MD5 (See app note on FIX web site)',\n        added: 'FIX.4.0',\n        Value: '5',\n        Sort: 6,\n        Tag: 98,\n        SymbolicName: 'PGPDESMD5',\n    },\n    {\n        Group: '',\n        Description: 'PEM / DES-MD5 (see app note on FIX web site)',\n        added: 'FIX.4.0',\n        Value: '6',\n        Sort: 7,\n        Tag: 98,\n        SymbolicName: 'PEM',\n    },\n    {\n        Group: '',\n        Description: 'Too late to cancel',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 1,\n        Tag: 102,\n        SymbolicName: 'TooLateToCancel',\n    },\n    {\n        Group: '',\n        Description: 'Unknown order',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 2,\n        Tag: 102,\n        SymbolicName: 'UnknownOrder',\n    },\n    {\n        Group: '',\n        Description: 'Broker / Exchange Option',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 102,\n        SymbolicName: 'BrokerCredit',\n    },\n    {\n        Group: '',\n        Description: 'Order already in Pending Cancel or Pending Replace status',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 4,\n        Tag: 102,\n        SymbolicName: 'OrderAlreadyInPendingStatus',\n    },\n    {\n        Group: '',\n        Description: 'Unable to process Order Mass Cancel Request',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 5,\n        Tag: 102,\n        SymbolicName: 'UnableToProcessOrderMassCancelRequest',\n    },\n    {\n        Group: '',\n        Description: 'OrigOrdModTime (586) did not match last TransactTime (60) of order',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 6,\n        Tag: 102,\n        SymbolicName: 'OrigOrdModTime',\n    },\n    {\n        Group: '',\n        Description: 'Duplicate ClOrdID (11) received',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 7,\n        Tag: 102,\n        SymbolicName: 'DuplicateClOrdID',\n    },\n    {\n        Group: '',\n        Description: 'Price exceeds current price',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 102,\n        SymbolicName: 'PriceExceedsCurrentPrice',\n    },\n    {\n        Group: '',\n        Description: 'Price exceeds current price band',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 9,\n        addedEP: 43,\n        Tag: 102,\n        SymbolicName: 'PriceExceedsCurrentPriceBand',\n    },\n    {\n        Group: '',\n        Description: 'Invalid price increment',\n        added: 'FIX.4.4',\n        Value: '18',\n        Sort: 18,\n        addedEP: 6,\n        Tag: 102,\n        SymbolicName: 'InvalidPriceIncrement',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 102,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Broker / Exchange option',\n        added: 'FIX.2.7',\n        Value: '0',\n        Sort: 0,\n        Tag: 103,\n        SymbolicName: 'BrokerCredit',\n    },\n    {\n        Group: '',\n        Description: 'Unknown symbol',\n        added: 'FIX.2.7',\n        Value: '1',\n        Sort: 1,\n        Tag: 103,\n        SymbolicName: 'UnknownSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Exchange closed',\n        added: 'FIX.2.7',\n        Value: '2',\n        Sort: 2,\n        Tag: 103,\n        SymbolicName: 'ExchangeClosed',\n    },\n    {\n        Group: '',\n        Description: 'Order exceeds limit',\n        added: 'FIX.2.7',\n        Value: '3',\n        Sort: 3,\n        Tag: 103,\n        SymbolicName: 'OrderExceedsLimit',\n    },\n    {\n        Group: '',\n        Description: 'Too late to enter',\n        added: 'FIX.4.0',\n        Value: '4',\n        Sort: 4,\n        Tag: 103,\n        SymbolicName: 'TooLateToEnter',\n    },\n    {\n        Group: '',\n        Description: 'Unknown order',\n        added: 'FIX.4.1',\n        Value: '5',\n        Sort: 5,\n        Tag: 103,\n        SymbolicName: 'UnknownOrder',\n    },\n    {\n        Group: '',\n        Description: 'Duplicate Order (e.g. dupe ClOrdID)',\n        added: 'FIX.4.1',\n        Value: '6',\n        Sort: 6,\n        Tag: 103,\n        SymbolicName: 'DuplicateOrder',\n    },\n    {\n        Group: '',\n        Description: 'Duplicate of a verbally communicated order',\n        added: 'FIX.4.2',\n        Value: '7',\n        Sort: 7,\n        Tag: 103,\n        SymbolicName: 'DuplicateOfAVerballyCommunicatedOrder',\n    },\n    {\n        Group: '',\n        Description: 'Stale order',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 8,\n        Tag: 103,\n        SymbolicName: 'StaleOrder',\n    },\n    {\n        Group: '',\n        Description: 'Trade along required',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 103,\n        SymbolicName: 'TradeAlongRequired',\n    },\n    {\n        Group: '',\n        Description: 'Invalid Investor ID',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 103,\n        SymbolicName: 'InvalidInvestorID',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported order characteristic',\n        added: 'FIX.4.3',\n        Value: '11',\n        Sort: 11,\n        Tag: 103,\n        SymbolicName: 'UnsupportedOrderCharacteristic',\n    },\n    {\n        Group: '',\n        Description: 'Surveillence Option',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 103,\n        SymbolicName: 'SurveillenceOption',\n    },\n    {\n        Group: '',\n        Description: 'Incorrect quantity',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 13,\n        Tag: 103,\n        SymbolicName: 'IncorrectQuantity',\n    },\n    {\n        Group: '',\n        Description: 'Incorrect allocated quantity',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 14,\n        Tag: 103,\n        SymbolicName: 'IncorrectAllocatedQuantity',\n    },\n    {\n        Group: '',\n        Description: 'Unknown account(s)',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 15,\n        Tag: 103,\n        SymbolicName: 'UnknownAccount',\n    },\n    {\n        Group: '',\n        Description: 'Price exceeds current price band',\n        added: 'FIX.5.0',\n        Value: '16',\n        Sort: 16,\n        addedEP: -1,\n        Tag: 103,\n        SymbolicName: 'PriceExceedsCurrentPriceBand',\n    },\n    {\n        Group: '',\n        Description: 'Invalid price increment',\n        added: 'FIX.4.4',\n        Value: '18',\n        Sort: 18,\n        addedEP: 6,\n        Tag: 103,\n        SymbolicName: 'InvalidPriceIncrement',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 103,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'All or None (AON)',\n        added: 'FIX.3.0',\n        Value: 'A',\n        Sort: 1,\n        Tag: 104,\n        SymbolicName: 'AllOrNone',\n    },\n    {\n        Group: '',\n        Description: 'Market On Close (MOC) (held to close)',\n        added: 'FIX.4.3',\n        Value: 'B',\n        Sort: 2,\n        Tag: 104,\n        SymbolicName: 'MarketOnClose',\n    },\n    {\n        Group: '',\n        Description: 'At the close (around/not held to close)',\n        added: 'FIX.3.0',\n        Value: 'C',\n        Sort: 3,\n        Tag: 104,\n        SymbolicName: 'AtTheClose',\n    },\n    {\n        Group: '',\n        Description: 'VWAP (Volume Weighted Average Price)',\n        added: 'FIX.4.3',\n        Value: 'D',\n        Sort: 4,\n        Tag: 104,\n        SymbolicName: 'VWAP',\n    },\n    {\n        Group: '',\n        Description: 'In touch with',\n        added: 'FIX.3.0',\n        Value: 'I',\n        Sort: 5,\n        Tag: 104,\n        SymbolicName: 'InTouchWith',\n    },\n    {\n        Group: '',\n        Description: 'Limit',\n        added: 'FIX.3.0',\n        Value: 'L',\n        Sort: 6,\n        Tag: 104,\n        SymbolicName: 'Limit',\n    },\n    {\n        Group: '',\n        Description: 'More Behind',\n        added: 'FIX.3.0',\n        Value: 'M',\n        Sort: 7,\n        Tag: 104,\n        SymbolicName: 'MoreBehind',\n    },\n    {\n        Group: '',\n        Description: 'At the Open',\n        added: 'FIX.3.0',\n        Value: 'O',\n        Sort: 8,\n        Tag: 104,\n        SymbolicName: 'AtTheOpen',\n    },\n    {\n        Group: '',\n        Description: 'Taking a Position',\n        added: 'FIX.3.0',\n        Value: 'P',\n        Sort: 9,\n        Tag: 104,\n        SymbolicName: 'TakingAPosition',\n    },\n    {\n        Group: '',\n        Description: 'At the Market (previously called Current Quote)',\n        added: 'FIX.3.0',\n        Value: 'Q',\n        Sort: 10,\n        Tag: 104,\n        SymbolicName: 'AtTheMarket',\n    },\n    {\n        Group: '',\n        Description: 'Ready to Trade',\n        added: 'FIX.4.2',\n        Value: 'R',\n        Sort: 11,\n        Tag: 104,\n        SymbolicName: 'ReadyToTrade',\n    },\n    {\n        Group: '',\n        Description: 'Portfolio Shown',\n        added: 'FIX.3.0',\n        Value: 'S',\n        Sort: 12,\n        Tag: 104,\n        SymbolicName: 'PortfolioShown',\n    },\n    {\n        Group: '',\n        Description: 'Through the Day',\n        added: 'FIX.3.0',\n        Value: 'T',\n        Sort: 13,\n        Tag: 104,\n        SymbolicName: 'ThroughTheDay',\n    },\n    {\n        Group: '',\n        Description: 'Versus',\n        added: 'FIX.3.0',\n        Value: 'V',\n        Sort: 14,\n        Tag: 104,\n        SymbolicName: 'Versus',\n    },\n    {\n        Group: '',\n        Description: 'Indication - Working Away',\n        added: 'FIX.3.0',\n        updatedEP: 95,\n        Value: 'W',\n        Sort: 15,\n        Tag: 104,\n        SymbolicName: 'Indication',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Crossing Opportunity',\n        added: 'FIX.3.0',\n        Value: 'X',\n        Sort: 16,\n        Tag: 104,\n        SymbolicName: 'CrossingOpportunity',\n    },\n    {\n        Group: '',\n        Description: 'At the Midpoint',\n        added: 'FIX.4.1',\n        Value: 'Y',\n        Sort: 17,\n        Tag: 104,\n        SymbolicName: 'AtTheMidpoint',\n    },\n    {\n        Group: '',\n        Description: 'Pre-open',\n        added: 'FIX.4.1',\n        Value: 'Z',\n        Sort: 18,\n        Tag: 104,\n        SymbolicName: 'PreOpen',\n    },\n    {\n        Group: '',\n        Description: 'Indicates the party sending message will report trade',\n        added: 'FIX.3.0',\n        Value: 'N',\n        Sort: 1,\n        Tag: 113,\n        SymbolicName: 'SenderReports',\n    },\n    {\n        Group: '',\n        Description: 'Indicates the party receiving message must report trade',\n        added: 'FIX.3.0',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 113,\n        SymbolicName: 'ReceiverReports',\n    },\n    {\n        Group: '',\n        Description: 'Indicates the broker is not required to locate',\n        added: 'FIX.4.0',\n        Value: 'N',\n        Sort: 1,\n        Tag: 114,\n        SymbolicName: 'No',\n    },\n    {\n        Group: '',\n        Description: 'Indicates the broker is responsible for locating the stock',\n        added: 'FIX.4.0',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 114,\n        SymbolicName: 'Yes',\n    },\n    {\n        Group: '',\n        Description: 'Do Not Execute Forex After Security Trade',\n        added: 'FIX.4.0',\n        Value: 'N',\n        Sort: 1,\n        Tag: 121,\n        SymbolicName: 'DoNotExecuteForexAfterSecurityTrade',\n    },\n    {\n        Group: '',\n        Description: 'Execute Forex After Security Trade',\n        added: 'FIX.4.0',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 121,\n        SymbolicName: 'ExecuteForexAfterSecurityTrade',\n    },\n    {\n        Group: '',\n        Description: 'Sequence Reset, Ignore Msg Seq Num (N/A For FIXML - Not Used)',\n        added: 'FIX.4.0',\n        Value: 'N',\n        Sort: 1,\n        Tag: 123,\n        SymbolicName: 'SequenceReset',\n    },\n    {\n        Group: '',\n        Description: 'Gap Fill Message, Msg Seq Num Field Valid',\n        added: 'FIX.4.0',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 123,\n        SymbolicName: 'GapFillMessage',\n    },\n    {\n        Group: '',\n        Description: 'Unknown Symbol',\n        added: 'FIX.4.0',\n        Value: 'A',\n        Sort: 1,\n        Tag: 127,\n        SymbolicName: 'UnknownSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Wrong Side',\n        added: 'FIX.4.0',\n        Value: 'B',\n        Sort: 2,\n        Tag: 127,\n        SymbolicName: 'WrongSide',\n    },\n    {\n        Group: '',\n        Description: 'Quantity Exceeds Order',\n        added: 'FIX.4.0',\n        Value: 'C',\n        Sort: 3,\n        Tag: 127,\n        SymbolicName: 'QuantityExceedsOrder',\n    },\n    {\n        Group: '',\n        Description: 'No Matching Order',\n        added: 'FIX.4.0',\n        Value: 'D',\n        Sort: 4,\n        Tag: 127,\n        SymbolicName: 'NoMatchingOrder',\n    },\n    {\n        Group: '',\n        Description: 'Price Exceeds Limit',\n        added: 'FIX.4.0',\n        Value: 'E',\n        Sort: 5,\n        Tag: 127,\n        SymbolicName: 'PriceExceedsLimit',\n    },\n    {\n        Group: '',\n        Description: 'Calculation Difference',\n        added: 'FIX.4.4',\n        Value: 'F',\n        Sort: 6,\n        Tag: 127,\n        SymbolicName: 'CalculationDifference',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.0',\n        Value: 'Z',\n        Sort: 7,\n        Tag: 127,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Not Natural',\n        added: 'FIX.4.0',\n        Value: 'N',\n        Sort: 1,\n        Tag: 130,\n        SymbolicName: 'NotNatural',\n    },\n    {\n        Group: '',\n        Description: 'Natural',\n        added: 'FIX.4.0',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 130,\n        SymbolicName: 'Natural',\n    },\n    {\n        Group: '',\n        Description: 'Regulatory (e.g. SEC)',\n        added: 'FIX.4.0',\n        Value: '1',\n        Sort: 0,\n        Tag: 139,\n        SymbolicName: 'Regulatory',\n    },\n    {\n        Group: '',\n        Description: 'Tax',\n        added: 'FIX.4.0',\n        Value: '2',\n        Sort: 1,\n        Tag: 139,\n        SymbolicName: 'Tax',\n    },\n    {\n        Group: '',\n        Description: 'Local Commission',\n        added: 'FIX.4.0',\n        Value: '3',\n        Sort: 2,\n        Tag: 139,\n        SymbolicName: 'LocalCommission',\n    },\n    {\n        Group: '',\n        Description: 'Exchange Fees',\n        added: 'FIX.4.0',\n        Value: '4',\n        Sort: 3,\n        Tag: 139,\n        SymbolicName: 'ExchangeFees',\n    },\n    {\n        Group: '',\n        Description: 'Stamp',\n        added: 'FIX.4.0',\n        Value: '5',\n        Sort: 4,\n        Tag: 139,\n        SymbolicName: 'Stamp',\n    },\n    {\n        Group: '',\n        Description: 'Levy',\n        added: 'FIX.4.0',\n        Value: '6',\n        Sort: 5,\n        Tag: 139,\n        SymbolicName: 'Levy',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.0',\n        Value: '7',\n        Sort: 6,\n        Tag: 139,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Markup',\n        added: 'FIX.4.1',\n        Value: '8',\n        Sort: 7,\n        Tag: 139,\n        SymbolicName: 'Markup',\n    },\n    {\n        Group: '',\n        Description: 'Consumption Tax',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 8,\n        Tag: 139,\n        SymbolicName: 'ConsumptionTax',\n    },\n    {\n        Group: '',\n        Description: 'Per transaction',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 9,\n        Tag: 139,\n        SymbolicName: 'PerTransaction',\n    },\n    {\n        Group: '',\n        Description: 'Conversion',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 10,\n        Tag: 139,\n        SymbolicName: 'Conversion',\n    },\n    {\n        Group: '',\n        Description: 'Agent',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 11,\n        Tag: 139,\n        SymbolicName: 'Agent',\n    },\n    {\n        Group: '',\n        Description: 'Transfer Fee',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 15,\n        addedEP: 25,\n        Tag: 139,\n        SymbolicName: 'TransferFee',\n    },\n    {\n        Group: '',\n        Description: 'Security Lending',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 16,\n        addedEP: 25,\n        Tag: 139,\n        SymbolicName: 'SecurityLending',\n    },\n    {\n        Group: '',\n        Description: 'No',\n        added: 'FIX.4.1',\n        Value: 'N',\n        Sort: 1,\n        Tag: 141,\n        SymbolicName: 'No',\n    },\n    {\n        Group: '',\n        Description: 'Yes, reset sequence numbers',\n        added: 'FIX.4.1',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 141,\n        SymbolicName: 'Yes',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.1',\n        Value: '0',\n        Sort: 1,\n        Tag: 150,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Done for day',\n        added: 'FIX.4.1',\n        Value: '3',\n        Sort: 2,\n        Tag: 150,\n        SymbolicName: 'DoneForDay',\n    },\n    {\n        Group: '',\n        Description: 'Canceled',\n        added: 'FIX.4.1',\n        Value: '4',\n        Sort: 3,\n        Tag: 150,\n        SymbolicName: 'Canceled',\n    },\n    {\n        Group: '',\n        Description: 'Replaced',\n        added: 'FIX.4.1',\n        Value: '5',\n        Sort: 4,\n        Tag: 150,\n        SymbolicName: 'Replaced',\n    },\n    {\n        Group: '',\n        Description: 'Pending Cancel (e.g. result of Order Cancel Request)',\n        added: 'FIX.4.1',\n        Value: '6',\n        Sort: 5,\n        Tag: 150,\n        SymbolicName: 'PendingCancel',\n    },\n    {\n        Group: '',\n        Description: 'Stopped',\n        added: 'FIX.4.1',\n        Value: '7',\n        Sort: 6,\n        Tag: 150,\n        SymbolicName: 'Stopped',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.1',\n        Value: '8',\n        Sort: 7,\n        Tag: 150,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Suspended',\n        added: 'FIX.4.1',\n        Value: '9',\n        Sort: 8,\n        Tag: 150,\n        SymbolicName: 'Suspended',\n    },\n    {\n        Group: '',\n        Description: 'Pending New',\n        added: 'FIX.4.1',\n        Value: 'A',\n        Sort: 9,\n        Tag: 150,\n        SymbolicName: 'PendingNew',\n    },\n    {\n        Group: '',\n        Description: 'Calculated',\n        added: 'FIX.4.1',\n        Value: 'B',\n        Sort: 10,\n        Tag: 150,\n        SymbolicName: 'Calculated',\n    },\n    {\n        Group: '',\n        Description: 'Expired',\n        added: 'FIX.4.1',\n        Value: 'C',\n        Sort: 11,\n        Tag: 150,\n        SymbolicName: 'Expired',\n    },\n    {\n        Group: '',\n        Description: 'Restated (Execution Report sent unsolicited by sellside, with ExecRestatementReason (378) set)',\n        added: 'FIX.4.2',\n        Value: 'D',\n        Sort: 12,\n        Tag: 150,\n        SymbolicName: 'Restated',\n    },\n    {\n        Group: '',\n        Description: 'Pending Replace (e.g. result of Order Cancel/Replace Request)',\n        added: 'FIX.4.2',\n        Value: 'E',\n        Sort: 13,\n        Tag: 150,\n        SymbolicName: 'PendingReplace',\n    },\n    {\n        Group: '',\n        Description: 'Trade (partial fill or fill)',\n        added: 'FIX.4.3',\n        Value: 'F',\n        Sort: 14,\n        Tag: 150,\n        SymbolicName: 'Trade',\n    },\n    {\n        Group: '',\n        Description: 'Trade Correct',\n        added: 'FIX.4.3',\n        Value: 'G',\n        Sort: 15,\n        Tag: 150,\n        SymbolicName: 'TradeCorrect',\n    },\n    {\n        Group: '',\n        Description: 'Trade Cancel',\n        added: 'FIX.4.3',\n        Value: 'H',\n        Sort: 16,\n        Tag: 150,\n        SymbolicName: 'TradeCancel',\n    },\n    {\n        Group: '',\n        Description: 'Order Status',\n        added: 'FIX.4.3',\n        Value: 'I',\n        Sort: 17,\n        Tag: 150,\n        SymbolicName: 'OrderStatus',\n    },\n    {\n        Group: '',\n        Description: 'Trade in a Clearing Hold',\n        added: 'FIX.4.4',\n        Value: 'J',\n        Sort: 18,\n        addedEP: 5,\n        Tag: 150,\n        SymbolicName: 'TradeInAClearingHold',\n    },\n    {\n        Group: '',\n        Description: 'Trade has been released to Clearing',\n        added: 'FIX.4.4',\n        Value: 'K',\n        Sort: 19,\n        addedEP: 5,\n        Tag: 150,\n        SymbolicName: 'TradeHasBeenReleasedToClearing',\n    },\n    {\n        Group: '',\n        Description: 'Triggered or Activated by System',\n        added: 'FIX.4.4',\n        Value: 'L',\n        Sort: 20,\n        addedEP: 22,\n        Tag: 150,\n        SymbolicName: 'TriggeredOrActivatedBySystem',\n    },\n    {\n        Group: '',\n        Description: 'Multiply',\n        added: 'FIX.4.4',\n        Value: 'M',\n        Sort: 1,\n        addedEP: 38,\n        Tag: 156,\n        SymbolicName: 'Multiply',\n    },\n    {\n        Group: '',\n        Description: 'Divide',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 2,\n        addedEP: 38,\n        Tag: 156,\n        SymbolicName: 'Divide',\n    },\n    {\n        Group: '',\n        Description: 'Default (Replaced)',\n        added: 'FIX.4.1',\n        Value: '0',\n        Sort: 1,\n        Tag: 160,\n        SymbolicName: 'Default',\n    },\n    {\n        Group: '',\n        Description: 'Standing Instructions Provided',\n        added: 'FIX.4.1',\n        Value: '1',\n        Sort: 2,\n        Tag: 160,\n        SymbolicName: 'StandingInstructionsProvided',\n    },\n    {\n        Group: '',\n        Description: 'Specific Allocation Account Overriding (Replaced)',\n        added: 'FIX.4.1',\n        Value: '2',\n        Sort: 3,\n        Tag: 160,\n        SymbolicName: 'SpecificAllocationAccountOverriding',\n    },\n    {\n        Group: '',\n        Description: 'Specific Allocation Account Standing (Replaced)',\n        added: 'FIX.4.1',\n        Value: '3',\n        Sort: 4,\n        Tag: 160,\n        SymbolicName: 'SpecificAllocationAccountStanding',\n    },\n    {\n        Group: '',\n        Description: 'Specific Order for a single account (for CIV)',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 5,\n        Tag: 160,\n        SymbolicName: 'SpecificOrderForASingleAccount',\n    },\n    {\n        Group: '',\n        Description: 'Request reject',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 160,\n        SymbolicName: 'RequestReject',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.1',\n        Value: 'N',\n        Sort: 1,\n        Tag: 163,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.1',\n        Value: 'C',\n        Sort: 2,\n        Tag: 163,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.4.1',\n        Value: 'R',\n        Sort: 3,\n        Tag: 163,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Restate',\n        added: 'FIX.4.4',\n        Value: 'T',\n        Sort: 4,\n        Tag: 163,\n        SymbolicName: 'Restate',\n    },\n    {\n        Group: '',\n        Description: \"Broker's Instructions\",\n        added: 'FIX.4.1',\n        Value: '1',\n        Sort: 1,\n        Tag: 165,\n        SymbolicName: 'BrokerCredit',\n    },\n    {\n        Group: '',\n        Description: \"Institution's Instructions\",\n        added: 'FIX.4.1',\n        Value: '2',\n        Sort: 2,\n        Tag: 165,\n        SymbolicName: 'Institution',\n    },\n    {\n        Group: '',\n        Description: 'Investor (e.g. CIV use)',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 165,\n        SymbolicName: 'Investor',\n    },\n    {\n        Group: '',\n        Description: 'CEDEL',\n        added: 'FIX.4.1',\n        Value: 'CED',\n        Sort: 1,\n        Tag: 166,\n        SymbolicName: 'CEDEL',\n    },\n    {\n        Group: '',\n        Description: 'Depository Trust Company',\n        added: 'FIX.4.1',\n        Value: 'DTC',\n        Sort: 2,\n        Tag: 166,\n        SymbolicName: 'DepositoryTrustCompany',\n    },\n    {\n        Group: '',\n        Description: 'Euro clear',\n        added: 'FIX.4.1',\n        Value: 'EUR',\n        Sort: 3,\n        Tag: 166,\n        SymbolicName: 'EuroClear',\n    },\n    {\n        Group: '',\n        Description: 'Federal Book Entry',\n        added: 'FIX.4.1',\n        Value: 'FED',\n        Sort: 4,\n        Tag: 166,\n        SymbolicName: 'FederalBookEntry',\n    },\n    {\n        Group: '',\n        Description: 'Local Market Settle Location',\n        added: 'FIX.4.4',\n        Value: 'ISO_Country_Code',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 166,\n        SymbolicName: 'LocalMarketSettleLocation',\n    },\n    {\n        Group: '',\n        Description: 'Physical',\n        added: 'FIX.4.1',\n        Value: 'PNY',\n        Sort: 6,\n        Tag: 166,\n        SymbolicName: 'Physical',\n    },\n    {\n        Group: '',\n        Description: 'Participant Trust Company',\n        added: 'FIX.4.1',\n        Value: 'PTC',\n        Sort: 7,\n        Tag: 166,\n        SymbolicName: 'ParticipantTrustCompany',\n    },\n    {\n        Group: '',\n        Description: 'US Treasury Note (Deprecated Value Use TNOTE)',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        Value: 'UST',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'USTreasuryNoteOld',\n    },\n    {\n        Group: '',\n        Description: 'US Treasury Bill (Deprecated Value Use TBILL)',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.4.4',\n        Value: 'USTB',\n        Sort: 4,\n        Tag: 167,\n        SymbolicName: 'USTreasuryBillOld',\n    },\n    {\n        Group: 'Agency',\n        Description: 'Euro Supranational Coupons *',\n        added: 'FIX.4.4',\n        Value: 'EUSUPRA',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'EuroSupranationalCoupons',\n    },\n    {\n        Group: 'Agency',\n        Description: 'Federal Agency Coupon',\n        added: 'FIX.4.3',\n        Value: 'FAC',\n        Sort: 1,\n        Tag: 167,\n        SymbolicName: 'FederalAgencyCoupon',\n    },\n    {\n        Group: 'Agency',\n        Description: 'Federal Agency Discount Note',\n        added: 'FIX.4.3',\n        Value: 'FADN',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'FederalAgencyDiscountNote',\n    },\n    {\n        Group: 'Agency',\n        Description: 'Private Export Funding *',\n        added: 'FIX.4.3',\n        Value: 'PEF',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'PrivateExportFunding',\n    },\n    {\n        Group: 'Agency',\n        Description: 'USD Supranational Coupons *',\n        added: 'FIX.4.4',\n        Value: 'SUPRA',\n        Sort: 4,\n        Tag: 167,\n        SymbolicName: 'USDSupranationalCoupons',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Corporate Bond',\n        added: 'FIX.4.1',\n        Value: 'CORP',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'CorporateBond',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Corporate Private Placement',\n        added: 'FIX.4.1',\n        Value: 'CPP',\n        Sort: 1,\n        Tag: 167,\n        SymbolicName: 'CorporatePrivatePlacement',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Convertible Bond',\n        added: 'FIX.4.2',\n        Value: 'CB',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'ConvertibleBond',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Dual Currency',\n        added: 'FIX.4.3',\n        Value: 'DUAL',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'DualCurrency',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Euro Corporate Bond',\n        added: 'FIX.4.4',\n        Value: 'EUCORP',\n        Sort: 4,\n        Tag: 167,\n        SymbolicName: 'EuroCorporateBond',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Euro Corporate Floating Rate Notes',\n        added: 'FIX.5.0',\n        Value: 'EUFRN',\n        Sort: 5,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'EuroCorporateFloatingRateNotes',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'US Corporate Floating Rate Notes',\n        added: 'FIX.5.0',\n        Value: 'FRN',\n        Sort: 6,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'USCorporateFloatingRateNotes',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Indexed Linked',\n        added: 'FIX.4.3',\n        Value: 'XLINKD',\n        Sort: 7,\n        Tag: 167,\n        SymbolicName: 'IndexedLinked',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Structured Notes',\n        added: 'FIX.4.3',\n        Value: 'STRUCT',\n        Sort: 8,\n        Tag: 167,\n        SymbolicName: 'StructuredNotes',\n    },\n    {\n        Group: 'Corporate',\n        Description: 'Yankee Corporate Bond',\n        added: 'FIX.4.3',\n        Value: 'YANK',\n        Sort: 9,\n        Tag: 167,\n        SymbolicName: 'YankeeCorporateBond',\n    },\n    {\n        Group: 'Currency',\n        Description: 'Foreign Exchange Contract',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.5.0SP1',\n        Value: 'FOR',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'ForeignExchangeContract',\n        deprecatedEP: 82,\n    },\n    {\n        Group: 'Derivatives',\n        Description: 'Credit Default Swap',\n        added: 'FIX.5.0',\n        Value: 'CDS',\n        Sort: 0,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'CreditDefaultSwap',\n    },\n    {\n        Group: 'Derivatives',\n        Description: 'Future',\n        added: 'FIX.4.1',\n        Value: 'FUT',\n        Sort: 1,\n        Tag: 167,\n        SymbolicName: 'Future',\n    },\n    {\n        Group: 'Derivatives',\n        Description: 'Option',\n        added: 'FIX.4.1',\n        Value: 'OPT',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'Option',\n    },\n    {\n        Group: 'Derivatives',\n        Description: 'Options on Futures',\n        added: 'FIX.4.4',\n        Value: 'OOF',\n        Sort: 3,\n        addedEP: 19,\n        Tag: 167,\n        SymbolicName: 'OptionsOnFutures',\n    },\n    {\n        Group: 'Derivatives',\n        Description: 'Options on Physical - use not recommended',\n        added: 'FIX.4.4',\n        Value: 'OOP',\n        Sort: 4,\n        addedEP: 19,\n        Tag: 167,\n        SymbolicName: 'OptionsOnPhysical',\n    },\n    {\n        Group: 'Derivatives',\n        Description: 'Interest Rate Swap',\n        added: 'FIX.5.0',\n        Value: 'IRS',\n        Sort: 5,\n        addedEP: 54,\n        Tag: 167,\n        SymbolicName: 'InterestRateSwap',\n    },\n    {\n        Group: 'Derivatives',\n        Description: 'Options on Combo',\n        added: 'FIX.5.0',\n        Value: 'OOC',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 167,\n        SymbolicName: 'OptionsOnCombo',\n    },\n    {\n        Group: 'Equity',\n        Description: 'Common Stock',\n        added: 'FIX.4.1',\n        Value: 'CS',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'CommonStock',\n    },\n    {\n        Group: 'Equity',\n        Description: 'Preferred Stock',\n        added: 'FIX.4.1',\n        Value: 'PS',\n        Sort: 1,\n        Tag: 167,\n        SymbolicName: 'PreferredStock',\n    },\n    {\n        Group: 'Financing',\n        Description: 'Repurchase',\n        added: 'FIX.4.4',\n        Value: 'REPO',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'Repurchase',\n    },\n    {\n        Group: 'Financing',\n        Description: 'Forward',\n        added: 'FIX.4.4',\n        Value: 'FORWARD',\n        Sort: 1,\n        Tag: 167,\n        SymbolicName: 'Forward',\n    },\n    {\n        Group: 'Financing',\n        Description: 'Buy Sellback',\n        added: 'FIX.4.4',\n        Value: 'BUYSELL',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'BuySellback',\n    },\n    {\n        Group: 'Financing',\n        Description: 'Securities Loan',\n        added: 'FIX.4.4',\n        Value: 'SECLOAN',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'SecuritiesLoan',\n    },\n    {\n        Group: 'Financing',\n        Description: 'Securities Pledge',\n        added: 'FIX.4.4',\n        Value: 'SECPLEDGE',\n        Sort: 4,\n        Tag: 167,\n        SymbolicName: 'SecuritiesPledge',\n    },\n    {\n        Group: 'Government',\n        Description: 'Brady Bond',\n        added: 'FIX.4.3',\n        Value: 'BRADY',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'BradyBond',\n    },\n    {\n        Group: 'Government',\n        Description: 'Canadian Treasury Notes',\n        added: 'FIX.5.0',\n        Value: 'CAN',\n        Sort: 1,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'CanadianTreasuryNotes',\n    },\n    {\n        Group: 'Government',\n        Description: 'Canadian Treasury Bills',\n        added: 'FIX.5.0',\n        Value: 'CTB',\n        Sort: 2,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'CanadianTreasuryBills',\n    },\n    {\n        Group: 'Government',\n        Description: 'Euro Sovereigns *',\n        added: 'FIX.4.4',\n        Value: 'EUSOV',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'EuroSovereigns',\n    },\n    {\n        Group: 'Government',\n        Description: 'Canadian Provincial Bonds',\n        added: 'FIX.5.0',\n        Value: 'PROV',\n        Sort: 4,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'CanadianProvincialBonds',\n    },\n    {\n        Group: 'Government',\n        Description: 'Treasury Bill - non US',\n        added: 'FIX.5.0',\n        Value: 'TB',\n        Sort: 5,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'TreasuryBill',\n    },\n    {\n        Group: 'Government',\n        Description: 'US Treasury Bond',\n        added: 'FIX.4.3',\n        Value: 'TBOND',\n        Sort: 6,\n        Tag: 167,\n        SymbolicName: 'USTreasuryBond',\n    },\n    {\n        Group: 'Government',\n        Description: 'Interest Strip From Any Bond Or Note',\n        added: 'FIX.4.3',\n        Value: 'TINT',\n        Sort: 7,\n        Tag: 167,\n        SymbolicName: 'InterestStripFromAnyBondOrNote',\n    },\n    {\n        Group: 'Government',\n        Description: 'US Treasury Bill',\n        added: 'FIX.4.4',\n        Value: 'TBILL',\n        Sort: 8,\n        Tag: 167,\n        SymbolicName: 'USTreasuryBill',\n    },\n    {\n        Group: 'Government',\n        Description: 'Treasury Inflation Protected Securities',\n        added: 'FIX.4.3',\n        Value: 'TIPS',\n        Sort: 8,\n        Tag: 167,\n        SymbolicName: 'TreasuryInflationProtectedSecurities',\n    },\n    {\n        Group: 'Government',\n        Description: 'Principal Strip Of A Callable Bond Or Note',\n        added: 'FIX.4.3',\n        Value: 'TCAL',\n        Sort: 9,\n        Tag: 167,\n        SymbolicName: 'PrincipalStripOfACallableBondOrNote',\n    },\n    {\n        Group: 'Government',\n        Description: 'Principal Strip From A Non-Callable Bond Or Note',\n        added: 'FIX.4.3',\n        Value: 'TPRN',\n        Sort: 10,\n        Tag: 167,\n        SymbolicName: 'PrincipalStripFromANonCallableBondOrNote',\n    },\n    {\n        Group: 'Government',\n        Description: 'US Treasury Note',\n        added: 'FIX.4.4',\n        Value: 'TNOTE',\n        Sort: 11,\n        Tag: 167,\n        SymbolicName: 'USTreasuryNote',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Term Loan',\n        added: 'FIX.4.3',\n        Value: 'TERM',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'TermLoan',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Revolver Loan',\n        added: 'FIX.4.3',\n        Value: 'RVLV',\n        Sort: 1,\n        Tag: 167,\n        SymbolicName: 'RevolverLoan',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Revolver/Term Loan',\n        added: 'FIX.4.3',\n        Value: 'RVLVTRM',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'Revolver',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Bridge Loan',\n        added: 'FIX.4.3',\n        Value: 'BRIDGE',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'BridgeLoan',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Letter Of Credit',\n        added: 'FIX.4.3',\n        Value: 'LOFC',\n        Sort: 4,\n        Tag: 167,\n        SymbolicName: 'LetterOfCredit',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Swing Line Facility',\n        added: 'FIX.4.3',\n        Value: 'SWING',\n        Sort: 5,\n        Tag: 167,\n        SymbolicName: 'SwingLineFacility',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Debtor In Possession',\n        added: 'FIX.4.3',\n        Value: 'DINP',\n        Sort: 6,\n        Tag: 167,\n        SymbolicName: 'DebtorInPossession',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Defaulted',\n        added: 'FIX.4.3',\n        Value: 'DEFLTED',\n        Sort: 7,\n        Tag: 167,\n        SymbolicName: 'Defaulted',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Withdrawn',\n        added: 'FIX.4.3',\n        Value: 'WITHDRN',\n        Sort: 8,\n        Tag: 167,\n        SymbolicName: 'Withdrawn',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Replaced',\n        added: 'FIX.4.3',\n        Value: 'REPLACD',\n        Sort: 9,\n        Tag: 167,\n        SymbolicName: 'Replaced',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Matured',\n        added: 'FIX.4.3',\n        Value: 'MATURED',\n        Sort: 10,\n        Tag: 167,\n        SymbolicName: 'Matured',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Amended & Restated',\n        added: 'FIX.4.3',\n        Value: 'AMENDED',\n        Sort: 11,\n        Tag: 167,\n        SymbolicName: 'Amended',\n    },\n    {\n        Group: 'Loan',\n        Description: 'Retired',\n        added: 'FIX.4.3',\n        Value: 'RETIRED',\n        Sort: 12,\n        Tag: 167,\n        SymbolicName: 'Retired',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Bankers Acceptance',\n        added: 'FIX.4.1',\n        Value: 'BA',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'BankersAcceptance',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Bank Depository Note',\n        added: 'FIX.5.0',\n        Value: 'BDN',\n        Sort: 1,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'BankDepositoryNote',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Bank Notes',\n        added: 'FIX.4.3',\n        Value: 'BN',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'BankNotes',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Bill Of Exchanges',\n        added: 'FIX.4.3',\n        Value: 'BOX',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'BillOfExchanges',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Canadian Money Markets',\n        added: 'FIX.5.0',\n        Value: 'CAMM',\n        Sort: 4,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'CanadianMoneyMarkets',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Certificate Of Deposit',\n        added: 'FIX.4.1',\n        Value: 'CD',\n        Sort: 5,\n        Tag: 167,\n        SymbolicName: 'CertificateOfDeposit',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Call Loans',\n        added: 'FIX.4.3',\n        Value: 'CL',\n        Sort: 6,\n        Tag: 167,\n        SymbolicName: 'CallLoans',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Commercial Paper',\n        added: 'FIX.4.1',\n        Value: 'CP',\n        Sort: 7,\n        Tag: 167,\n        SymbolicName: 'CommercialPaper',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Deposit Notes',\n        added: 'FIX.4.3',\n        Value: 'DN',\n        Sort: 8,\n        Tag: 167,\n        SymbolicName: 'DepositNotes',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Euro Certificate Of Deposit',\n        added: 'FIX.4.4',\n        Value: 'EUCD',\n        Sort: 9,\n        Tag: 167,\n        SymbolicName: 'EuroCertificateOfDeposit',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Euro Commercial Paper',\n        added: 'FIX.4.4',\n        Value: 'EUCP',\n        Sort: 10,\n        Tag: 167,\n        SymbolicName: 'EuroCommercialPaper',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Liquidity Note',\n        added: 'FIX.4.3',\n        Value: 'LQN',\n        Sort: 11,\n        Tag: 167,\n        SymbolicName: 'LiquidityNote',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Medium Term Notes',\n        added: 'FIX.4.3',\n        Value: 'MTN',\n        Sort: 12,\n        Tag: 167,\n        SymbolicName: 'MediumTermNotes',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Overnight',\n        added: 'FIX.4.3',\n        Value: 'ONITE',\n        Sort: 13,\n        Tag: 167,\n        SymbolicName: 'Overnight',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Promissory Note',\n        added: 'FIX.4.3',\n        Value: 'PN',\n        Sort: 14,\n        Tag: 167,\n        SymbolicName: 'PromissoryNote',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Short Term Loan Note',\n        added: 'FIX.4.3',\n        Value: 'STN',\n        Sort: 14,\n        Tag: 167,\n        SymbolicName: 'ShortTermLoanNote',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Plazos Fijos',\n        added: 'FIX.4.3',\n        Value: 'PZFJ',\n        Sort: 15,\n        Tag: 167,\n        SymbolicName: 'PlazosFijos',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Secured Liquidity Note',\n        added: 'FIX.5.0',\n        Value: 'SLQN',\n        Sort: 16,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'SecuredLiquidityNote',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Time Deposit',\n        added: 'FIX.4.1',\n        Value: 'TD',\n        Sort: 17,\n        Tag: 167,\n        SymbolicName: 'TimeDeposit',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Term Liquidity Note',\n        added: 'FIX.5.0',\n        Value: 'TLQN',\n        Sort: 19,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'TermLiquidityNote',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Extended Comm Note',\n        added: 'FIX.4.3',\n        Value: 'XCN',\n        Sort: 20,\n        Tag: 167,\n        SymbolicName: 'ExtendedCommNote',\n    },\n    {\n        Group: 'Money Market',\n        Description: 'Yankee Certificate Of Deposit',\n        added: 'FIX.4.4',\n        Value: 'YCD',\n        Sort: 21,\n        Tag: 167,\n        SymbolicName: 'YankeeCertificateOfDeposit',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Asset-backed Securities',\n        added: 'FIX.4.3',\n        Value: 'ABS',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'AssetBackedSecurities',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Canadian Mortgage Bonds',\n        added: 'FIX.5.0',\n        Value: 'CMB',\n        Sort: 1,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'CanadianMortgageBonds',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Corp. Mortgage-backed Securities',\n        added: 'FIX.4.3',\n        Value: 'CMBS',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'Corp',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Collateralized Mortgage Obligation',\n        added: 'FIX.4.1',\n        Value: 'CMO',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'CollateralizedMortgageObligation',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'IOETTE Mortgage',\n        added: 'FIX.4.2',\n        Value: 'IET',\n        Sort: 4,\n        Tag: 167,\n        SymbolicName: 'IOETTEMortgage',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Mortgage-backed Securities',\n        added: 'FIX.4.3',\n        Value: 'MBS',\n        Sort: 5,\n        Tag: 167,\n        SymbolicName: 'MortgageBackedSecurities',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Mortgage Interest Only',\n        added: 'FIX.4.1',\n        Value: 'MIO',\n        Sort: 6,\n        Tag: 167,\n        SymbolicName: 'MortgageInterestOnly',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Mortgage Principal Only',\n        added: 'FIX.4.1',\n        Value: 'MPO',\n        Sort: 7,\n        Tag: 167,\n        SymbolicName: 'MortgagePrincipalOnly',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Mortgage Private Placement',\n        added: 'FIX.4.1',\n        Value: 'MPP',\n        Sort: 8,\n        Tag: 167,\n        SymbolicName: 'MortgagePrivatePlacement',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Miscellaneous Pass-through',\n        added: 'FIX.4.1',\n        Value: 'MPT',\n        Sort: 9,\n        Tag: 167,\n        SymbolicName: 'MiscellaneousPassThrough',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'Pfandbriefe *',\n        added: 'FIX.4.4',\n        Value: 'PFAND',\n        Sort: 10,\n        Tag: 167,\n        SymbolicName: 'Pfandbriefe',\n    },\n    {\n        Group: 'Mortgage',\n        Description: 'To Be Announced',\n        added: 'FIX.4.3',\n        Value: 'TBA',\n        Sort: 11,\n        Tag: 167,\n        SymbolicName: 'ToBeAnnounced',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Other Anticipation Notes (BAN, GAN, etc.)',\n        added: 'FIX.4.3',\n        Value: 'AN',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'OtherAnticipationNotes',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Certificate Of Obligation',\n        added: 'FIX.4.3',\n        Value: 'COFO',\n        Sort: 1,\n        Tag: 167,\n        SymbolicName: 'CertificateOfObligation',\n    },\n];\n\nconst batch2: ISpecEnums[] = [\n    {\n        Group: 'Municipal',\n        Description: 'Certificate Of Participation',\n        added: 'FIX.4.3',\n        Value: 'COFP',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'CertificateOfParticipation',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'General Obligation Bonds',\n        added: 'FIX.4.3',\n        Value: 'GO',\n        Sort: 3,\n        Tag: 167,\n        SymbolicName: 'GeneralObligationBonds',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Mandatory Tender',\n        added: 'FIX.4.3',\n        Value: 'MT',\n        Sort: 4,\n        Tag: 167,\n        SymbolicName: 'MandatoryTender',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Revenue Anticipation Note',\n        added: 'FIX.4.3',\n        Value: 'RAN',\n        Sort: 5,\n        Tag: 167,\n        SymbolicName: 'RevenueAnticipationNote',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Revenue Bonds',\n        added: 'FIX.4.3',\n        Value: 'REV',\n        Sort: 6,\n        Tag: 167,\n        SymbolicName: 'RevenueBonds',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Special Assessment',\n        added: 'FIX.4.3',\n        Value: 'SPCLA',\n        Sort: 7,\n        Tag: 167,\n        SymbolicName: 'SpecialAssessment',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Special Obligation',\n        added: 'FIX.4.3',\n        Value: 'SPCLO',\n        Sort: 8,\n        Tag: 167,\n        SymbolicName: 'SpecialObligation',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Special Tax',\n        added: 'FIX.4.3',\n        Value: 'SPCLT',\n        Sort: 9,\n        Tag: 167,\n        SymbolicName: 'SpecialTax',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Tax Anticipation Note',\n        added: 'FIX.4.3',\n        Value: 'TAN',\n        Sort: 10,\n        Tag: 167,\n        SymbolicName: 'TaxAnticipationNote',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Tax Allocation',\n        added: 'FIX.4.3',\n        Value: 'TAXA',\n        Sort: 11,\n        Tag: 167,\n        SymbolicName: 'TaxAllocation',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Tax Exempt Commercial Paper',\n        added: 'FIX.4.3',\n        Value: 'TECP',\n        Sort: 12,\n        Tag: 167,\n        SymbolicName: 'TaxExemptCommercialPaper',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Taxable Municipal CP',\n        added: 'FIX.5.0',\n        Value: 'TMCP',\n        Sort: 13,\n        addedEP: 68,\n        Tag: 167,\n        SymbolicName: 'TaxableMunicipalCP',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Tax Revenue Anticipation Note',\n        added: 'FIX.4.3',\n        Value: 'TRAN',\n        Sort: 14,\n        Tag: 167,\n        SymbolicName: 'TaxRevenueAnticipationNote',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Variable Rate Demand Note',\n        added: 'FIX.4.3',\n        Value: 'VRDN',\n        Sort: 15,\n        Tag: 167,\n        SymbolicName: 'VariableRateDemandNote',\n    },\n    {\n        Group: 'Municipal',\n        Description: 'Warrant',\n        added: 'FIX.4.1',\n        Value: 'WAR',\n        Sort: 16,\n        Tag: 167,\n        SymbolicName: 'Warrant',\n    },\n    {\n        Group: 'Other',\n        Description: 'Mutual Fund',\n        added: 'FIX.4.1',\n        Value: 'MF',\n        Sort: 0,\n        Tag: 167,\n        SymbolicName: 'MutualFund',\n    },\n    {\n        Group: 'Other',\n        Description: 'Multileg Instrument',\n        added: 'FIX.4.3',\n        Value: 'MLEG',\n        Sort: 1,\n        Tag: 167,\n        SymbolicName: 'MultilegInstrument',\n    },\n    {\n        Group: 'Other',\n        Description: 'No Security Type',\n        added: 'FIX.4.1',\n        Value: 'NONE',\n        Sort: 2,\n        Tag: 167,\n        SymbolicName: 'NoSecurityType',\n    },\n    {\n        Group: 'Other',\n        Description: 'Wildcard entry for use on Security Definition Request',\n        added: 'FIX.4.2',\n        Value: '?',\n        Sort: 5,\n        Tag: 167,\n        SymbolicName: 'Wildcard',\n    },\n    {\n        Group: 'Other',\n        Description: 'Cash',\n        added: 'FIX.4.4',\n        Value: 'CASH',\n        Sort: 6,\n        addedEP: 28,\n        Tag: 167,\n        SymbolicName: 'Cash',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.1',\n        Value: '0',\n        Sort: 1,\n        Tag: 169,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'DTC SID',\n        added: 'FIX.4.1',\n        Value: '1',\n        Sort: 2,\n        Tag: 169,\n        SymbolicName: 'DTCSID',\n    },\n    {\n        Group: '',\n        Description: 'Thomson ALERT',\n        added: 'FIX.4.1',\n        Value: '2',\n        Sort: 3,\n        Tag: 169,\n        SymbolicName: 'ThomsonALERT',\n    },\n    {\n        Group: '',\n        Description: 'A Global Custodian (StandInstDBName (70) must be provided)',\n        added: 'FIX.4.1',\n        Value: '3',\n        Sort: 4,\n        Tag: 169,\n        SymbolicName: 'AGlobalCustodian',\n    },\n    {\n        Group: '',\n        Description: 'AccountNet',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 169,\n        SymbolicName: 'AccountNet',\n    },\n    {\n        Group: '',\n        Description: '\"Versus. Payment\": Deliver (if Sell) or Receive (if Buy) vs. (Against) Payment',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: 35,\n        Tag: 172,\n        SymbolicName: 'Versus',\n    },\n    {\n        Group: '',\n        Description: '\"Free\": Deliver (if Sell) or Receive (if Buy) Free',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: 35,\n        Tag: 172,\n        SymbolicName: 'Free',\n    },\n    {\n        Group: '',\n        Description: 'Tri-Party',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: 35,\n        Tag: 172,\n        SymbolicName: 'TriParty',\n    },\n    {\n        Group: '',\n        Description: 'Hold In Custody',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: 35,\n        Tag: 172,\n        SymbolicName: 'HoldInCustody',\n    },\n    {\n        Group: '',\n        Description: 'FX Netting',\n        added: 'FIX.4.1',\n        Value: '0',\n        Sort: 1,\n        Tag: 197,\n        SymbolicName: 'FXNetting',\n    },\n    {\n        Group: '',\n        Description: 'FX Swap',\n        added: 'FIX.4.1',\n        Value: '1',\n        Sort: 2,\n        Tag: 197,\n        SymbolicName: 'FXSwap',\n    },\n    {\n        Group: '',\n        Description: 'Put',\n        added: 'FIX.4.1',\n        Value: '0',\n        Sort: 1,\n        Tag: 201,\n        SymbolicName: 'Put',\n    },\n    {\n        Group: '',\n        Description: 'Call',\n        added: 'FIX.4.1',\n        Value: '1',\n        Sort: 2,\n        Tag: 201,\n        SymbolicName: 'Call',\n    },\n    {\n        Group: '',\n        Description: 'Covered',\n        added: 'FIX.4.1',\n        Value: '0',\n        Sort: 1,\n        Tag: 203,\n        SymbolicName: 'Covered',\n    },\n    {\n        Group: '',\n        Description: 'Uncovered',\n        added: 'FIX.4.1',\n        Value: '1',\n        Sort: 2,\n        Tag: 203,\n        SymbolicName: 'Uncovered',\n    },\n    {\n        Group: '',\n        Description: 'Customer',\n        added: 'FIX.4.1',\n        Value: '0',\n        Sort: 1,\n        Tag: 204,\n        SymbolicName: 'Customer',\n    },\n    {\n        Group: '',\n        Description: 'Firm',\n        added: 'FIX.4.1',\n        Value: '1',\n        Sort: 2,\n        Tag: 204,\n        SymbolicName: 'Firm',\n    },\n    {\n        Group: '',\n        Description: 'Details should not be communicated',\n        added: 'FIX.4.1',\n        Value: 'N',\n        Sort: 1,\n        Tag: 208,\n        SymbolicName: 'DetailsShouldNotBeCommunicated',\n    },\n    {\n        Group: '',\n        Description: 'Details should be communicated',\n        added: 'FIX.4.1',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 208,\n        SymbolicName: 'DetailsShouldBeCommunicated',\n    },\n    {\n        Group: '',\n        Description: 'Match',\n        added: 'FIX.4.1',\n        Value: '1',\n        Sort: 1,\n        Tag: 209,\n        SymbolicName: 'Match',\n    },\n    {\n        Group: '',\n        Description: 'Forward',\n        added: 'FIX.4.1',\n        Value: '2',\n        Sort: 2,\n        Tag: 209,\n        SymbolicName: 'Forward',\n    },\n    {\n        Group: '',\n        Description: 'Forward and Match',\n        added: 'FIX.4.1',\n        Value: '3',\n        Sort: 3,\n        Tag: 209,\n        SymbolicName: 'ForwardAndMatch',\n    },\n    {\n        Group: '',\n        Description: 'Target Firm',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 216,\n        SymbolicName: 'TargetFirm',\n    },\n    {\n        Group: '',\n        Description: 'Target List',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 216,\n        SymbolicName: 'TargetList',\n    },\n    {\n        Group: '',\n        Description: 'Block Firm',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 216,\n        SymbolicName: 'BlockFirm',\n    },\n    {\n        Group: '',\n        Description: 'Block List',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 216,\n        SymbolicName: 'BlockList',\n    },\n    {\n        Group: '',\n        Description: 'CURVE',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 219,\n        SymbolicName: 'CURVE',\n    },\n    {\n        Group: '',\n        Description: '5YR',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 219,\n        SymbolicName: 'FiveYR',\n    },\n    {\n        Group: '',\n        Description: 'OLD5',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 219,\n        SymbolicName: 'OLD5',\n    },\n    {\n        Group: '',\n        Description: '10YR',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 219,\n        SymbolicName: 'TenYR',\n    },\n    {\n        Group: '',\n        Description: 'OLD10',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 5,\n        Tag: 219,\n        SymbolicName: 'OLD10',\n    },\n    {\n        Group: '',\n        Description: '30YR',\n        added: 'FIX.4.2',\n        Value: '6',\n        Sort: 6,\n        Tag: 219,\n        SymbolicName: 'ThirtyYR',\n    },\n    {\n        Group: '',\n        Description: 'OLD30',\n        added: 'FIX.4.2',\n        Value: '7',\n        Sort: 7,\n        Tag: 219,\n        SymbolicName: 'OLD30',\n    },\n    {\n        Group: '',\n        Description: '3MOLIBOR',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 8,\n        Tag: 219,\n        SymbolicName: 'ThreeMOLIBOR',\n    },\n    {\n        Group: '',\n        Description: '6MOLIBOR',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 9,\n        Tag: 219,\n        SymbolicName: 'SixMOLIBOR',\n    },\n    {\n        Group: '',\n        Description: 'EONIA',\n        added: 'FIX.4.4',\n        Value: 'EONIA',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 221,\n        SymbolicName: 'EONIA',\n    },\n    {\n        Group: '',\n        Description: 'EUREPO',\n        added: 'FIX.4.4',\n        Value: 'EUREPO',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 221,\n        SymbolicName: 'EUREPO',\n    },\n    {\n        Group: '',\n        Description: 'Euribor',\n        added: 'FIX.4.3',\n        Value: 'Euribor',\n        Sort: 3,\n        Tag: 221,\n        SymbolicName: 'Euribor',\n    },\n    {\n        Group: '',\n        Description: 'FutureSWAP',\n        added: 'FIX.4.3',\n        Value: 'FutureSWAP',\n        Sort: 4,\n        Tag: 221,\n        SymbolicName: 'FutureSWAP',\n    },\n    {\n        Group: '',\n        Description: 'LIBID',\n        added: 'FIX.4.3',\n        Value: 'LIBID',\n        Sort: 5,\n        Tag: 221,\n        SymbolicName: 'LIBID',\n    },\n    {\n        Group: '',\n        Description: 'LIBOR (London Inter-Bank Offer)',\n        added: 'FIX.4.3',\n        Value: 'LIBOR',\n        Sort: 6,\n        Tag: 221,\n        SymbolicName: 'LIBOR',\n    },\n    {\n        Group: '',\n        Description: 'MuniAAA',\n        added: 'FIX.4.3',\n        Value: 'MuniAAA',\n        Sort: 7,\n        Tag: 221,\n        SymbolicName: 'MuniAAA',\n    },\n    {\n        Group: '',\n        Description: 'OTHER',\n        added: 'FIX.4.3',\n        Value: 'OTHER',\n        Sort: 8,\n        Tag: 221,\n        SymbolicName: 'OTHER',\n    },\n    {\n        Group: '',\n        Description: 'Pfandbriefe',\n        added: 'FIX.4.3',\n        Value: 'Pfandbriefe',\n        Sort: 9,\n        Tag: 221,\n        SymbolicName: 'Pfandbriefe',\n    },\n    {\n        Group: '',\n        Description: 'SONIA',\n        added: 'FIX.4.4',\n        Value: 'SONIA',\n        Sort: 10,\n        addedEP: -1,\n        Tag: 221,\n        SymbolicName: 'SONIA',\n    },\n    {\n        Group: '',\n        Description: 'SWAP',\n        added: 'FIX.4.3',\n        Value: 'SWAP',\n        Sort: 11,\n        Tag: 221,\n        SymbolicName: 'SWAP',\n    },\n    {\n        Group: '',\n        Description: 'Treasury',\n        added: 'FIX.4.3',\n        Value: 'Treasury',\n        Sort: 12,\n        Tag: 221,\n        SymbolicName: 'Treasury',\n    },\n    {\n        Group: '',\n        Description: 'Alternative Minimum Tax (Y/N)',\n        added: 'FIX.4.4',\n        Value: 'AMT',\n        Sort: 1,\n        Tag: 233,\n        SymbolicName: 'AlternativeMinimumTax',\n    },\n    {\n        Group: '',\n        Description: 'Auto Reinvestment at <rate> or better',\n        added: 'FIX.4.4',\n        Value: 'AUTOREINV',\n        Sort: 2,\n        Tag: 233,\n        SymbolicName: 'AutoReinvestment',\n    },\n    {\n        Group: '',\n        Description: 'Bank qualified (Y/N)',\n        added: 'FIX.4.4',\n        Value: 'BANKQUAL',\n        Sort: 3,\n        Tag: 233,\n        SymbolicName: 'BankQualified',\n    },\n    {\n        Group: '',\n        Description: 'Bargain conditions (see StipulationValue (234) for values)',\n        added: 'FIX.4.4',\n        Value: 'BGNCON',\n        Sort: 4,\n        Tag: 233,\n        SymbolicName: 'BargainConditions',\n    },\n    {\n        Group: '',\n        Description: 'Coupon range',\n        added: 'FIX.4.4',\n        Value: 'COUPON',\n        Sort: 5,\n        Tag: 233,\n        SymbolicName: 'CouponRange',\n    },\n    {\n        Group: '',\n        Description: 'ISO Currency Code',\n        added: 'FIX.4.4',\n        Value: 'CURRENCY',\n        Sort: 6,\n        Tag: 233,\n        SymbolicName: 'ISOCurrencyCode',\n    },\n    {\n        Group: '',\n        Description: 'Custom start/end date',\n        added: 'FIX.4.4',\n        Value: 'CUSTOMDATE',\n        Sort: 7,\n        Tag: 233,\n        SymbolicName: 'CustomStart',\n    },\n    {\n        Group: '',\n        Description: 'Geographics and % range (ex. 234=CA 0-80 [minimum of 80% California assets])',\n        added: 'FIX.4.3',\n        Value: 'GEOG',\n        Sort: 8,\n        Tag: 233,\n        SymbolicName: 'Geographics',\n    },\n    {\n        Group: '',\n        Description: 'Valuation Discount',\n        added: 'FIX.4.4',\n        Value: 'HAIRCUT',\n        Sort: 9,\n        Tag: 233,\n        SymbolicName: 'ValuationDiscount',\n    },\n    {\n        Group: '',\n        Description: 'Insured (Y/N)',\n        added: 'FIX.4.4',\n        Value: 'INSURED',\n        Sort: 10,\n        Tag: 233,\n        SymbolicName: 'Insured',\n    },\n    {\n        Group: '',\n        Description: 'Year Or Year/Month of Issue (ex. 234=2002/09)',\n        added: 'FIX.4.3',\n        Value: 'ISSUE',\n        Sort: 11,\n        Tag: 233,\n        SymbolicName: 'IssueDate',\n    },\n    {\n        Group: '',\n        Description: \"Issuer's ticker\",\n        added: 'FIX.4.4',\n        Value: 'ISSUER',\n        Sort: 12,\n        Tag: 233,\n        SymbolicName: 'Issuer',\n    },\n    {\n        Group: '',\n        Description: 'issue size range',\n        added: 'FIX.4.4',\n        Value: 'ISSUESIZE',\n        Sort: 13,\n        Tag: 233,\n        SymbolicName: 'IssueSizeRange',\n    },\n    {\n        Group: '',\n        Description: 'Lookback Days',\n        added: 'FIX.4.4',\n        Value: 'LOOKBACK',\n        Sort: 14,\n        Tag: 233,\n        SymbolicName: 'LookbackDays',\n    },\n    {\n        Group: '',\n        Description: 'Explicit lot identifier',\n        added: 'FIX.4.4',\n        Value: 'LOT',\n        Sort: 15,\n        Tag: 233,\n        SymbolicName: 'ExplicitLotIdentifier',\n    },\n    {\n        Group: '',\n        Description: 'Lot Variance (value in percent maximum over- or under-allocation allowed)',\n        added: 'FIX.4.3',\n        Value: 'LOTVAR',\n        Sort: 16,\n        Tag: 233,\n        SymbolicName: 'LotVariance',\n    },\n    {\n        Group: '',\n        Description: 'Maturity Year And Month',\n        added: 'FIX.4.3',\n        Value: 'MAT',\n        Sort: 17,\n        Tag: 233,\n        SymbolicName: 'MaturityYearAndMonth',\n    },\n    {\n        Group: '',\n        Description: 'Maturity range',\n        added: 'FIX.4.4',\n        Value: 'MATURITY',\n        Sort: 18,\n        Tag: 233,\n        SymbolicName: 'MaturityRange',\n    },\n    {\n        Group: '',\n        Description: 'Maximum substitutions (Repo)',\n        added: 'FIX.4.4',\n        Value: 'MAXSUBS',\n        Sort: 19,\n        Tag: 233,\n        SymbolicName: 'MaximumSubstitutions',\n    },\n    {\n        Group: '',\n        Description: 'Minimum denomination',\n        added: 'FIX.4.4',\n        Value: 'MINDNOM',\n        Sort: 20,\n        Tag: 233,\n        SymbolicName: 'MinimumDenomination',\n    },\n    {\n        Group: '',\n        Description: 'Minimum increment',\n        added: 'FIX.4.4',\n        Value: 'MININCR',\n        Sort: 21,\n        Tag: 233,\n        SymbolicName: 'MinimumIncrement',\n    },\n    {\n        Group: '',\n        Description: 'Minimum quantity',\n        added: 'FIX.4.4',\n        Value: 'MINQTY',\n        Sort: 22,\n        Tag: 233,\n        SymbolicName: 'MinimumQuantity',\n    },\n    {\n        Group: '',\n        Description: 'Payment frequency, calendar',\n        added: 'FIX.4.4',\n        Value: 'PAYFREQ',\n        Sort: 23,\n        Tag: 233,\n        SymbolicName: 'PaymentFrequency',\n    },\n    {\n        Group: '',\n        Description: 'Number Of Pieces',\n        added: 'FIX.4.3',\n        Value: 'PIECES',\n        Sort: 24,\n        Tag: 233,\n        SymbolicName: 'NumberOfPieces',\n    },\n    {\n        Group: '',\n        Description: 'Pools Maximum',\n        added: 'FIX.4.3',\n        Value: 'PMAX',\n        Sort: 25,\n        Tag: 233,\n        SymbolicName: 'PoolsMaximum',\n    },\n    {\n        Group: '',\n        Description: 'Pools per Lot',\n        added: 'FIX.4.3',\n        Value: 'PPL',\n        Sort: 26,\n        Tag: 233,\n        SymbolicName: 'PoolsPerLot',\n    },\n    {\n        Group: '',\n        Description: 'Pools per Million',\n        added: 'FIX.4.3',\n        Value: 'PPM',\n        Sort: 27,\n        Tag: 233,\n        SymbolicName: 'PoolsPerMillion',\n    },\n    {\n        Group: '',\n        Description: 'Pools per Trade',\n        added: 'FIX.4.3',\n        Value: 'PPT',\n        Sort: 28,\n        Tag: 233,\n        SymbolicName: 'PoolsPerTrade',\n    },\n    {\n        Group: '',\n        Description: 'Price Range',\n        added: 'FIX.4.4',\n        Value: 'PRICE',\n        Sort: 29,\n        Tag: 233,\n        SymbolicName: 'PriceRange',\n    },\n    {\n        Group: '',\n        Description: 'Pricing frequency',\n        added: 'FIX.4.4',\n        Value: 'PRICEFREQ',\n        Sort: 30,\n        Tag: 233,\n        SymbolicName: 'PricingFrequency',\n    },\n    {\n        Group: '',\n        Description: 'Production Year',\n        added: 'FIX.4.3',\n        Value: 'PROD',\n        Sort: 31,\n        Tag: 233,\n        SymbolicName: 'ProductionYear',\n    },\n    {\n        Group: '',\n        Description: 'Call protection',\n        added: 'FIX.4.4',\n        Value: 'PROTECT',\n        Sort: 32,\n        Tag: 233,\n        SymbolicName: 'CallProtection',\n    },\n    {\n        Group: '',\n        Description: 'Purpose',\n        added: 'FIX.4.4',\n        Value: 'PURPOSE',\n        Sort: 33,\n        Tag: 233,\n        SymbolicName: 'Purpose',\n    },\n    {\n        Group: '',\n        Description: 'Benchmark price source',\n        added: 'FIX.4.4',\n        Value: 'PXSOURCE',\n        Sort: 34,\n        Tag: 233,\n        SymbolicName: 'BenchmarkPriceSource',\n    },\n    {\n        Group: '',\n        Description: 'Rating source and range',\n        added: 'FIX.4.4',\n        Value: 'RATING',\n        Sort: 35,\n        Tag: 233,\n        SymbolicName: 'RatingSourceAndRange',\n    },\n    {\n        Group: '',\n        Description:\n            'Type Of Redemption - values are: NonCallable, Prefunded, EscrowedToMaturity, Putable, Convertible',\n        added: 'FIX.4.4',\n        Value: 'REDEMPTION',\n        Sort: 36,\n        Tag: 233,\n        SymbolicName: 'TypeOfRedemption',\n    },\n    {\n        Group: '',\n        Description: 'Restricted (Y/N)',\n        added: 'FIX.4.4',\n        Value: 'RESTRICTED',\n        Sort: 37,\n        Tag: 233,\n        SymbolicName: 'Restricted',\n    },\n    {\n        Group: '',\n        Description: 'Market Sector',\n        added: 'FIX.4.4',\n        Value: 'SECTOR',\n        Sort: 38,\n        Tag: 233,\n        SymbolicName: 'MarketSector',\n    },\n    {\n        Group: '',\n        Description: 'Security Type included or excluded',\n        added: 'FIX.4.4',\n        Value: 'SECTYPE',\n        Sort: 39,\n        Tag: 233,\n        SymbolicName: 'SecurityTypeIncludedOrExcluded',\n    },\n    {\n        Group: '',\n        Description: 'Structure',\n        added: 'FIX.4.4',\n        Value: 'STRUCT',\n        Sort: 40,\n        Tag: 233,\n        SymbolicName: 'Structure',\n    },\n    {\n        Group: '',\n        Description: 'Substitutions frequency (Repo)',\n        added: 'FIX.4.4',\n        Value: 'SUBSFREQ',\n        Sort: 41,\n        Tag: 233,\n        SymbolicName: 'SubstitutionsFrequency',\n    },\n    {\n        Group: '',\n        Description: 'Substitutions left (Repo)',\n        added: 'FIX.4.4',\n        Value: 'SUBSLEFT',\n        Sort: 42,\n        Tag: 233,\n        SymbolicName: 'SubstitutionsLeft',\n    },\n    {\n        Group: '',\n        Description: 'Freeform Text',\n        added: 'FIX.4.4',\n        Value: 'TEXT',\n        Sort: 43,\n        Tag: 233,\n        SymbolicName: 'FreeformText',\n    },\n    {\n        Group: '',\n        Description: 'Trade Variance (value in percent maximum over- or under-allocation allowed)',\n        added: 'FIX.4.3',\n        Value: 'TRDVAR',\n        Sort: 44,\n        Tag: 233,\n        SymbolicName: 'TradeVariance',\n    },\n    {\n        Group: '',\n        Description:\n            'Weighted Average Coupon - value in percent (exact or range) plus \"Gross\" or \"Net\" of servicing spread (the default) (ex. 234=6.5-Net [minimum of 6.5% net of servicing fee])',\n        added: 'FIX.4.3',\n        Value: 'WAC',\n        Sort: 45,\n        Tag: 233,\n        SymbolicName: 'WeightedAverageCoupon',\n    },\n    {\n        Group: '',\n        Description: 'Weighted Average Life Coupon - value in percent (exact or range)',\n        added: 'FIX.4.3',\n        Value: 'WAL',\n        Sort: 46,\n        Tag: 233,\n        SymbolicName: 'WeightedAverageLifeCoupon',\n    },\n    {\n        Group: '',\n        Description: 'Weighted Average Loan Age - value in months (exact or range)',\n        added: 'FIX.4.3',\n        Value: 'WALA',\n        Sort: 47,\n        Tag: 233,\n        SymbolicName: 'WeightedAverageLoanAge',\n    },\n    {\n        Group: '',\n        Description: 'Weighted Average Maturity - value in months (exact or range)',\n        added: 'FIX.4.3',\n        Value: 'WAM',\n        Sort: 48,\n        Tag: 233,\n        SymbolicName: 'WeightedAverageMaturity',\n    },\n    {\n        Group: '',\n        Description: 'Whole Pool (Y/N)',\n        added: 'FIX.4.4',\n        Value: 'WHOLE',\n        Sort: 49,\n        Tag: 233,\n        SymbolicName: 'WholePool',\n    },\n    {\n        Group: '',\n        Description: 'Yield Range',\n        added: 'FIX.4.4',\n        Value: 'YIELD',\n        Sort: 50,\n        Tag: 233,\n        SymbolicName: 'YieldRange',\n    },\n    {\n        Group: 'Other',\n        Description: 'Average FICO Score',\n        added: 'FIX.5.0',\n        Value: 'AVFICO',\n        Sort: 51,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'AverageFICOScore',\n    },\n    {\n        Group: 'Other',\n        Description: 'Average Loan Size',\n        added: 'FIX.5.0',\n        Value: 'AVSIZE',\n        Sort: 52,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'AverageLoanSize',\n    },\n    {\n        Group: 'Other',\n        Description: 'Maximum Loan Balance',\n        added: 'FIX.5.0',\n        Value: 'MAXBAL',\n        Sort: 53,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'MaximumLoanBalance',\n    },\n    {\n        Group: 'Other',\n        Description: 'Pool Identifier',\n        added: 'FIX.5.0',\n        Value: 'POOL',\n        Sort: 54,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'PoolIdentifier',\n    },\n    {\n        Group: 'Other',\n        Description: 'Type of Roll trade',\n        added: 'FIX.5.0',\n        Value: 'ROLLTYPE',\n        Sort: 55,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'TypeOfRollTrade',\n    },\n    {\n        Group: 'Other',\n        Description: 'reference to rolling or closing trade',\n        added: 'FIX.5.0',\n        Value: 'REFTRADE',\n        Sort: 56,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'ReferenceToRollingOrClosingTrade',\n    },\n    {\n        Group: 'Other',\n        Description: 'principal of rolling or closing trade',\n        added: 'FIX.5.0',\n        Value: 'REFPRIN',\n        Sort: 57,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'PrincipalOfRollingOrClosingTrade',\n    },\n    {\n        Group: 'Other',\n        Description: 'interest of rolling or closing trade',\n        added: 'FIX.5.0',\n        Value: 'REFINT',\n        Sort: 58,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'InterestOfRollingOrClosingTrade',\n    },\n    {\n        Group: 'Other',\n        Description: 'Available offer quantity to be shown to the street',\n        added: 'FIX.5.0',\n        Value: 'AVAILQTY',\n        Sort: 59,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'AvailableOfferQuantityToBeShownToTheStreet',\n    },\n    {\n        Group: 'Other',\n        Description: \"Broker's sales credit\",\n        added: 'FIX.5.0',\n        Value: 'BROKERCREDIT',\n        Sort: 60,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'BrokerCredit',\n    },\n    {\n        Group: 'Other',\n        Description: 'Offer price to be shown to internal brokers',\n        added: 'FIX.5.0',\n        Value: 'INTERNALPX',\n        Sort: 61,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'OfferPriceToBeShownToInternalBrokers',\n    },\n    {\n        Group: 'Other',\n        Description: 'Offer quantity to be shown to internal brokers',\n        added: 'FIX.5.0',\n        Value: 'INTERNALQTY',\n        Sort: 62,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'OfferQuantityToBeShownToInternalBrokers',\n    },\n    {\n        Group: 'Other',\n        Description: 'The minimum residual offer quantity',\n        added: 'FIX.5.0',\n        Value: 'LEAVEQTY',\n        Sort: 63,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'TheMinimumResidualOfferQuantity',\n    },\n    {\n        Group: 'Other',\n        Description: 'Maximum order size',\n        added: 'FIX.5.0',\n        Value: 'MAXORDQTY',\n        Sort: 64,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'MaximumOrderSize',\n    },\n    {\n        Group: 'Other',\n        Description: 'Order quantity increment',\n        added: 'FIX.5.0',\n        Value: 'ORDRINCR',\n        Sort: 65,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'OrderQuantityIncrement',\n    },\n    {\n        Group: 'Other',\n        Description: 'Primary or Secondary market indicator',\n        added: 'FIX.5.0',\n        Value: 'PRIMARY',\n        Sort: 66,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'PrimaryOrSecondaryMarketIndicator',\n    },\n    {\n        Group: 'Other',\n        Description: 'Broker sales credit override',\n        added: 'FIX.5.0',\n        Value: 'SALESCREDITOVR',\n        Sort: 67,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'BrokerSalesCreditOverride',\n    },\n    {\n        Group: 'Other',\n        Description: \"Trader's credit\",\n        added: 'FIX.5.0',\n        Value: 'TRADERCREDIT',\n        Sort: 68,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'TraderCredit',\n    },\n    {\n        Group: 'Other',\n        Description: 'Discount Rate (when price is denominated in percent of par)',\n        added: 'FIX.5.0',\n        Value: 'DISCOUNT',\n        Sort: 69,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'DiscountRate',\n    },\n    {\n        Group: 'Other',\n        Description: 'Yield to Maturity (when YieldType(235) and Yield(236) show a different yield)',\n        added: 'FIX.5.0',\n        Value: 'YTM',\n        Sort: 71,\n        addedEP: 68,\n        Tag: 233,\n        SymbolicName: 'YieldToMaturity',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Absolute Prepayment Speed',\n        added: 'FIX.4.3',\n        Value: 'ABS',\n        Sort: 1,\n        Tag: 233,\n        SymbolicName: 'AbsolutePrepaymentSpeed',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Constant Prepayment Penalty',\n        added: 'FIX.4.3',\n        Value: 'CPP',\n        Sort: 2,\n        Tag: 233,\n        SymbolicName: 'ConstantPrepaymentPenalty',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Constant Prepayment Rate',\n        added: 'FIX.4.3',\n        Value: 'CPR',\n        Sort: 3,\n        Tag: 233,\n        SymbolicName: 'ConstantPrepaymentRate',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Constant Prepayment Yield',\n        added: 'FIX.4.3',\n        Value: 'CPY',\n        Sort: 4,\n        Tag: 233,\n        SymbolicName: 'ConstantPrepaymentYield',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'final CPR of Home Equity Prepayment Curve',\n        added: 'FIX.4.3',\n        Value: 'HEP',\n        Sort: 5,\n        Tag: 233,\n        SymbolicName: 'FinalCPROfHomeEquityPrepaymentCurve',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Percent of Manufactured Housing Prepayment Curve',\n        added: 'FIX.4.3',\n        Value: 'MHP',\n        Sort: 6,\n        Tag: 233,\n        SymbolicName: 'PercentOfManufacturedHousingPrepaymentCurve',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Monthly Prepayment Rate',\n        added: 'FIX.4.3',\n        Value: 'MPR',\n        Sort: 7,\n        Tag: 233,\n        SymbolicName: 'MonthlyPrepaymentRate',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Percent of Prospectus Prepayment Curve',\n        added: 'FIX.4.3',\n        Value: 'PPC',\n        Sort: 8,\n        Tag: 233,\n        SymbolicName: 'PercentOfProspectusPrepaymentCurve',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Percent of BMA Prepayment Curve',\n        added: 'FIX.4.3',\n        Value: 'PSA',\n        Sort: 9,\n        Tag: 233,\n        SymbolicName: 'PercentOfBMAPrepaymentCurve',\n    },\n    {\n        Group: 'Prepayment Speeds',\n        Description: 'Single Monthly Mortality',\n        added: 'FIX.4.3',\n        Value: 'SMM',\n        Sort: 10,\n        Tag: 233,\n        SymbolicName: 'SingleMonthlyMortality',\n    },\n    {\n        Group: '',\n        Description: 'After Tax Yield (Municipals)',\n        added: 'FIX.4.3',\n        Value: 'AFTERTAX',\n        Sort: 1,\n        Tag: 235,\n        SymbolicName: 'AfterTaxYield',\n    },\n    {\n        Group: '',\n        Description: 'Annual Yield',\n        added: 'FIX.4.3',\n        Value: 'ANNUAL',\n        Sort: 2,\n        Tag: 235,\n        SymbolicName: 'AnnualYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield At Issue (Municipals)',\n        added: 'FIX.4.3',\n        Value: 'ATISSUE',\n        Sort: 3,\n        Tag: 235,\n        SymbolicName: 'YieldAtIssue',\n    },\n    {\n        Group: '',\n        Description: 'Yield To Avg Maturity',\n        added: 'FIX.4.3',\n        Value: 'AVGMATURITY',\n        Sort: 4,\n        Tag: 235,\n        SymbolicName: 'YieldToAverageMaturity',\n    },\n    {\n        Group: '',\n        Description: 'Book Yield',\n        added: 'FIX.4.3',\n        Value: 'BOOK',\n        Sort: 5,\n        Tag: 235,\n        SymbolicName: 'BookYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield to Next Call',\n        added: 'FIX.4.3',\n        Value: 'CALL',\n        Sort: 6,\n        Tag: 235,\n        SymbolicName: 'YieldToNextCall',\n    },\n    {\n        Group: '',\n        Description: 'Yield Change Since Close',\n        added: 'FIX.4.3',\n        Value: 'CHANGE',\n        Sort: 7,\n        Tag: 235,\n        SymbolicName: 'YieldChangeSinceClose',\n    },\n    {\n        Group: '',\n        Description: 'Closing Yield',\n        added: 'FIX.4.3',\n        Value: 'CLOSE',\n        Sort: 8,\n        Tag: 235,\n        SymbolicName: 'ClosingYield',\n    },\n    {\n        Group: '',\n        Description: 'Compound Yield',\n        added: 'FIX.4.3',\n        Value: 'COMPOUND',\n        Sort: 9,\n        Tag: 235,\n        SymbolicName: 'CompoundYield',\n    },\n    {\n        Group: '',\n        Description: 'Current Yield',\n        added: 'FIX.4.3',\n        Value: 'CURRENT',\n        Sort: 10,\n        Tag: 235,\n        SymbolicName: 'CurrentYield',\n    },\n    {\n        Group: '',\n        Description: 'Gvnt Equivalent Yield',\n        added: 'FIX.4.3',\n        Value: 'GOVTEQUIV',\n        Sort: 11,\n        Tag: 235,\n        SymbolicName: 'GvntEquivalentYield',\n    },\n    {\n        Group: '',\n        Description: 'True Gross Yield',\n        added: 'FIX.4.3',\n        Value: 'GROSS',\n        Sort: 12,\n        Tag: 235,\n        SymbolicName: 'TrueGrossYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield with Inflation Assumption',\n        added: 'FIX.4.3',\n        Value: 'INFLATION',\n        Sort: 13,\n        Tag: 235,\n        SymbolicName: 'YieldWithInflationAssumption',\n    },\n    {\n        Group: '',\n        Description: 'Inverse Floater Bond Yield',\n        added: 'FIX.4.3',\n        Value: 'INVERSEFLOATER',\n        Sort: 14,\n        Tag: 235,\n        SymbolicName: 'InverseFloaterBondYield',\n    },\n    {\n        Group: '',\n        Description: 'Most Recent Closing Yield',\n        added: 'FIX.4.3',\n        Value: 'LASTCLOSE',\n        Sort: 15,\n        Tag: 235,\n        SymbolicName: 'MostRecentClosingYield',\n    },\n    {\n        Group: '',\n        Description: 'Closing Yield Most Recent Month',\n        added: 'FIX.4.3',\n        Value: 'LASTMONTH',\n        Sort: 16,\n        Tag: 235,\n        SymbolicName: 'ClosingYieldMostRecentMonth',\n    },\n    {\n        Group: '',\n        Description: 'Closing Yield Most Recent Quarter',\n        added: 'FIX.4.3',\n        Value: 'LASTQUARTER',\n        Sort: 17,\n        Tag: 235,\n        SymbolicName: 'ClosingYieldMostRecentQuarter',\n    },\n    {\n        Group: '',\n        Description: 'Closing Yield Most Recent Year',\n        added: 'FIX.4.3',\n        Value: 'LASTYEAR',\n        Sort: 18,\n        Tag: 235,\n        SymbolicName: 'ClosingYieldMostRecentYear',\n    },\n    {\n        Group: '',\n        Description: 'Yield to Longest Average Life',\n        added: 'FIX.4.3',\n        Value: 'LONGAVGLIFE',\n        Sort: 19,\n        Tag: 235,\n        SymbolicName: 'YieldToLongestAverageLife',\n    },\n    {\n        Group: '',\n        Description: 'Mark to Market Yield',\n        added: 'FIX.4.3',\n        Value: 'MARK',\n        Sort: 20,\n        Tag: 235,\n        SymbolicName: 'MarkToMarketYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield to Maturity',\n        added: 'FIX.4.3',\n        Value: 'MATURITY',\n        Sort: 21,\n        Tag: 235,\n        SymbolicName: 'YieldToMaturity',\n    },\n    {\n        Group: '',\n        Description: 'Yield to Next Refund (Sinking Fund Bonds)',\n        added: 'FIX.4.3',\n        Value: 'NEXTREFUND',\n        Sort: 22,\n        Tag: 235,\n        SymbolicName: 'YieldToNextRefund',\n    },\n    {\n        Group: '',\n        Description: 'Open Average Yield',\n        added: 'FIX.4.3',\n        Value: 'OPENAVG',\n        Sort: 23,\n        Tag: 235,\n        SymbolicName: 'OpenAverageYield',\n    },\n    {\n        Group: '',\n        Description: 'Previous Close Yield',\n        added: 'FIX.4.3',\n        Value: 'PREVCLOSE',\n        Sort: 24,\n        Tag: 235,\n        SymbolicName: 'PreviousCloseYield',\n    },\n    {\n        Group: '',\n        Description: 'Proceeds Yield',\n        added: 'FIX.4.3',\n        Value: 'PROCEEDS',\n        Sort: 25,\n        Tag: 235,\n        SymbolicName: 'ProceedsYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield to Next Put',\n        added: 'FIX.4.3',\n        Value: 'PUT',\n        Sort: 26,\n        Tag: 235,\n        SymbolicName: 'YieldToNextPut',\n    },\n    {\n        Group: '',\n        Description: 'Semi-annual Yield',\n        added: 'FIX.4.3',\n        Value: 'SEMIANNUAL',\n        Sort: 27,\n        Tag: 235,\n        SymbolicName: 'SemiAnnualYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield to Shortest Average Life',\n        added: 'FIX.4.3',\n        Value: 'SHORTAVGLIFE',\n        Sort: 28,\n        Tag: 235,\n        SymbolicName: 'YieldToShortestAverageLife',\n    },\n    {\n        Group: '',\n        Description: 'Simple Yield',\n        added: 'FIX.4.3',\n        Value: 'SIMPLE',\n        Sort: 29,\n        Tag: 235,\n        SymbolicName: 'SimpleYield',\n    },\n    {\n        Group: '',\n        Description: 'Tax Equivalent Yield',\n        added: 'FIX.4.3',\n        Value: 'TAXEQUIV',\n        Sort: 30,\n        Tag: 235,\n        SymbolicName: 'TaxEquivalentYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield to Tender Date',\n        added: 'FIX.4.3',\n        Value: 'TENDER',\n        Sort: 31,\n        Tag: 235,\n        SymbolicName: 'YieldToTenderDate',\n    },\n    {\n        Group: '',\n        Description: 'True Yield',\n        added: 'FIX.4.3',\n        Value: 'True',\n        Sort: 32,\n        Tag: 235,\n        SymbolicName: 'TrueYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield Value Of 1/32',\n        added: 'FIX.4.4',\n        Value: 'VALUE1_32',\n        Sort: 33,\n        addedEP: -1,\n        Tag: 235,\n        SymbolicName: 'YieldValueOf32nds',\n    },\n    {\n        Group: '',\n        Description: 'Yield To Worst',\n        added: 'FIX.4.3',\n        Value: 'WORST',\n        Sort: 34,\n        Tag: 235,\n        SymbolicName: 'YieldToWorst',\n    },\n    {\n        Group: '',\n        Description: 'Not Traded Flat',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 1,\n        Tag: 258,\n        SymbolicName: 'NotTradedFlat',\n    },\n    {\n        Group: '',\n        Description: 'Traded Flat',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 258,\n        SymbolicName: 'TradedFlat',\n    },\n    {\n        Group: '',\n        Description: 'Snapshot',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 263,\n        SymbolicName: 'Snapshot',\n    },\n    {\n        Group: '',\n        Description: 'Snapshot + Updates (Subscribe)',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 263,\n        SymbolicName: 'SnapshotAndUpdates',\n    },\n    {\n        Group: '',\n        Description: 'Disable previous Snapshot + Update Request (Unsubscribe)',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 263,\n        SymbolicName: 'DisablePreviousSnapshot',\n    },\n    {\n        Group: '',\n        Description: 'Full refresh',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        Value: '0',\n        Sort: 1,\n        Tag: 265,\n        SymbolicName: 'FullRefresh',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Incremental refresh',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        Value: '1',\n        Sort: 2,\n        Tag: 265,\n        SymbolicName: 'IncrementalRefresh',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'book entries to be aggregated',\n        added: 'FIX.4.4',\n        Value: 'Y',\n        Sort: 1,\n        addedEP: 34,\n        Tag: 266,\n        SymbolicName: 'BookEntriesToBeAggregated',\n    },\n    {\n        Group: '',\n        Description: 'book entries should not be aggregated',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 2,\n        addedEP: 34,\n        Tag: 266,\n        SymbolicName: 'BookEntriesShouldNotBeAggregated',\n    },\n    {\n        Group: '',\n        Description: 'Bid',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 269,\n        SymbolicName: 'Bid',\n    },\n    {\n        Group: '',\n        Description: 'Offer',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 269,\n        SymbolicName: 'Offer',\n    },\n    {\n        Group: '',\n        Description: 'Trade',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 269,\n        SymbolicName: 'Trade',\n    },\n    {\n        Group: '',\n        Description: 'Index Value',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 4,\n        Tag: 269,\n        SymbolicName: 'IndexValue',\n    },\n    {\n        Group: '',\n        Description: 'Opening Price',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 5,\n        Tag: 269,\n        SymbolicName: 'OpeningPrice',\n    },\n    {\n        Group: '',\n        Description: 'Closing Price',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 6,\n        Tag: 269,\n        SymbolicName: 'ClosingPrice',\n    },\n    {\n        Group: '',\n        Description: 'Settlement Price',\n        added: 'FIX.4.2',\n        Value: '6',\n        Sort: 7,\n        Tag: 269,\n        SymbolicName: 'SettlementPrice',\n    },\n    {\n        Group: '',\n        Description: 'Trading Session High Price',\n        added: 'FIX.4.2',\n        Value: '7',\n        Sort: 8,\n        Tag: 269,\n        SymbolicName: 'TradingSessionHighPrice',\n    },\n    {\n        Group: '',\n        Description: 'Trading Session Low Price',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 9,\n        Tag: 269,\n        SymbolicName: 'TradingSessionLowPrice',\n    },\n    {\n        Group: '',\n        Description: 'Trading Session VWAP Price',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 10,\n        Tag: 269,\n        SymbolicName: 'TradingSessionVWAPPrice',\n    },\n    {\n        Group: '',\n        Description: 'Imbalance',\n        added: 'FIX.4.3',\n        Value: 'A',\n        Sort: 11,\n        Tag: 269,\n        SymbolicName: 'Imbalance',\n    },\n    {\n        Group: '',\n        Description: 'Trade Volume',\n        added: 'FIX.4.4',\n        Value: 'B',\n        Sort: 12,\n        Tag: 269,\n        SymbolicName: 'TradeVolume',\n    },\n    {\n        Group: '',\n        Description: 'Open Interest',\n        added: 'FIX.4.4',\n        Value: 'C',\n        Sort: 13,\n        Tag: 269,\n        SymbolicName: 'OpenInterest',\n    },\n    {\n        Group: '',\n        Description: 'Composite Underlying Price',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 14,\n        addedEP: 4,\n        Tag: 269,\n        SymbolicName: 'CompositeUnderlyingPrice',\n    },\n    {\n        Group: '',\n        Description: 'Simulated Sell Price',\n        added: 'FIX.4.4',\n        Value: 'E',\n        Sort: 15,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'SimulatedSellPrice',\n    },\n    {\n        Group: '',\n        Description: 'Simulated Buy Price',\n        added: 'FIX.4.4',\n        Value: 'F',\n        Sort: 16,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'SimulatedBuyPrice',\n    },\n    {\n        Group: '',\n        Description: 'Margin Rate',\n        added: 'FIX.4.4',\n        Value: 'G',\n        Sort: 17,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'MarginRate',\n    },\n    {\n        Group: '',\n        Description: 'Mid Price',\n        added: 'FIX.4.4',\n        Value: 'H',\n        Sort: 18,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'MidPrice',\n    },\n    {\n        Group: '',\n        Description: 'Empty Book',\n        added: 'FIX.4.4',\n        Value: 'J',\n        Sort: 19,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'EmptyBook',\n    },\n    {\n        Group: '',\n        Description: 'Settle High Price',\n        added: 'FIX.4.4',\n        Value: 'K',\n        Sort: 20,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'SettleHighPrice',\n    },\n    {\n        Group: '',\n        Description: 'Settle Low Price',\n        added: 'FIX.4.4',\n        Value: 'L',\n        Sort: 21,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'SettleLowPrice',\n    },\n    {\n        Group: '',\n        Description: 'Prior Settle Price',\n        added: 'FIX.4.4',\n        Value: 'M',\n        Sort: 22,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'PriorSettlePrice',\n    },\n    {\n        Group: '',\n        Description: 'Session High Bid',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 23,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'SessionHighBid',\n    },\n    {\n        Group: '',\n        Description: 'Session Low Offer',\n        added: 'FIX.4.4',\n        Value: 'O',\n        Sort: 24,\n        addedEP: 7,\n        Tag: 269,\n        SymbolicName: 'SessionLowOffer',\n    },\n    {\n        Group: '',\n        Description: 'Early Prices',\n        added: 'FIX.4.4',\n        Value: 'P',\n        Sort: 25,\n        addedEP: 8,\n        Tag: 269,\n        SymbolicName: 'EarlyPrices',\n    },\n    {\n        Group: '',\n        Description: 'Auction Clearing Price',\n        added: 'FIX.4.4',\n        Value: 'Q',\n        Sort: 26,\n        addedEP: 26,\n        Tag: 269,\n        SymbolicName: 'AuctionClearingPrice',\n    },\n    {\n        Group: '',\n        Description: 'Swap Value Factor (SVP) for swaps cleared through a central counterparty (CCP)',\n        added: 'FIX.5.0',\n        Value: 'S',\n        Sort: 27,\n        addedEP: 54,\n        Tag: 269,\n        SymbolicName: 'SwapValueFactor',\n    },\n    {\n        Group: '',\n        Description: 'Daily value adjustment for long positions',\n        added: 'FIX.5.0',\n        Value: 'R',\n        Sort: 28,\n        addedEP: 55,\n        Tag: 269,\n        SymbolicName: 'DailyValueAdjustmentForLongPositions',\n    },\n    {\n        Group: '',\n        Description: 'Cumulative Value Adjustment for long positions',\n        added: 'FIX.5.0',\n        Value: 'T',\n        Sort: 29,\n        addedEP: 55,\n        Tag: 269,\n        SymbolicName: 'CumulativeValueAdjustmentForLongPositions',\n    },\n    {\n        Group: '',\n        Description: 'Daily Value Adjustment for Short Positions',\n        added: 'FIX.5.0',\n        Value: 'U',\n        Sort: 30,\n        addedEP: 55,\n        Tag: 269,\n        SymbolicName: 'DailyValueAdjustmentForShortPositions',\n    },\n    {\n        Group: '',\n        Description: 'Cumulative Value Adjustment for Short Positions',\n        added: 'FIX.5.0',\n        Value: 'V',\n        Sort: 31,\n        addedEP: 55,\n        Tag: 269,\n        SymbolicName: 'CumulativeValueAdjustmentForShortPositions',\n    },\n    {\n        Group: '',\n        Description: 'Plus Tick',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 274,\n        SymbolicName: 'PlusTick',\n    },\n    {\n        Group: '',\n        Description: 'Zero-Plus Tick',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 274,\n        SymbolicName: 'ZeroPlusTick',\n    },\n    {\n        Group: '',\n        Description: 'Minus Tick',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 274,\n        SymbolicName: 'MinusTick',\n    },\n    {\n        Group: '',\n        Description: 'Zero-Minus Tick',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 4,\n        Tag: 274,\n        SymbolicName: 'ZeroMinusTick',\n    },\n    {\n        Group: '',\n        Description: 'Open/Active',\n        added: 'FIX.4.2',\n        Value: 'A',\n        Sort: 1,\n        Tag: 276,\n        SymbolicName: 'Open',\n    },\n    {\n        Group: '',\n        Description: 'Closed/Inactive',\n        added: 'FIX.4.2',\n        Value: 'B',\n        Sort: 2,\n        Tag: 276,\n        SymbolicName: 'Closed',\n    },\n    {\n        Group: '',\n        Description: 'Exchange Best',\n        added: 'FIX.4.2',\n        Value: 'C',\n        Sort: 3,\n        Tag: 276,\n        SymbolicName: 'ExchangeBest',\n    },\n    {\n        Group: '',\n        Description: 'Consolidated Best',\n        added: 'FIX.4.2',\n        Value: 'D',\n        Sort: 4,\n        Tag: 276,\n        SymbolicName: 'ConsolidatedBest',\n    },\n    {\n        Group: '',\n        Description: 'Locked',\n        added: 'FIX.4.2',\n        Value: 'E',\n        Sort: 5,\n        Tag: 276,\n        SymbolicName: 'Locked',\n    },\n    {\n        Group: '',\n        Description: 'Crossed',\n        added: 'FIX.4.2',\n        Value: 'F',\n        Sort: 6,\n        Tag: 276,\n        SymbolicName: 'Crossed',\n    },\n    {\n        Group: '',\n        Description: 'Depth',\n        added: 'FIX.4.2',\n        Value: 'G',\n        Sort: 7,\n        Tag: 276,\n        SymbolicName: 'Depth',\n    },\n    {\n        Group: '',\n        Description: 'Fast Trading',\n        added: 'FIX.4.2',\n        Value: 'H',\n        Sort: 8,\n        Tag: 276,\n        SymbolicName: 'FastTrading',\n    },\n    {\n        Group: '',\n        Description: 'Non-Firm',\n        added: 'FIX.4.2',\n        Value: 'I',\n        Sort: 9,\n        Tag: 276,\n        SymbolicName: 'NonFirm',\n    },\n    {\n        Group: '',\n        Description: 'Manual/Slow Quote',\n        added: 'FIX.4.4',\n        Value: 'L',\n        Sort: 10,\n        addedEP: 6,\n        Tag: 276,\n        SymbolicName: 'Manual',\n    },\n    {\n        Group: '',\n        Description: 'Outright Price',\n        added: 'FIX.4.4',\n        Value: 'J',\n        Sort: 11,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'OutrightPrice',\n    },\n    {\n        Group: '',\n        Description: 'Implied Price',\n        added: 'FIX.4.4',\n        Value: 'K',\n        Sort: 12,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'ImpliedPrice',\n    },\n    {\n        Group: '',\n        Description: 'Depth on Offer',\n        added: 'FIX.4.4',\n        Value: 'M',\n        Sort: 13,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'DepthOnOffer',\n    },\n    {\n        Group: '',\n        Description: 'Depth on Bid',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 14,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'DepthOnBid',\n    },\n    {\n        Group: '',\n        Description: 'Closing',\n        added: 'FIX.4.4',\n        Value: 'O',\n        Sort: 15,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'Closing',\n    },\n    {\n        Group: '',\n        Description: 'News Dissemination',\n        added: 'FIX.4.4',\n        Value: 'P',\n        Sort: 16,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'NewsDissemination',\n    },\n    {\n        Group: '',\n        Description: 'Trading Range',\n        added: 'FIX.4.4',\n        Value: 'Q',\n        Sort: 17,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'TradingRange',\n    },\n    {\n        Group: '',\n        Description: 'Order Influx',\n        added: 'FIX.4.4',\n        Value: 'R',\n        Sort: 18,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'OrderInflux',\n    },\n    {\n        Group: '',\n        Description: 'Due to Related',\n        added: 'FIX.4.4',\n        Value: 'S',\n        Sort: 19,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'DueToRelated',\n    },\n    {\n        Group: '',\n        Description: 'News Pending',\n        added: 'FIX.4.4',\n        Value: 'T',\n        Sort: 20,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'NewsPending',\n    },\n    {\n        Group: '',\n        Description: 'Additional Info',\n        added: 'FIX.4.4',\n        Value: 'U',\n        Sort: 21,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'AdditionalInfo',\n    },\n    {\n        Group: '',\n        Description: 'Additional Info due to related',\n        added: 'FIX.4.4',\n        Value: 'V',\n        Sort: 22,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'AdditionalInfoDueToRelated',\n    },\n    {\n        Group: '',\n        Description: 'Resume',\n        added: 'FIX.4.4',\n        Value: 'W',\n        Sort: 23,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'Resume',\n    },\n    {\n        Group: '',\n        Description: 'View of Common',\n        added: 'FIX.4.4',\n        Value: 'X',\n        Sort: 24,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'ViewOfCommon',\n    },\n    {\n        Group: '',\n        Description: 'Volume Alert',\n        added: 'FIX.4.4',\n        Value: 'Y',\n        Sort: 25,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'VolumeAlert',\n    },\n    {\n        Group: '',\n        Description: 'Order Imbalance',\n        added: 'FIX.4.4',\n        Value: 'Z',\n        Sort: 26,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'OrderImbalance',\n    },\n    {\n        Group: '',\n        Description: 'Equipment Changeover',\n        added: 'FIX.4.4',\n        Value: 'a',\n        Sort: 27,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'EquipmentChangeover',\n    },\n    {\n        Group: '',\n        Description: 'No Open / No Resume',\n        added: 'FIX.4.4',\n        Value: 'b',\n        Sort: 28,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'NoOpen',\n    },\n    {\n        Group: '',\n        Description: 'Regular ETH',\n        added: 'FIX.4.4',\n        Value: 'c',\n        Sort: 29,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'RegularETH',\n    },\n    {\n        Group: '',\n        Description: 'Automatic Execution',\n        added: 'FIX.4.4',\n        Value: 'd',\n        Sort: 30,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'AutomaticExecution',\n    },\n    {\n        Group: '',\n        Description: 'Automatic Execution ETH',\n        added: 'FIX.4.4',\n        Value: 'e',\n        Sort: 31,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'AutomaticExecutionETH',\n    },\n    {\n        Group: '',\n        Description: 'Fast Market ETH',\n        added: 'FIX.4.4',\n        Value: 'f',\n        Sort: 32,\n        addedEP: -1,\n        Tag: 276,\n        SymbolicName: 'FastMarketETH',\n    },\n    {\n        Group: '',\n        Description: 'Inactive ETH',\n        added: 'FIX.4.4',\n        Value: 'g',\n        Sort: 33,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'InactiveETH',\n    },\n    {\n        Group: '',\n        Description: 'Rotation',\n        added: 'FIX.4.4',\n        Value: 'h',\n        Sort: 34,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'Rotation',\n    },\n    {\n        Group: '',\n        Description: 'Rotation ETH',\n        added: 'FIX.4.4',\n        Value: 'i',\n        Sort: 35,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'RotationETH',\n    },\n    {\n        Group: '',\n        Description: 'Halt',\n        added: 'FIX.4.4',\n        Value: 'j',\n        Sort: 36,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'Halt',\n    },\n    {\n        Group: '',\n        Description: 'Halt ETH',\n        added: 'FIX.4.4',\n        Value: 'k',\n        Sort: 37,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'HaltETH',\n    },\n    {\n        Group: '',\n        Description: 'Due to News Dissemination',\n        added: 'FIX.4.4',\n        Value: 'l',\n        Sort: 38,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'DueToNewsDissemination',\n    },\n    {\n        Group: '',\n        Description: 'Due to News Pending',\n        added: 'FIX.4.4',\n        Value: 'm',\n        Sort: 39,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'DueToNewsPending',\n    },\n    {\n        Group: '',\n        Description: 'Trading Resume',\n        added: 'FIX.4.4',\n        Value: 'n',\n        Sort: 40,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'TradingResume',\n    },\n    {\n        Group: '',\n        Description: 'Out of Sequence',\n        added: 'FIX.4.4',\n        Value: 'o',\n        Sort: 41,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'OutOfSequence',\n    },\n    {\n        Group: '',\n        Description: 'Bid Specialist',\n        added: 'FIX.4.4',\n        Value: 'p',\n        Sort: 42,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'BidSpecialist',\n    },\n    {\n        Group: '',\n        Description: 'Offer Specialist',\n        added: 'FIX.4.4',\n        Value: 'q',\n        Sort: 43,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'OfferSpecialist',\n    },\n    {\n        Group: '',\n        Description: 'Bid Offer Specialist',\n        added: 'FIX.4.4',\n        Value: 'r',\n        Sort: 44,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'BidOfferSpecialist',\n    },\n    {\n        Group: '',\n        Description: 'End of Day SAM',\n        added: 'FIX.4.4',\n        Value: 's',\n        Sort: 45,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'EndOfDaySAM',\n    },\n    {\n        Group: '',\n        Description: 'Forbidden SAM',\n        added: 'FIX.4.4',\n        Value: 't',\n        Sort: 46,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'ForbiddenSAM',\n    },\n    {\n        Group: '',\n        Description: 'Frozen SAM',\n        added: 'FIX.4.4',\n        Value: 'u',\n        Sort: 47,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'FrozenSAM',\n    },\n    {\n        Group: '',\n        Description: 'PreOpening SAM',\n        added: 'FIX.4.4',\n        Value: 'v',\n        Sort: 48,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'PreOpeningSAM',\n    },\n    {\n        Group: '',\n        Description: 'Opening SAM',\n        added: 'FIX.4.4',\n        Value: 'w',\n        Sort: 49,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'OpeningSAM',\n    },\n    {\n        Group: '',\n        Description: 'Open SAM',\n        added: 'FIX.4.4',\n        Value: 'x',\n        Sort: 50,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'OpenSAM',\n    },\n    {\n        Group: '',\n        Description: 'Surveillance SAM',\n        added: 'FIX.4.4',\n        Value: 'y',\n        Sort: 51,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'SurveillanceSAM',\n    },\n    {\n        Group: '',\n        Description: 'Suspended SAM',\n        added: 'FIX.4.4',\n        Value: 'z',\n        Sort: 52,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'SuspendedSAM',\n    },\n    {\n        Group: '',\n        Description: 'Reserved SAM',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 53,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'ReservedSAM',\n    },\n    {\n        Group: '',\n        Description: 'No Active SAM',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 54,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'NoActiveSAM',\n    },\n    {\n        Group: '',\n        Description: 'Restricted',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 55,\n        addedEP: 7,\n        Tag: 276,\n        SymbolicName: 'Restricted',\n    },\n    {\n        Group: '',\n        Description: 'Rest of Book VWAP',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 56,\n        addedEP: 47,\n        Tag: 276,\n        SymbolicName: 'RestOfBookVWAP',\n    },\n    {\n        Group: '',\n        Description: 'Better Prices in Conditional Orders',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 57,\n        addedEP: 47,\n        Tag: 276,\n        SymbolicName: 'BetterPricesInConditionalOrders',\n    },\n    {\n        Group: '',\n        Description: 'Median Price',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 58,\n        addedEP: 61,\n        Tag: 276,\n        SymbolicName: 'MedianPrice',\n    },\n    {\n        Group: '',\n        Description: 'Cash (only) Market',\n        added: 'FIX.4.2',\n        Value: 'A',\n        Sort: 0,\n        Tag: 277,\n        SymbolicName: 'Cash',\n    },\n    {\n        Group: '',\n        Description: 'Average Price Trade',\n        added: 'FIX.4.2',\n        Value: 'B',\n        Sort: 1,\n        Tag: 277,\n        SymbolicName: 'AveragePriceTrade',\n    },\n    {\n        Group: '',\n        Description: 'Cash Trade (same day clearing)',\n        added: 'FIX.4.2',\n        Value: 'C',\n        Sort: 2,\n        Tag: 277,\n        SymbolicName: 'CashTrade',\n    },\n    {\n        Group: '',\n        Description: 'Next Day (only)Market',\n        added: 'FIX.4.2',\n        Value: 'D',\n        Sort: 3,\n        Tag: 277,\n        SymbolicName: 'NextDay',\n    },\n    {\n        Group: '',\n        Description: 'Opening/Reopening Trade Detail',\n        added: 'FIX.4.2',\n        Value: 'E',\n        Sort: 4,\n        Tag: 277,\n        SymbolicName: 'Opening',\n    },\n    {\n        Group: '',\n        Description: 'Intraday Trade Detail',\n        added: 'FIX.4.2',\n        Value: 'F',\n        Sort: 5,\n        Tag: 277,\n        SymbolicName: 'IntradayTradeDetail',\n    },\n    {\n        Group: '',\n        Description: 'Rule 127 Trade (NYSE)',\n        added: 'FIX.4.2',\n        Value: 'G',\n        Sort: 6,\n        Tag: 277,\n        SymbolicName: 'Rule127Trade',\n    },\n    {\n        Group: '',\n        Description: 'Rule 155 Trade (AMEX)',\n        added: 'FIX.4.2',\n        Value: 'H',\n        Sort: 7,\n        Tag: 277,\n        SymbolicName: 'Rule155Trade',\n    },\n    {\n        Group: '',\n        Description: 'Sold Last (late reporting)',\n        added: 'FIX.4.2',\n        Value: 'I',\n        Sort: 8,\n        Tag: 277,\n        SymbolicName: 'SoldLast',\n    },\n    {\n        Group: '',\n        Description: 'Next Day Trade (next day clearing)',\n        added: 'FIX.4.2',\n        Value: 'J',\n        Sort: 9,\n        Tag: 277,\n        SymbolicName: 'NextDayTrade',\n    },\n    {\n        Group: '',\n        Description: 'Opened (late report of opened trade)',\n        added: 'FIX.4.2',\n        Value: 'K',\n        Sort: 10,\n        Tag: 277,\n        SymbolicName: 'Opened',\n    },\n    {\n        Group: '',\n        Description: 'Seller',\n        added: 'FIX.4.2',\n        Value: 'L',\n        Sort: 11,\n        Tag: 277,\n        SymbolicName: 'Seller',\n    },\n    {\n        Group: '',\n        Description: 'Sold (out of sequence)',\n        added: 'FIX.4.2',\n        Value: 'M',\n        Sort: 12,\n        Tag: 277,\n        SymbolicName: 'Sold',\n    },\n    {\n        Group: '',\n        Description: 'Stopped Stock (guarantee of price but does not execute the order)',\n        added: 'FIX.4.2',\n        Value: 'N',\n        Sort: 13,\n        Tag: 277,\n        SymbolicName: 'StoppedStock',\n    },\n    {\n        Group: '',\n        Description: 'Imbalance More Buyers (cannot be used in combination with Q)',\n        added: 'FIX.4.3',\n        Value: 'P',\n        Sort: 14,\n        Tag: 277,\n        SymbolicName: 'ImbalanceMoreBuyers',\n    },\n    {\n        Group: '',\n        Description: 'Imbalance More Sellers (cannot be used in combination with P)',\n        added: 'FIX.4.3',\n        Value: 'Q',\n        Sort: 15,\n        Tag: 277,\n        SymbolicName: 'ImbalanceMoreSellers',\n    },\n    {\n        Group: '',\n        Description: 'Opening Price',\n        added: 'FIX.4.3',\n        Value: 'R',\n        Sort: 16,\n        Tag: 277,\n        SymbolicName: 'OpeningPrice',\n    },\n    {\n        Group: '',\n        Description: 'Bargain Condition (LSE)',\n        added: 'FIX.4.4',\n        Value: 'S',\n        Sort: 17,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'BargainCondition',\n    },\n    {\n        Group: '',\n        Description: 'Converted Price Indicator',\n        added: 'FIX.4.4',\n        Value: 'T',\n        Sort: 18,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'ConvertedPriceIndicator',\n    },\n    {\n        Group: '',\n        Description: 'Exchange Last',\n        added: 'FIX.4.4',\n        Value: 'U',\n        Sort: 19,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'ExchangeLast',\n    },\n    {\n        Group: '',\n        Description: 'Final Price of Session',\n        added: 'FIX.4.4',\n        Value: 'V',\n        Sort: 20,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'FinalPriceOfSession',\n    },\n    {\n        Group: '',\n        Description: 'Ex-pit',\n        added: 'FIX.4.4',\n        Value: 'W',\n        Sort: 21,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'ExPit',\n    },\n    {\n        Group: '',\n        Description: 'Crossed',\n        added: 'FIX.4.4',\n        Value: 'X',\n        Sort: 22,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Crossed',\n    },\n    {\n        Group: '',\n        Description: 'Trades resulting from manual/slow quote',\n        added: 'FIX.4.4',\n        Value: 'Y',\n        Sort: 23,\n        addedEP: 6,\n        Tag: 277,\n        SymbolicName: 'TradesResultingFromManual',\n    },\n    {\n        Group: '',\n        Description: 'Trades resulting from intermarket sweep',\n        added: 'FIX.4.4',\n        Value: 'Z',\n        Sort: 24,\n        addedEP: 6,\n        Tag: 277,\n        SymbolicName: 'TradesResultingFromIntermarketSweep',\n    },\n    {\n        Group: '',\n        Description: 'Volume Only',\n        added: 'FIX.4.4',\n        Value: 'a',\n        Sort: 25,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'VolumeOnly',\n    },\n    {\n        Group: '',\n        Description: 'Direct Plus',\n        added: 'FIX.4.4',\n        Value: 'b',\n        Sort: 26,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'DirectPlus',\n    },\n    {\n        Group: '',\n        Description: 'Acquisition',\n        added: 'FIX.4.4',\n        Value: 'c',\n        Sort: 27,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Acquisition',\n    },\n    {\n        Group: '',\n        Description: 'Bunched',\n        added: 'FIX.4.4',\n        Value: 'd',\n        Sort: 28,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Bunched',\n    },\n    {\n        Group: '',\n        Description: 'Distribution',\n        added: 'FIX.4.4',\n        Value: 'e',\n        Sort: 29,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Distribution',\n    },\n    {\n        Group: '',\n        Description: 'Bunched Sale',\n        added: 'FIX.4.4',\n        Value: 'f',\n        Sort: 30,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'BunchedSale',\n    },\n    {\n        Group: '',\n        Description: 'Split Trade',\n        added: 'FIX.4.4',\n        Value: 'g',\n        Sort: 31,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'SplitTrade',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Stopped',\n        added: 'FIX.4.4',\n        Value: 'h',\n        Sort: 32,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelStopped',\n    },\n    {\n        Group: '',\n        Description: 'Cancel ETH',\n        added: 'FIX.4.4',\n        Value: 'i',\n        Sort: 33,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelETH',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Stopped ETH',\n        added: 'FIX.4.4',\n        Value: 'j',\n        Sort: 34,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelStoppedETH',\n    },\n    {\n        Group: '',\n        Description: 'Out of Sequence ETH',\n        added: 'FIX.4.4',\n        Value: 'k',\n        Sort: 35,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'OutOfSequenceETH',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Last ETH',\n        added: 'FIX.4.4',\n        Value: 'l',\n        Sort: 36,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelLastETH',\n    },\n    {\n        Group: '',\n        Description: 'Sold Last Sale ETH',\n        added: 'FIX.4.4',\n        Value: 'm',\n        Sort: 37,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'SoldLastSaleETH',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Last',\n        added: 'FIX.4.4',\n        Value: 'n',\n        Sort: 38,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelLast',\n    },\n    {\n        Group: '',\n        Description: 'Sold Last Sale',\n        added: 'FIX.4.4',\n        Value: 'o',\n        Sort: 39,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'SoldLastSale',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Open',\n        added: 'FIX.4.4',\n        Value: 'p',\n        Sort: 40,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelOpen',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Open ETH',\n        added: 'FIX.4.4',\n        Value: 'q',\n        Sort: 41,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelOpenETH',\n    },\n    {\n        Group: '',\n        Description: 'Opened Sale ETH',\n        added: 'FIX.4.4',\n        Value: 'r',\n        Sort: 42,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'OpenedSaleETH',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Only',\n        added: 'FIX.4.4',\n        Value: 's',\n        Sort: 43,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelOnly',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Only ETH',\n        added: 'FIX.4.4',\n        Value: 't',\n        Sort: 44,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CancelOnlyETH',\n    },\n    {\n        Group: '',\n        Description: 'Late Open ETH',\n        added: 'FIX.4.4',\n        Value: 'u',\n        Sort: 45,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'LateOpenETH',\n    },\n    {\n        Group: '',\n        Description: 'Auto Execution ETH',\n        added: 'FIX.4.4',\n        Value: 'v',\n        Sort: 46,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'AutoExecutionETH',\n    },\n    {\n        Group: '',\n        Description: 'Reopen',\n        added: 'FIX.4.4',\n        Value: 'w',\n        Sort: 47,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Reopen',\n    },\n    {\n        Group: '',\n        Description: 'Reopen ETH',\n        added: 'FIX.4.4',\n        Value: 'x',\n        Sort: 48,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'ReopenETH',\n    },\n    {\n        Group: '',\n        Description: 'Adjusted',\n        added: 'FIX.4.4',\n        Value: 'y',\n        Sort: 49,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Adjusted',\n    },\n    {\n        Group: '',\n        Description: 'Adjusted ETH',\n        added: 'FIX.4.4',\n        Value: 'z',\n        Sort: 50,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'AdjustedETH',\n    },\n    {\n        Group: '',\n        Description: 'Spread',\n        added: 'FIX.4.4',\n        Value: 'AA',\n        Sort: 51,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Spread',\n    },\n    {\n        Group: '',\n        Description: 'Spread ETH',\n        added: 'FIX.4.4',\n        Value: 'AB',\n        Sort: 52,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'SpreadETH',\n    },\n    {\n        Group: '',\n        Description: 'Straddle',\n        added: 'FIX.4.4',\n        Value: 'AC',\n        Sort: 53,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Straddle',\n    },\n    {\n        Group: '',\n        Description: 'Straddle ETH',\n        added: 'FIX.4.4',\n        Value: 'AD',\n        Sort: 54,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'StraddleETH',\n    },\n    {\n        Group: '',\n        Description: 'Stopped',\n        added: 'FIX.4.4',\n        Value: 'AE',\n        Sort: 55,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Stopped',\n    },\n    {\n        Group: '',\n        Description: 'Stopped ETH',\n        added: 'FIX.4.4',\n        Value: 'AF',\n        Sort: 56,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'StoppedETH',\n    },\n    {\n        Group: '',\n        Description: 'Regular ETH',\n        added: 'FIX.4.4',\n        Value: 'AG',\n        Sort: 57,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'RegularETH',\n    },\n    {\n        Group: '',\n        Description: 'Combo',\n        added: 'FIX.4.4',\n        Value: 'AH',\n        Sort: 58,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Combo',\n    },\n    {\n        Group: '',\n        Description: 'Combo ETH',\n        added: 'FIX.4.4',\n        Value: 'AI',\n        Sort: 59,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'ComboETH',\n    },\n    {\n        Group: '',\n        Description: 'Official Closing Price',\n        added: 'FIX.4.4',\n        Value: 'AJ',\n        Sort: 60,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'OfficialClosingPrice',\n    },\n    {\n        Group: '',\n        Description: 'Prior Reference Price',\n        added: 'FIX.4.4',\n        Value: 'AK',\n        Sort: 61,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'PriorReferencePrice',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 62,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Stopped Sold Last',\n        added: 'FIX.4.4',\n        Value: 'AL',\n        Sort: 71,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'StoppedSoldLast',\n    },\n    {\n        Group: '',\n        Description: 'Stopped Out of Sequence',\n        added: 'FIX.4.4',\n        Value: 'AM',\n        Sort: 72,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'StoppedOutOfSequence',\n    },\n    {\n        Group: '',\n        Description: \"Offical Closing Price (duplicate enumeration - use 'AJ' instead)\",\n        added: 'FIX.4.4',\n        Value: 'AN',\n        Sort: 73,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'OfficalClosingPrice',\n    },\n    {\n        Group: '',\n        Description: \"Crossed (duplicate enumeration - use 'X' instead)\",\n        added: 'FIX.4.4',\n        Value: 'AO',\n        Sort: 74,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'CrossedOld',\n    },\n    {\n        Group: '',\n        Description: 'Fast Market',\n        added: 'FIX.4.4',\n        Value: 'AP',\n        Sort: 75,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'FastMarket',\n    },\n    {\n        Group: '',\n        Description: 'Automatic Execution',\n        added: 'FIX.4.4',\n        Value: 'AQ',\n        Sort: 76,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'AutomaticExecution',\n    },\n    {\n        Group: '',\n        Description: 'Form T',\n        added: 'FIX.4.4',\n        Value: 'AR',\n        Sort: 77,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'FormT',\n    },\n    {\n        Group: '',\n        Description: 'Basket Index',\n        added: 'FIX.4.4',\n        Value: 'AS',\n        Sort: 78,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'BasketIndex',\n    },\n    {\n        Group: '',\n        Description: 'Burst Basket',\n        added: 'FIX.4.4',\n        Value: 'AT',\n        Sort: 79,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'BurstBasket',\n    },\n    {\n        Group: '',\n        Description: 'Outside Spread',\n        added: 'FIX.5.0',\n        Value: 'AV',\n        Sort: 98,\n        addedEP: 47,\n        Tag: 277,\n        SymbolicName: 'OutsideSpread',\n    },\n    {\n        Group: '',\n        Description: 'Implied Trade',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 99,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'ImpliedTrade',\n    },\n    {\n        Group: '',\n        Description: 'Marketplace entered trade',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 100,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'MarketplaceEnteredTrade',\n    },\n    {\n        Group: '',\n        Description: 'Mult Asset Class Multileg Trade',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 101,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'MultAssetClassMultilegTrade',\n    },\n    {\n        Group: '',\n        Description: 'Multileg-to-Multileg Trade',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 102,\n        addedEP: 7,\n        Tag: 277,\n        SymbolicName: 'MultilegToMultilegTrade',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 279,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Change',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 279,\n        SymbolicName: 'Change',\n    },\n    {\n        Group: '',\n        Description: 'Delete',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 279,\n        SymbolicName: 'Delete',\n    },\n    {\n        Group: '',\n        Description: 'Delete Thru',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: 7,\n        Tag: 279,\n        SymbolicName: 'DeleteThru',\n    },\n    {\n        Group: '',\n        Description: 'Delete From',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        addedEP: 7,\n        Tag: 279,\n        SymbolicName: 'DeleteFrom',\n    },\n    {\n        Group: '',\n        Description: 'Overlay',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 10,\n        addedEP: 42,\n        Tag: 279,\n        SymbolicName: 'Overlay',\n    },\n    {\n        Group: '',\n        Description: 'Unknown symbol',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 281,\n        SymbolicName: 'UnknownSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Duplicate MDReqID',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 281,\n        SymbolicName: 'DuplicateMDReqID',\n    },\n    {\n        Group: '',\n        Description: 'Insufficient Bandwidth',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 281,\n        SymbolicName: 'InsufficientBandwidth',\n    },\n    {\n        Group: '',\n        Description: 'Insufficient Permissions',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 4,\n        Tag: 281,\n        SymbolicName: 'InsufficientPermissions',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported SubscriptionRequestType',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 5,\n        Tag: 281,\n        SymbolicName: 'UnsupportedSubscriptionRequestType',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported MarketDepth',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 6,\n        Tag: 281,\n        SymbolicName: 'UnsupportedMarketDepth',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported MDUpdateType',\n        added: 'FIX.4.2',\n        Value: '6',\n        Sort: 7,\n        Tag: 281,\n        SymbolicName: 'UnsupportedMDUpdateType',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported AggregatedBook',\n        added: 'FIX.4.2',\n        Value: '7',\n        Sort: 8,\n        Tag: 281,\n        SymbolicName: 'UnsupportedAggregatedBook',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported MDEntryType',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 9,\n        Tag: 281,\n        SymbolicName: 'UnsupportedMDEntryType',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported TradingSessionID',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 10,\n        Tag: 281,\n        SymbolicName: 'UnsupportedTradingSessionID',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported Scope',\n        added: 'FIX.4.3',\n        Value: 'A',\n        Sort: 11,\n        Tag: 281,\n        SymbolicName: 'UnsupportedScope',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported OpenCloseSettleFlag',\n        added: 'FIX.4.3',\n        Value: 'B',\n        Sort: 12,\n        Tag: 281,\n        SymbolicName: 'UnsupportedOpenCloseSettleFlag',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported MDImplicitDelete',\n        added: 'FIX.4.3',\n        Value: 'C',\n        Sort: 13,\n        Tag: 281,\n        SymbolicName: 'UnsupportedMDImplicitDelete',\n    },\n    {\n        Group: '',\n        Description: 'Insufficient credit',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 14,\n        addedEP: 21,\n        Tag: 281,\n        SymbolicName: 'InsufficientCredit',\n    },\n    {\n        Group: '',\n        Description: 'Cancellation / Trade Bust',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 285,\n        SymbolicName: 'Cancellation',\n    },\n    {\n        Group: '',\n        Description: 'Error',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 285,\n        SymbolicName: 'Error',\n    },\n    {\n        Group: '',\n        Description: 'Daily Open / Close / Settlement entry',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 286,\n        SymbolicName: 'DailyOpen',\n    },\n    {\n        Group: '',\n        Description: 'Session Open / Close / Settlement entry',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 286,\n        SymbolicName: 'SessionOpen',\n    },\n    {\n        Group: '',\n        Description: 'Delivery Settlement entry',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 286,\n        SymbolicName: 'DeliverySettlementEntry',\n    },\n    {\n        Group: '',\n        Description: 'Expected entry',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 4,\n        Tag: 286,\n        SymbolicName: 'ExpectedEntry',\n    },\n    {\n        Group: '',\n        Description: 'Entry from previous business day',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 5,\n        Tag: 286,\n        SymbolicName: 'EntryFromPreviousBusinessDay',\n    },\n    {\n        Group: '',\n        Description: 'Theoretical Price value',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 286,\n        SymbolicName: 'TheoreticalPriceValue',\n    },\n    {\n        Group: '',\n        Description: 'Bankrupt',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 291,\n        SymbolicName: 'Bankrupt',\n    },\n    {\n        Group: '',\n        Description: 'Pending delisting',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 291,\n        SymbolicName: 'PendingDelisting',\n    },\n    {\n        Group: '',\n        Description: 'Restricted',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: 12,\n        Tag: 291,\n        SymbolicName: 'Restricted',\n    },\n    {\n        Group: '',\n        Description: 'Ex-Dividend',\n        added: 'FIX.4.2',\n        Value: 'A',\n        Sort: 1,\n        Tag: 292,\n        SymbolicName: 'ExDividend',\n    },\n    {\n        Group: '',\n        Description: 'Ex-Distribution',\n        added: 'FIX.4.2',\n        Value: 'B',\n        Sort: 2,\n        Tag: 292,\n        SymbolicName: 'ExDistribution',\n    },\n    {\n        Group: '',\n        Description: 'Ex-Rights',\n        added: 'FIX.4.2',\n        Value: 'C',\n        Sort: 3,\n        Tag: 292,\n        SymbolicName: 'ExRights',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.2',\n        Value: 'D',\n        Sort: 4,\n        Tag: 292,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Ex-Interest',\n        added: 'FIX.4.2',\n        Value: 'E',\n        Sort: 5,\n        Tag: 292,\n        SymbolicName: 'ExInterest',\n    },\n    {\n        Group: '',\n        Description: 'Cash Dividend',\n        added: 'FIX.4.4',\n        Value: 'F',\n        Sort: 6,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'CashDividend',\n    },\n    {\n        Group: '',\n        Description: 'Stock Dividend',\n        added: 'FIX.4.4',\n        Value: 'G',\n        Sort: 7,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'StockDividend',\n    },\n    {\n        Group: '',\n        Description: 'Non-Integer Stock Split',\n        added: 'FIX.4.4',\n        Value: 'H',\n        Sort: 8,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'NonIntegerStockSplit',\n    },\n    {\n        Group: '',\n        Description: 'Reverse Stock Split',\n        added: 'FIX.4.4',\n        Value: 'I',\n        Sort: 9,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'ReverseStockSplit',\n    },\n    {\n        Group: '',\n        Description: 'Standard-Integer Stock Split',\n        added: 'FIX.4.4',\n        Value: 'J',\n        Sort: 10,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'StandardIntegerStockSplit',\n    },\n    {\n        Group: '',\n        Description: 'Position Consolidation',\n        added: 'FIX.4.4',\n        Value: 'K',\n        Sort: 11,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'PositionConsolidation',\n    },\n    {\n        Group: '',\n        Description: 'Liquidation Reorganization',\n        added: 'FIX.4.4',\n        Value: 'L',\n        Sort: 12,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'LiquidationReorganization',\n    },\n    {\n        Group: '',\n        Description: 'Merger Reorganization',\n        added: 'FIX.4.4',\n        Value: 'M',\n        Sort: 13,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'MergerReorganization',\n    },\n    {\n        Group: '',\n        Description: 'Rights Offering',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 14,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'RightsOffering',\n    },\n    {\n        Group: '',\n        Description: 'Shareholder Meeting',\n        added: 'FIX.4.4',\n        Value: 'O',\n        Sort: 15,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'ShareholderMeeting',\n    },\n    {\n        Group: '',\n        Description: 'Spinoff',\n        added: 'FIX.4.4',\n        Value: 'P',\n        Sort: 16,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'Spinoff',\n    },\n    {\n        Group: '',\n        Description: 'Tender Offer',\n        added: 'FIX.4.4',\n        Value: 'Q',\n        Sort: 17,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'TenderOffer',\n    },\n    {\n        Group: '',\n        Description: 'Warrant',\n        added: 'FIX.4.4',\n        Value: 'R',\n        Sort: 18,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'Warrant',\n    },\n    {\n        Group: '',\n        Description: 'Special Action',\n        added: 'FIX.4.4',\n        Value: 'S',\n        Sort: 19,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'SpecialAction',\n    },\n    {\n        Group: '',\n        Description: 'Symbol Conversion',\n        added: 'FIX.4.4',\n        Value: 'T',\n        Sort: 20,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'SymbolConversion',\n    },\n    {\n        Group: '',\n        Description: 'CUSIP / Name Change',\n        added: 'FIX.4.4',\n        Value: 'U',\n        Sort: 21,\n        addedEP: 4,\n        Tag: 292,\n        SymbolicName: 'CUSIP',\n    },\n    {\n        Group: '',\n        Description: 'Leap Rollover',\n        added: 'FIX.4.4',\n        Value: 'V',\n        Sort: 22,\n        addedEP: 8,\n        Tag: 292,\n        SymbolicName: 'LeapRollover',\n    },\n    {\n        Group: '',\n        Description: 'Succession Event',\n        added: 'FIX.5.0',\n        Value: 'W',\n        Sort: 99,\n        addedEP: 42,\n        Tag: 292,\n        SymbolicName: 'SuccessionEvent',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 0,\n        Tag: 297,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Cancel for Symbol(s)',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        Tag: 297,\n        SymbolicName: 'CancelForSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Canceled for Security Type(s)',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        Tag: 297,\n        SymbolicName: 'CanceledForSecurityType',\n    },\n    {\n        Group: '',\n        Description: 'Canceled for Underlying',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        Tag: 297,\n        SymbolicName: 'CanceledForUnderlying',\n    },\n    {\n        Group: '',\n        Description: 'Canceled All',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        Tag: 297,\n        SymbolicName: 'CanceledAll',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 5,\n        Tag: 297,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Removed from Market',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 297,\n        SymbolicName: 'RemovedFromMarket',\n    },\n    {\n        Group: '',\n        Description: 'Expired',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 297,\n        SymbolicName: 'Expired',\n    },\n    {\n        Group: '',\n        Description: 'Query',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 297,\n        SymbolicName: 'Query',\n    },\n    {\n        Group: '',\n        Description: 'Quote Not Found',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 297,\n        SymbolicName: 'QuoteNotFound',\n    },\n    {\n        Group: '',\n        Description: 'Pending',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 297,\n        SymbolicName: 'Pending',\n    },\n    {\n        Group: '',\n        Description: 'Pass',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 11,\n        Tag: 297,\n        SymbolicName: 'Pass',\n    },\n    {\n        Group: '',\n        Description: 'Locked Market Warning',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 12,\n        Tag: 297,\n        SymbolicName: 'LockedMarketWarning',\n    },\n    {\n        Group: '',\n        Description: 'Cross Market Warning',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 13,\n        Tag: 297,\n        SymbolicName: 'CrossMarketWarning',\n    },\n    {\n        Group: '',\n        Description: 'Canceled Due To Lock Market',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 14,\n        Tag: 297,\n        SymbolicName: 'CanceledDueToLockMarket',\n    },\n    {\n        Group: '',\n        Description: 'Canceled Due To Cross Market',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 15,\n        Tag: 297,\n        SymbolicName: 'CanceledDueToCrossMarket',\n    },\n    {\n        Group: '',\n        Description: 'Active',\n        added: 'FIX.5.0',\n        Value: '16',\n        Sort: 17,\n        addedEP: 45,\n        Tag: 297,\n        SymbolicName: 'Active',\n    },\n    {\n        Group: '',\n        Description: 'Canceled',\n        added: 'FIX.5.0',\n        Value: '17',\n        Sort: 18,\n        addedEP: 45,\n        Tag: 297,\n        SymbolicName: 'Canceled',\n    },\n    {\n        Group: '',\n        Description: 'Unsolicited Quote Replenishment',\n        added: 'FIX.5.0',\n        Value: '18',\n        Sort: 19,\n        addedEP: 45,\n        Tag: 297,\n        SymbolicName: 'UnsolicitedQuoteReplenishment',\n    },\n    {\n        Group: '',\n        Description: 'Pending End Trade',\n        added: 'FIX.5.0',\n        Value: '19',\n        Sort: 20,\n        addedEP: 68,\n        Tag: 297,\n        SymbolicName: 'PendingEndTrade',\n    },\n    {\n        Group: '',\n        Description: 'Too Late to End',\n        added: 'FIX.5.0',\n        Value: '20',\n        Sort: 21,\n        addedEP: 68,\n        Tag: 297,\n        SymbolicName: 'TooLateToEnd',\n    },\n    {\n        Group: '',\n        Description: 'Cancel for one or more securities',\n        added: 'FIX.4.2',\n        updatedEP: 78,\n        Value: '1',\n        Sort: 1,\n        Tag: 298,\n        SymbolicName: 'CancelForOneOrMoreSecurities',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Cancel for Security Type(s)',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 298,\n        SymbolicName: 'CancelForSecurityType',\n    },\n    {\n        Group: '',\n        Description: 'Cancel for underlying security',\n        added: 'FIX.4.2',\n        updatedEP: 78,\n        Value: '3',\n        Sort: 3,\n        Tag: 298,\n        SymbolicName: 'CancelForUnderlyingSecurity',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Cancel All Quotes',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 298,\n        SymbolicName: 'CancelAllQuotes',\n    },\n    {\n        Group: '',\n        Description: 'Cancel quote specified in QuoteID',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        addedEP: 21,\n        Tag: 298,\n        SymbolicName: 'CancelQuoteSpecifiedInQuoteID',\n    },\n    {\n        Group: '',\n        Description: 'Unknown Symbol (security)',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 300,\n        SymbolicName: 'UnknownSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Exchange (Security) closed',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 300,\n        SymbolicName: 'Exchange',\n    },\n    {\n        Group: '',\n        Description: 'Quote Request exceeds limit',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 300,\n        SymbolicName: 'QuoteRequestExceedsLimit',\n    },\n    {\n        Group: '',\n        Description: 'Too late to enter',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 300,\n        SymbolicName: 'TooLateToEnter',\n    },\n    {\n        Group: '',\n        Description: 'Unknown Quote',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 5,\n        Tag: 300,\n        SymbolicName: 'UnknownQuote',\n    },\n    {\n        Group: '',\n        Description: 'Duplicate Quote',\n        added: 'FIX.4.2',\n        Value: '6',\n        Sort: 6,\n        Tag: 300,\n        SymbolicName: 'DuplicateQuote',\n    },\n    {\n        Group: '',\n        Description: 'Invalid bid/ask spread',\n        added: 'FIX.4.2',\n        Value: '7',\n        Sort: 7,\n        Tag: 300,\n        SymbolicName: 'InvalidBid',\n    },\n    {\n        Group: '',\n        Description: 'Invalid price',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 8,\n        Tag: 300,\n        SymbolicName: 'InvalidPrice',\n    },\n    {\n        Group: '',\n        Description: 'Not authorized to quote security',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 9,\n        Tag: 300,\n        SymbolicName: 'NotAuthorizedToQuoteSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Price exceeds current price band',\n        added: 'FIX.5.0',\n        Value: '10',\n        Sort: 10,\n        addedEP: 43,\n        Tag: 300,\n        SymbolicName: 'PriceExceedsCurrentPriceBand',\n    },\n    {\n        Group: '',\n        Description: 'Quote Locked - Unable to Update/Cancel',\n        added: 'FIX.5.0',\n        Value: '11',\n        Sort: 11,\n        addedEP: 45,\n        Tag: 300,\n        SymbolicName: 'QuoteLocked',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 300,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'No Acknowledgement',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 301,\n        SymbolicName: 'NoAcknowledgement',\n    },\n    {\n        Group: '',\n        Description: 'Acknowledge only negative or erroneous quotes',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 301,\n        SymbolicName: 'AcknowledgeOnlyNegativeOrErroneousQuotes',\n    },\n    {\n        Group: '',\n        Description: 'Acknowledge each quote message',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        Value: '2',\n        Sort: 3,\n        Tag: 301,\n        SymbolicName: 'AcknowledgeEachQuoteMessage',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Summary Acknowledgement',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 45,\n        Tag: 301,\n        SymbolicName: 'SummaryAcknowledgement',\n    },\n    {\n        Group: '',\n        Description: 'Manual',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 303,\n        SymbolicName: 'Manual',\n    },\n    {\n        Group: '',\n        Description: 'Automatic',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 303,\n        SymbolicName: 'Automatic',\n    },\n    {\n        Group: '',\n        Description: 'Request Security identity and specifications',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 321,\n        SymbolicName: 'RequestSecurityIdentityAndSpecifications',\n    },\n    {\n        Group: '',\n        Description: 'Request Security identity for the specifications provided (name of the security is not supplied)',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 321,\n        SymbolicName: 'RequestSecurityIdentityForSpecifications',\n    },\n    {\n        Group: '',\n        Description: 'Request List Security Types',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 3,\n        Tag: 321,\n        SymbolicName: 'RequestListSecurityTypes',\n    },\n    {\n        Group: '',\n        Description:\n            'Request List Securities (can be qualified with Symbol, SecurityType, TradingSessionID, SecurityExchange. If provided then only list Securities for the specific type.)',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 4,\n        Tag: 321,\n        SymbolicName: 'RequestListSecurities',\n    },\n    {\n        Group: '',\n        Description: 'Symbol',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 5,\n        addedEP: 52,\n        Tag: 321,\n        SymbolicName: 'Symbol',\n    },\n    {\n        Group: '',\n        Description: 'SecurityType and or CFICode',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 6,\n        addedEP: 52,\n        Tag: 321,\n        SymbolicName: 'SecurityTypeAndOrCFICode',\n    },\n    {\n        Group: '',\n        Description: 'Product',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 7,\n        addedEP: 52,\n        Tag: 321,\n        SymbolicName: 'Product',\n    },\n    {\n        Group: '',\n        Description: 'TradingSessionID',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 8,\n        addedEP: 52,\n        Tag: 321,\n        SymbolicName: 'TradingSessionID',\n    },\n    {\n        Group: '',\n        Description: 'All Securities',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 9,\n        addedEP: 52,\n        Tag: 321,\n        SymbolicName: 'AllSecurities',\n    },\n    {\n        Group: '',\n        Description: 'MarketID or MarketID + MarketSegmentID',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 10,\n        addedEP: 52,\n        Tag: 321,\n        SymbolicName: 'MarketIDOrMarketID',\n    },\n    {\n        Group: '',\n        Description: 'Accept security proposal as-is',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 323,\n        SymbolicName: 'AcceptAsIs',\n    },\n    {\n        Group: '',\n        Description: 'Accept security proposal with revisions as indicated in the message',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 323,\n        SymbolicName: 'AcceptWithRevisions',\n    },\n    {\n        Group: '',\n        Description: 'List of security types returned per request',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        Tag: 323,\n        SymbolicName: 'ListOfSecurityTypesReturnedPerRequest',\n    },\n    {\n        Group: '',\n        Description: 'List of securities returned per request',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 323,\n        SymbolicName: 'ListOfSecuritiesReturnedPerRequest',\n    },\n    {\n        Group: '',\n        Description: 'Reject security proposal',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 5,\n        Tag: 323,\n        SymbolicName: 'RejectSecurityProposal',\n    },\n    {\n        Group: '',\n        Description: 'Cannot match selection criteria',\n        added: 'FIX.4.2',\n        Value: '6',\n        Sort: 6,\n        Tag: 323,\n        SymbolicName: 'CannotMatchSelectionCriteria',\n    },\n    {\n        Group: '',\n        Description: 'Message is being sent as a result of a prior request',\n        added: 'FIX.4.2',\n        Value: 'N',\n        Sort: 1,\n        Tag: 325,\n        SymbolicName: 'MessageIsBeingSentAsAResultOfAPriorRequest',\n    },\n    {\n        Group: '',\n        Description: 'Message is being sent unsolicited',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        Value: 'Y',\n        Sort: 2,\n        Tag: 325,\n        SymbolicName: 'MessageIsBeingSentUnsolicited',\n        updated: 'FIX.5.0SP1',\n    },\n];\n\nconst batch3: ISpecEnums[] = [\n    {\n        Group: '',\n        Description: 'Opening delay',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 0,\n        Tag: 326,\n        SymbolicName: 'OpeningDelay',\n    },\n    {\n        Group: '',\n        Description: 'Trading halt',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 1,\n        Tag: 326,\n        SymbolicName: 'TradingHalt',\n    },\n    {\n        Group: '',\n        Description: 'Resume',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 2,\n        Tag: 326,\n        SymbolicName: 'Resume',\n    },\n    {\n        Group: '',\n        Description: 'No Open / No Resume',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 3,\n        Tag: 326,\n        SymbolicName: 'NoOpen',\n    },\n    {\n        Group: '',\n        Description: 'Price indication',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 4,\n        Tag: 326,\n        SymbolicName: 'PriceIndication',\n    },\n    {\n        Group: '',\n        Description: 'Trading Range Indication',\n        added: 'FIX.4.2',\n        Value: '6',\n        Sort: 5,\n        Tag: 326,\n        SymbolicName: 'TradingRangeIndication',\n    },\n    {\n        Group: '',\n        Description: 'Market Imbalance Buy',\n        added: 'FIX.4.2',\n        Value: '7',\n        Sort: 6,\n        Tag: 326,\n        SymbolicName: 'MarketImbalanceBuy',\n    },\n    {\n        Group: '',\n        Description: 'Market Imbalance Sell',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 7,\n        Tag: 326,\n        SymbolicName: 'MarketImbalanceSell',\n    },\n    {\n        Group: '',\n        Description: 'Market on Close Imbalance Buy',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 8,\n        Tag: 326,\n        SymbolicName: 'MarketOnCloseImbalanceBuy',\n    },\n    {\n        Group: '',\n        Description: 'Market on Close Imbalance Sell',\n        added: 'FIX.4.2',\n        Value: '10',\n        Sort: 9,\n        Tag: 326,\n        SymbolicName: 'MarketOnCloseImbalanceSell',\n    },\n    {\n        Group: '',\n        Description: 'No Market Imbalance',\n        added: 'FIX.4.2',\n        Value: '12',\n        Sort: 11,\n        Tag: 326,\n        SymbolicName: 'NoMarketImbalance',\n    },\n    {\n        Group: '',\n        Description: 'No Market on Close Imbalance',\n        added: 'FIX.4.2',\n        Value: '13',\n        Sort: 12,\n        Tag: 326,\n        SymbolicName: 'NoMarketOnCloseImbalance',\n    },\n    {\n        Group: '',\n        Description: 'ITS Pre-opening',\n        added: 'FIX.4.2',\n        Value: '14',\n        Sort: 13,\n        Tag: 326,\n        SymbolicName: 'ITSPreOpening',\n    },\n    {\n        Group: '',\n        Description: 'New Price Indication',\n        added: 'FIX.4.2',\n        Value: '15',\n        Sort: 14,\n        Tag: 326,\n        SymbolicName: 'NewPriceIndication',\n    },\n    {\n        Group: '',\n        Description: 'Trade Dissemination Time',\n        added: 'FIX.4.2',\n        Value: '16',\n        Sort: 15,\n        Tag: 326,\n        SymbolicName: 'TradeDisseminationTime',\n    },\n    {\n        Group: '',\n        Description: 'Ready to trade (start of session)',\n        added: 'FIX.4.2',\n        Value: '17',\n        Sort: 16,\n        Tag: 326,\n        SymbolicName: 'ReadyToTrade',\n    },\n    {\n        Group: '',\n        Description: 'Not available for trading (end of session)',\n        added: 'FIX.4.2',\n        Value: '18',\n        Sort: 17,\n        Tag: 326,\n        SymbolicName: 'NotAvailableForTrading',\n    },\n    {\n        Group: '',\n        Description: 'Not traded on this market',\n        added: 'FIX.4.2',\n        Value: '19',\n        Sort: 18,\n        Tag: 326,\n        SymbolicName: 'NotTradedOnThisMarket',\n    },\n    {\n        Group: '',\n        Description: 'Unknown or Invalid',\n        added: 'FIX.4.2',\n        Value: '20',\n        Sort: 19,\n        Tag: 326,\n        SymbolicName: 'UnknownOrInvalid',\n    },\n    {\n        Group: '',\n        Description: 'Pre-open',\n        added: 'FIX.4.3',\n        Value: '21',\n        Sort: 20,\n        Tag: 326,\n        SymbolicName: 'PreOpen',\n    },\n    {\n        Group: '',\n        Description: 'Opening Rotation',\n        added: 'FIX.4.3',\n        Value: '22',\n        Sort: 21,\n        Tag: 326,\n        SymbolicName: 'OpeningRotation',\n    },\n    {\n        Group: '',\n        Description: 'Fast Market',\n        added: 'FIX.4.3',\n        Value: '23',\n        Sort: 22,\n        Tag: 326,\n        SymbolicName: 'FastMarket',\n    },\n    {\n        Group: '',\n        Description: 'Pre-Cross - system is in a pre-cross state allowing market to respond to either side of cross',\n        added: 'FIX.5.0',\n        Value: '24',\n        Sort: 98,\n        addedEP: 42,\n        Tag: 326,\n        SymbolicName: 'PreCross',\n    },\n    {\n        Group: '',\n        Description:\n            'Cross - system has crossed a percentage of the orders and allows market to respond prior to crossing remaining portion',\n        added: 'FIX.5.0',\n        Value: '25',\n        Sort: 99,\n        addedEP: 42,\n        Tag: 326,\n        SymbolicName: 'Cross',\n    },\n    {\n        Group: '',\n        Description: 'Halt was not related to a halt of the common stock',\n        added: 'FIX.4.2',\n        Value: 'N',\n        Sort: 1,\n        Tag: 328,\n        SymbolicName: 'HaltWasNotRelatedToAHaltOfTheCommonStock',\n    },\n    {\n        Group: '',\n        Description: 'Halt was due to common stock being halted',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        Value: 'Y',\n        Sort: 2,\n        Tag: 328,\n        SymbolicName: 'HaltWasDueToCommonStockBeingHalted',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Halt was not related to a halt of the related security',\n        added: 'FIX.4.2',\n        Value: 'N',\n        Sort: 1,\n        Tag: 329,\n        SymbolicName: 'NotRelatedToSecurityHalt',\n    },\n    {\n        Group: '',\n        Description: 'Halt was due to related security being halted',\n        added: 'FIX.4.2',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 329,\n        SymbolicName: 'RelatedToSecurityHalt',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 334,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Error',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 334,\n        SymbolicName: 'Error',\n    },\n    {\n        Group: '',\n        Description: 'Correction',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 334,\n        SymbolicName: 'Correction',\n    },\n    {\n        Group: '',\n        Description: 'Day',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 58,\n        Tag: 336,\n        SymbolicName: 'Day',\n    },\n    {\n        Group: '',\n        Description: 'HalfDay',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 58,\n        Tag: 336,\n        SymbolicName: 'HalfDay',\n    },\n    {\n        Group: '',\n        Description: 'Morning',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 58,\n        Tag: 336,\n        SymbolicName: 'Morning',\n    },\n    {\n        Group: '',\n        Description: 'Afternoon',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 58,\n        Tag: 336,\n        SymbolicName: 'Afternoon',\n    },\n    {\n        Group: '',\n        Description: 'Evening',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 5,\n        addedEP: 58,\n        Tag: 336,\n        SymbolicName: 'Evening',\n    },\n    {\n        Group: '',\n        Description: 'After-hours',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 6,\n        addedEP: 58,\n        Tag: 336,\n        SymbolicName: 'AfterHours',\n    },\n    {\n        Group: '',\n        Description: 'Electronic',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 338,\n        SymbolicName: 'Electronic',\n    },\n    {\n        Group: '',\n        Description: 'Open Outcry',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 338,\n        SymbolicName: 'OpenOutcry',\n    },\n    {\n        Group: '',\n        Description: 'Two Party',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 338,\n        SymbolicName: 'TwoParty',\n    },\n    {\n        Group: '',\n        Description: 'Testing',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 339,\n        SymbolicName: 'Testing',\n    },\n    {\n        Group: '',\n        Description: 'Simulated',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 339,\n        SymbolicName: 'Simulated',\n    },\n    {\n        Group: '',\n        Description: 'Production',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 339,\n        SymbolicName: 'Production',\n    },\n    {\n        Group: '',\n        Description: 'Unknown',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 340,\n        SymbolicName: 'Unknown',\n    },\n    {\n        Group: '',\n        Description: 'Halted',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 340,\n        SymbolicName: 'Halted',\n    },\n    {\n        Group: '',\n        Description: 'Open',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 340,\n        SymbolicName: 'Open',\n    },\n    {\n        Group: '',\n        Description: 'Closed',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 4,\n        Tag: 340,\n        SymbolicName: 'Closed',\n    },\n    {\n        Group: '',\n        Description: 'Pre-Open',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 5,\n        Tag: 340,\n        SymbolicName: 'PreOpen',\n    },\n    {\n        Group: '',\n        Description: 'Pre-Close',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 6,\n        Tag: 340,\n        SymbolicName: 'PreClose',\n    },\n    {\n        Group: '',\n        Description: 'Request Rejected',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 7,\n        Tag: 340,\n        SymbolicName: 'RequestRejected',\n    },\n    {\n        Group: '',\n        Description: 'Invalid Tag Number',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 0,\n        Tag: 373,\n        SymbolicName: 'InvalidTagNumber',\n    },\n    {\n        Group: '',\n        Description: 'Required Tag Missing',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 373,\n        SymbolicName: 'RequiredTagMissing',\n    },\n    {\n        Group: '',\n        Description: 'Tag not defined for this message type',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 373,\n        SymbolicName: 'TagNotDefinedForThisMessageType',\n    },\n    {\n        Group: '',\n        Description: 'Undefined tag',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 373,\n        SymbolicName: 'UndefinedTag',\n    },\n    {\n        Group: '',\n        Description: 'Tag specified without a value',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 373,\n        SymbolicName: 'TagSpecifiedWithoutAValue',\n    },\n    {\n        Group: '',\n        Description: 'Value is incorrect (out of range) for this tag',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 5,\n        Tag: 373,\n        SymbolicName: 'ValueIsIncorrect',\n    },\n    {\n        Group: '',\n        Description: 'Incorrect data format for value',\n        added: 'FIX.4.2',\n        Value: '6',\n        Sort: 6,\n        Tag: 373,\n        SymbolicName: 'IncorrectDataFormatForValue',\n    },\n    {\n        Group: '',\n        Description: 'Decryption problem',\n        added: 'FIX.4.2',\n        Value: '7',\n        Sort: 7,\n        Tag: 373,\n        SymbolicName: 'DecryptionProblem',\n    },\n    {\n        Group: '',\n        Description: 'Signature problem',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 8,\n        Tag: 373,\n        SymbolicName: 'SignatureProblem',\n    },\n    {\n        Group: '',\n        Description: 'CompID problem',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 9,\n        Tag: 373,\n        SymbolicName: 'CompIDProblem',\n    },\n    {\n        Group: '',\n        Description: 'SendingTime Accuracy Problem',\n        added: 'FIX.4.2',\n        Value: '10',\n        Sort: 10,\n        Tag: 373,\n        SymbolicName: 'SendingTimeAccuracyProblem',\n    },\n    {\n        Group: '',\n        Description: 'Invalid MsgType',\n        added: 'FIX.4.2',\n        Value: '11',\n        Sort: 11,\n        Tag: 373,\n        SymbolicName: 'InvalidMsgType',\n    },\n    {\n        Group: '',\n        Description: 'XML Validation Error',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 373,\n        SymbolicName: 'XMLValidationError',\n    },\n    {\n        Group: '',\n        Description: 'Tag appears more than once',\n        added: 'FIX.4.3',\n        Value: '13',\n        Sort: 13,\n        Tag: 373,\n        SymbolicName: 'TagAppearsMoreThanOnce',\n    },\n    {\n        Group: '',\n        Description: 'Tag specified out of required order',\n        added: 'FIX.4.3',\n        Value: '14',\n        Sort: 14,\n        Tag: 373,\n        SymbolicName: 'TagSpecifiedOutOfRequiredOrder',\n    },\n    {\n        Group: '',\n        Description: 'Repeating group fields out of order',\n        added: 'FIX.4.3',\n        Value: '15',\n        Sort: 15,\n        Tag: 373,\n        SymbolicName: 'RepeatingGroupFieldsOutOfOrder',\n    },\n    {\n        Group: '',\n        Description: 'Incorrect NumInGroup count for repeating group',\n        added: 'FIX.4.3',\n        Value: '16',\n        Sort: 16,\n        Tag: 373,\n        SymbolicName: 'IncorrectNumInGroupCountForRepeatingGroup',\n    },\n    {\n        Group: '',\n        Description: 'Non \"Data\" value includes field delimiter (<SOH> character)',\n        added: 'FIX.4.3',\n        Value: '17',\n        Sort: 17,\n        Tag: 373,\n        SymbolicName: 'Non',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/Unsupported Application Version',\n        added: 'FIX.5.0',\n        Value: '18',\n        Sort: 19,\n        addedEP: 56,\n        Tag: 373,\n        SymbolicName: 'Invalid',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 373,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.2',\n        Value: 'C',\n        Sort: 1,\n        Tag: 374,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.2',\n        Value: 'N',\n        Sort: 2,\n        Tag: 374,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Was not solicited',\n        added: 'FIX.4.2',\n        Value: 'N',\n        Sort: 1,\n        Tag: 377,\n        SymbolicName: 'WasNotSolicited',\n    },\n    {\n        Group: '',\n        Description: 'Was solicited',\n        added: 'FIX.4.2',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 377,\n        SymbolicName: 'WasSolicited',\n    },\n    {\n        Group: '',\n        Description: 'GT corporate action',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 0,\n        Tag: 378,\n        SymbolicName: 'GTCorporateAction',\n    },\n    {\n        Group: '',\n        Description: 'GT renewal / restatement (no corporate action)',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 378,\n        SymbolicName: 'GTRenewal',\n    },\n    {\n        Group: '',\n        Description: 'Verbal change',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 378,\n        SymbolicName: 'VerbalChange',\n    },\n    {\n        Group: '',\n        Description: 'Repricing of order',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 378,\n        SymbolicName: 'RepricingOfOrder',\n    },\n    {\n        Group: '',\n        Description: 'Broker option',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 378,\n        SymbolicName: 'BrokerOption',\n    },\n    {\n        Group: '',\n        Description: 'Partial decline of OrderQty (e.g. exchange initiated partial cancel)',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 5,\n        Tag: 378,\n        SymbolicName: 'PartialDeclineOfOrderQty',\n    },\n    {\n        Group: '',\n        Description: 'Cancel on Trading Halt',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 378,\n        SymbolicName: 'CancelOnTradingHalt',\n    },\n    {\n        Group: '',\n        Description: 'Cancel on System Failure',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 378,\n        SymbolicName: 'CancelOnSystemFailure',\n    },\n    {\n        Group: '',\n        Description: 'Market (Exchange) option',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 378,\n        SymbolicName: 'Market',\n    },\n    {\n        Group: '',\n        Description: 'Canceled, not best',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 9,\n        Tag: 378,\n        SymbolicName: 'Canceled',\n    },\n    {\n        Group: '',\n        Description: 'Warehouse Recap',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 10,\n        Tag: 378,\n        SymbolicName: 'WarehouseRecap',\n    },\n    {\n        Group: '',\n        Description: 'Peg Refresh',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 11,\n        addedEP: 22,\n        Tag: 378,\n        SymbolicName: 'PegRefresh',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 378,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 380,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Unknown ID',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 380,\n        SymbolicName: 'UnknownID',\n    },\n    {\n        Group: '',\n        Description: 'Unknown Security',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 380,\n        SymbolicName: 'UnknownSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported Message Type',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        Value: '3',\n        Sort: 4,\n        Tag: 380,\n        SymbolicName: 'UnsupportedMessageType',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Application not available',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 5,\n        Tag: 380,\n        SymbolicName: 'ApplicationNotAvailable',\n    },\n    {\n        Group: '',\n        Description: 'Conditionally required field missing',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 6,\n        Tag: 380,\n        SymbolicName: 'ConditionallyRequiredFieldMissing',\n    },\n    {\n        Group: '',\n        Description: 'Not Authorized',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 7,\n        Tag: 380,\n        SymbolicName: 'NotAuthorized',\n    },\n    {\n        Group: '',\n        Description: 'DeliverTo firm not available at this time',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 8,\n        Tag: 380,\n        SymbolicName: 'DeliverToFirmNotAvailableAtThisTime',\n    },\n    {\n        Group: '',\n        Description: 'Invalid price increment',\n        added: 'FIX.4.4',\n        Value: '18',\n        Sort: 9,\n        addedEP: 6,\n        Tag: 380,\n        SymbolicName: 'InvalidPriceIncrement',\n    },\n    {\n        Group: '',\n        Description: 'Receive',\n        added: 'FIX.4.2',\n        Value: 'R',\n        Sort: 1,\n        Tag: 385,\n        SymbolicName: 'Receive',\n    },\n    {\n        Group: '',\n        Description: 'Send',\n        added: 'FIX.4.2',\n        Value: 'S',\n        Sort: 2,\n        Tag: 385,\n        SymbolicName: 'Send',\n    },\n    {\n        Group: '',\n        Description: 'Related to displayed price',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 388,\n        SymbolicName: 'RelatedToDisplayedPrice',\n    },\n    {\n        Group: '',\n        Description: 'Related to market price',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 388,\n        SymbolicName: 'RelatedToMarketPrice',\n    },\n    {\n        Group: '',\n        Description: 'Related to primary price',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 388,\n        SymbolicName: 'RelatedToPrimaryPrice',\n    },\n    {\n        Group: '',\n        Description: 'Related to local primary price',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 4,\n        Tag: 388,\n        SymbolicName: 'RelatedToLocalPrimaryPrice',\n    },\n    {\n        Group: '',\n        Description: 'Related to midpoint price',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 5,\n        Tag: 388,\n        SymbolicName: 'RelatedToMidpointPrice',\n    },\n    {\n        Group: '',\n        Description: 'Related to last trade price',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 6,\n        Tag: 388,\n        SymbolicName: 'RelatedToLastTradePrice',\n    },\n    {\n        Group: '',\n        Description: 'Related to VWAP',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 7,\n        Tag: 388,\n        SymbolicName: 'RelatedToVWAP',\n    },\n    {\n        Group: '',\n        Description: 'Average Price Guarantee',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 8,\n        addedEP: 22,\n        Tag: 388,\n        SymbolicName: 'AveragePriceGuarantee',\n    },\n    {\n        Group: '',\n        Description: '\"Non Disclosed\" style (e.g. US/European)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 394,\n        SymbolicName: 'NonDisclosed',\n    },\n    {\n        Group: '',\n        Description: '\"Disclosed\" sytle (e.g. Japanese)',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 394,\n        SymbolicName: 'Disclosed',\n    },\n    {\n        Group: '',\n        Description: 'No bidding process',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 394,\n        SymbolicName: 'NoBiddingProcess',\n    },\n    {\n        Group: '',\n        Description: 'Sector',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 399,\n        SymbolicName: 'Sector',\n    },\n    {\n        Group: '',\n        Description: 'Country',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 399,\n        SymbolicName: 'Country',\n    },\n    {\n        Group: '',\n        Description: 'Index',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 399,\n        SymbolicName: 'Index',\n    },\n    {\n        Group: '',\n        Description: 'Side Value 1',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 401,\n        SymbolicName: 'SideValue1',\n    },\n    {\n        Group: '',\n        Description: 'Side Value 2',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 401,\n        SymbolicName: 'SideValue2',\n    },\n    {\n        Group: '',\n        Description: '5-day moving average',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 409,\n        SymbolicName: 'FiveDayMovingAverage',\n    },\n    {\n        Group: '',\n        Description: '20-day moving average',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 409,\n        SymbolicName: 'TwentyDayMovingAverage',\n    },\n    {\n        Group: '',\n        Description: 'Normal market size',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 409,\n        SymbolicName: 'NormalMarketSize',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 409,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'False',\n        added: 'FIX.4.2',\n        Value: 'N',\n        Sort: 1,\n        Tag: 411,\n        SymbolicName: 'False',\n    },\n    {\n        Group: '',\n        Description: 'True',\n        added: 'FIX.4.2',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 411,\n        SymbolicName: 'True',\n    },\n    {\n        Group: '',\n        Description:\n            'Buy-side explicitly requests status using Statue Request (default), the sell-side firm can, however, send a DONE status List STatus Response in an unsolicited fashion',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 414,\n        SymbolicName: 'BuySideRequests',\n    },\n    {\n        Group: '',\n        Description:\n            'Sell-side periodically sends status using List Status. Period optionally specified in ProgressPeriod.',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 414,\n        SymbolicName: 'SellSideSends',\n    },\n    {\n        Group: '',\n        Description: 'Real-time execution reports (to be discourage)',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 414,\n        SymbolicName: 'RealTimeExecutionReports',\n    },\n    {\n        Group: '',\n        Description: 'Net',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 416,\n        SymbolicName: 'Net',\n    },\n    {\n        Group: '',\n        Description: 'Gross',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 416,\n        SymbolicName: 'Gross',\n    },\n    {\n        Group: '',\n        Description: 'Agency',\n        added: 'FIX.4.2',\n        Value: 'A',\n        Sort: 1,\n        Tag: 418,\n        SymbolicName: 'Agency',\n    },\n    {\n        Group: '',\n        Description: 'VWAP Guarantee',\n        added: 'FIX.4.2',\n        Value: 'G',\n        Sort: 2,\n        Tag: 418,\n        SymbolicName: 'VWAPGuarantee',\n    },\n    {\n        Group: '',\n        Description: 'Guaranteed Close',\n        added: 'FIX.4.2',\n        Value: 'J',\n        Sort: 3,\n        Tag: 418,\n        SymbolicName: 'GuaranteedClose',\n    },\n    {\n        Group: '',\n        Description: 'Risk Trade',\n        added: 'FIX.4.2',\n        Value: 'R',\n        Sort: 4,\n        Tag: 418,\n        SymbolicName: 'RiskTrade',\n    },\n    {\n        Group: '',\n        Description: 'Closing price at morning session',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 1,\n        Tag: 419,\n        SymbolicName: 'ClosingPriceAtMorningSession',\n    },\n    {\n        Group: '',\n        Description: 'Closing price',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 2,\n        Tag: 419,\n        SymbolicName: 'ClosingPrice',\n    },\n    {\n        Group: '',\n        Description: 'Current price',\n        added: 'FIX.4.2',\n        Value: '4',\n        Sort: 3,\n        Tag: 419,\n        SymbolicName: 'CurrentPrice',\n    },\n    {\n        Group: '',\n        Description: 'SQ',\n        added: 'FIX.4.2',\n        Value: '5',\n        Sort: 4,\n        Tag: 419,\n        SymbolicName: 'SQ',\n    },\n    {\n        Group: '',\n        Description: 'VWAP through a day',\n        added: 'FIX.4.2',\n        Value: '6',\n        Sort: 5,\n        Tag: 419,\n        SymbolicName: 'VWAPThroughADay',\n    },\n    {\n        Group: '',\n        Description: 'VWAP through a morning session',\n        added: 'FIX.4.2',\n        Value: '7',\n        Sort: 6,\n        Tag: 419,\n        SymbolicName: 'VWAPThroughAMorningSession',\n    },\n    {\n        Group: '',\n        Description: 'VWAP through an afternoon session',\n        added: 'FIX.4.2',\n        Value: '8',\n        Sort: 7,\n        Tag: 419,\n        SymbolicName: 'VWAPThroughAnAfternoonSession',\n    },\n    {\n        Group: '',\n        Description: 'VWAP through a day except \"YORI\" (an opening auction)',\n        added: 'FIX.4.2',\n        Value: '9',\n        Sort: 8,\n        Tag: 419,\n        SymbolicName: 'VWAPThroughADayExcept',\n    },\n    {\n        Group: '',\n        Description: 'VWAP through a morning session except \"YORI\" (an opening auction)',\n        added: 'FIX.4.2',\n        Value: 'A',\n        Sort: 9,\n        Tag: 419,\n        SymbolicName: 'VWAPThroughAMorningSessionExcept',\n    },\n    {\n        Group: '',\n        Description: 'VWAP through an afternoon session except \"YORI\" (an opening auction)',\n        added: 'FIX.4.2',\n        Value: 'B',\n        Sort: 10,\n        Tag: 419,\n        SymbolicName: 'VWAPThroughAnAfternoonSessionExcept',\n    },\n    {\n        Group: '',\n        Description: 'Strike',\n        added: 'FIX.4.2',\n        Value: 'C',\n        Sort: 11,\n        Tag: 419,\n        SymbolicName: 'Strike',\n    },\n    {\n        Group: '',\n        Description: 'Open',\n        added: 'FIX.4.2',\n        Value: 'D',\n        Sort: 12,\n        Tag: 419,\n        SymbolicName: 'Open',\n    },\n    {\n        Group: '',\n        Description: 'Others',\n        added: 'FIX.4.2',\n        Value: 'Z',\n        Sort: 30,\n        Tag: 419,\n        SymbolicName: 'Others',\n    },\n    {\n        Group: '',\n        Description: 'Percentage (i.e. percent of par) (often called \"dollar price\" for fixed income)',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 0,\n        Tag: 423,\n        SymbolicName: 'Percentage',\n    },\n    {\n        Group: '',\n        Description: 'Per unit (i.e. per share or contract)',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 1,\n        Tag: 423,\n        SymbolicName: 'PerUnit',\n    },\n    {\n        Group: '',\n        Description: 'Fixed amount (absolute value)',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 2,\n        Tag: 423,\n        SymbolicName: 'FixedAmount',\n    },\n    {\n        Group: '',\n        Description: 'Discount - percentage points below par',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 3,\n        Tag: 423,\n        SymbolicName: 'Discount',\n    },\n    {\n        Group: '',\n        Description: 'Premium - percentage points over par',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 4,\n        Tag: 423,\n        SymbolicName: 'Premium',\n    },\n    {\n        Group: '',\n        Description: 'Spread (basis points spread)',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 5,\n        Tag: 423,\n        SymbolicName: 'Spread',\n    },\n    {\n        Group: '',\n        Description: 'TED Price',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 6,\n        Tag: 423,\n        SymbolicName: 'TEDPrice',\n    },\n    {\n        Group: '',\n        Description: 'TED Yield',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 7,\n        Tag: 423,\n        SymbolicName: 'TEDYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 8,\n        Tag: 423,\n        SymbolicName: 'Yield',\n    },\n    {\n        Group: '',\n        Description: 'Fixed cabinet trade price (primarily for listed futures and options)',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 9,\n        Tag: 423,\n        SymbolicName: 'FixedCabinetTradePrice',\n    },\n    {\n        Group: '',\n        Description: 'Variable cabinet trade price (primarily for listed futures and options)',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 10,\n        Tag: 423,\n        SymbolicName: 'VariableCabinetTradePrice',\n    },\n    {\n        Group: '',\n        Description: 'Product ticks in halfs',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 12,\n        addedEP: 19,\n        Tag: 423,\n        SymbolicName: 'ProductTicksInHalfs',\n    },\n    {\n        Group: '',\n        Description: 'Product ticks in fourths',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 13,\n        addedEP: 19,\n        Tag: 423,\n        SymbolicName: 'ProductTicksInFourths',\n    },\n    {\n        Group: '',\n        Description: 'Product ticks in eights',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 14,\n        addedEP: 19,\n        Tag: 423,\n        SymbolicName: 'ProductTicksInEights',\n    },\n    {\n        Group: '',\n        Description: 'Product ticks in sixteenths',\n        added: 'FIX.4.4',\n        Value: '16',\n        Sort: 15,\n        addedEP: 19,\n        Tag: 423,\n        SymbolicName: 'ProductTicksInSixteenths',\n    },\n    {\n        Group: '',\n        Description: 'Product ticks in thirty-seconds',\n        added: 'FIX.4.4',\n        Value: '17',\n        Sort: 16,\n        addedEP: 19,\n        Tag: 423,\n        SymbolicName: 'ProductTicksInThirtySeconds',\n    },\n    {\n        Group: '',\n        Description: 'Product ticks in sixty-forths',\n        added: 'FIX.4.4',\n        Value: '18',\n        Sort: 17,\n        addedEP: 19,\n        Tag: 423,\n        SymbolicName: 'ProductTicksInSixtyForths',\n    },\n    {\n        Group: '',\n        Description: 'Product ticks in one-twenty-eights',\n        added: 'FIX.4.4',\n        Value: '19',\n        Sort: 18,\n        addedEP: 19,\n        Tag: 423,\n        SymbolicName: 'ProductTicksInOneTwentyEights',\n    },\n    {\n        Group: '',\n        Description: 'Book out all trades on day of execution',\n        issue: 'SPEC-398',\n        added: 'FIX.4.2',\n        Value: '0',\n        Sort: 1,\n        Tag: 427,\n        SymbolicName: 'BookOutAllTradesOnDayOfExecution',\n    },\n    {\n        Group: '',\n        Description: 'Accumulate executions until order is filled or expires',\n        issue: 'SPEC-398',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 2,\n        Tag: 427,\n        SymbolicName: 'AccumulateUntilFilledOrExpired',\n    },\n    {\n        Group: '',\n        Description: 'Accumulate until verbally notified otherwise',\n        issue: 'SPEC-398',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 3,\n        Tag: 427,\n        SymbolicName: 'AccumulateUntilVerballyNotifiedOtherwise',\n    },\n    {\n        Group: '',\n        Description: 'Ack',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 429,\n        SymbolicName: 'Ack',\n    },\n    {\n        Group: '',\n        Description: 'Response',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 429,\n        SymbolicName: 'Response',\n    },\n    {\n        Group: '',\n        Description: 'Timed',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 429,\n        SymbolicName: 'Timed',\n    },\n    {\n        Group: '',\n        Description: 'Exec Started',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 429,\n        SymbolicName: 'ExecStarted',\n    },\n    {\n        Group: '',\n        Description: 'All Done',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 429,\n        SymbolicName: 'AllDone',\n    },\n    {\n        Group: '',\n        Description: 'Alert',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 429,\n        SymbolicName: 'Alert',\n    },\n    {\n        Group: '',\n        Description: 'Net',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 430,\n        SymbolicName: 'Net',\n    },\n    {\n        Group: '',\n        Description: 'Gross',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 430,\n        SymbolicName: 'Gross',\n    },\n    {\n        Group: '',\n        Description: 'In bidding process',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 431,\n        SymbolicName: 'InBiddingProcess',\n    },\n    {\n        Group: '',\n        Description: 'Received for execution',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 431,\n        SymbolicName: 'ReceivedForExecution',\n    },\n    {\n        Group: '',\n        Description: 'Executing',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 431,\n        SymbolicName: 'Executing',\n    },\n    {\n        Group: '',\n        Description: 'Cancelling',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 431,\n        SymbolicName: 'Cancelling',\n    },\n    {\n        Group: '',\n        Description: 'Alert',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 431,\n        SymbolicName: 'Alert',\n    },\n    {\n        Group: '',\n        Description: 'All Done',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 431,\n        SymbolicName: 'AllDone',\n    },\n    {\n        Group: '',\n        Description: 'Reject',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 431,\n        SymbolicName: 'Reject',\n    },\n    {\n        Group: '',\n        Description: 'Immediate',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 433,\n        SymbolicName: 'Immediate',\n    },\n    {\n        Group: '',\n        Description:\n            'Wait for Execut Instruction (i.e. a List Execut message or phone call before proceeding with execution of the list)',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 433,\n        SymbolicName: 'WaitForInstruction',\n    },\n    {\n        Group: '',\n        Description: 'Exchange/switch CIV order - Sell driven',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 433,\n        SymbolicName: 'SellDriven',\n    },\n    {\n        Group: '',\n        Description:\n            'Exchange/switch CIV order - Buy driven, cash top-up (i.e. additional cash will be provided to fulfill the order)',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 433,\n        SymbolicName: 'BuyDrivenCashTopUp',\n    },\n    {\n        Group: '',\n        Description:\n            'Exchange/switch CIV order - Buy driven, cash withdraw (i.e. additional cash will not be provided to fulfill the order)',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 433,\n        SymbolicName: 'BuyDrivenCashWithdraw',\n    },\n    {\n        Group: '',\n        Description: 'Order cancel request',\n        added: 'FIX.4.2',\n        Value: '1',\n        Sort: 1,\n        Tag: 434,\n        SymbolicName: 'OrderCancelRequest',\n    },\n    {\n        Group: '',\n        Description: 'Order cancel/replace request',\n        added: 'FIX.4.2',\n        Value: '2',\n        Sort: 2,\n        Tag: 434,\n        SymbolicName: 'OrderCancel',\n    },\n    {\n        Group: '',\n        Description: 'Single security (default if not specified)',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        Value: '1',\n        Sort: 1,\n        Tag: 442,\n        SymbolicName: 'SingleSecurity',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Individual leg of a multi-leg security',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        Value: '2',\n        Sort: 2,\n        Tag: 442,\n        SymbolicName: 'IndividualLegOfAMultiLegSecurity',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Multi-leg security',\n        added: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 442,\n        SymbolicName: 'MultiLegSecurity',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for CIV',\n        Description: 'UK National Insurance or Pension Number',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 1,\n        Tag: 447,\n        SymbolicName: 'UKNationalInsuranceOrPensionNumber',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for CIV',\n        Description: 'US Social Security Number',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 2,\n        Tag: 447,\n        SymbolicName: 'USSocialSecurityNumber',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for CIV',\n        Description: 'US Employer or Tax ID Number',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 3,\n        Tag: 447,\n        SymbolicName: 'USEmployerOrTaxIDNumber',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for CIV',\n        Description: 'Australian Business Number',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 4,\n        Tag: 447,\n        SymbolicName: 'AustralianBusinessNumber',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for CIV',\n        Description: 'Australian Tax File Number',\n        added: 'FIX.4.3',\n        Value: 'A',\n        Sort: 5,\n        Tag: 447,\n        SymbolicName: 'AustralianTaxFileNumber',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for Equities',\n        Description: 'Korean Investor ID',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 447,\n        SymbolicName: 'KoreanInvestorID',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for Equities',\n        Description: 'Taiwanese Qualified Foreign Investor ID QFII/FID',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 447,\n        SymbolicName: 'TaiwaneseForeignInvestorID',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for Equities',\n        Description: 'Taiwanese Trading Acct',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 447,\n        SymbolicName: 'TaiwaneseTradingAcct',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for Equities',\n        Description: 'Malaysian Central Depository (MCD) number',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 447,\n        SymbolicName: 'MalaysianCentralDepository',\n    },\n    {\n        Group: 'For PartyRole = \"InvestorID\" and for Equities',\n        Description: 'Chinese Investor ID',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 447,\n        SymbolicName: 'ChineseInvestorID',\n    },\n    {\n        Group: 'For PartyRole=\"Broker of Credit\"',\n        Description:\n            'Directed broker three character acronym as defined in ISITC \"ETC Best Practice\" guidelines document',\n        added: 'FIX.4.4',\n        Value: 'I',\n        Sort: 1,\n        Tag: 447,\n        SymbolicName: 'ISITCAcronym',\n    },\n    {\n        Group: 'For all PartyRoles',\n        Description: 'BIC (Bank Identification Code - SWIFT managed) code (ISO9362 - See \"Appendix 6-B\")',\n        added: 'FIX.4.3',\n        Value: 'B',\n        Sort: 1,\n        Tag: 447,\n        SymbolicName: 'BIC',\n    },\n    {\n        Group: 'For all PartyRoles',\n        Description: 'Generally accepted market participant identifier (e.g. NASD mnemonic)',\n        added: 'FIX.4.3',\n        Value: 'C',\n        Sort: 2,\n        Tag: 447,\n        SymbolicName: 'GeneralIdentifier',\n    },\n    {\n        Group: 'For all PartyRoles',\n        Description: 'Proprietary / Custom code',\n        added: 'FIX.4.3',\n        Value: 'D',\n        Sort: 3,\n        Tag: 447,\n        SymbolicName: 'Proprietary',\n    },\n    {\n        Group: 'For all PartyRoles',\n        Description: 'ISO Country Code',\n        added: 'FIX.4.3',\n        Value: 'E',\n        Sort: 4,\n        Tag: 447,\n        SymbolicName: 'ISOCountryCode',\n    },\n    {\n        Group: 'For all PartyRoles',\n        Description:\n            'Settlement Entity Location (note if Local Market Settlement use \"E=ISO Country Code\") (see \"Appendix 6-G\" for valid values)',\n        added: 'FIX.4.3',\n        Value: 'F',\n        Sort: 5,\n        Tag: 447,\n        SymbolicName: 'SettlementEntityLocation',\n    },\n    {\n        Group: 'For all PartyRoles',\n        Description: 'MIC (ISO 10383 - Market Identificer Code) (See \"Appendix 6-C\")',\n        added: 'FIX.4.4',\n        Value: 'G',\n        Sort: 6,\n        Tag: 447,\n        SymbolicName: 'MIC',\n    },\n    {\n        Group: 'For all PartyRoles',\n        Description: 'CSD participant/member code (e.g.. Euroclear, DTC, CREST or Kassenverein number)',\n        added: 'FIX.4.4',\n        Value: 'H',\n        Sort: 7,\n        Tag: 447,\n        SymbolicName: 'CSDParticipant',\n    },\n    {\n        Group: '',\n        Description: 'Executing Firm (formerly FIX 4.2 ExecBroker)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 452,\n        SymbolicName: 'ExecutingFirm',\n    },\n    {\n        Group: '',\n        Description: 'Broker of Credit (formerly FIX 4.2 BrokerOfCredit)',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 452,\n        SymbolicName: 'BrokerOfCredit',\n    },\n    {\n        Group: '',\n        Description: 'Client ID (formerly FIX 4.2 ClientID)',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 452,\n        SymbolicName: 'ClientID',\n    },\n    {\n        Group: '',\n        Description: 'Clearing Firm (formerly FIX 4.2 ClearingFirm)',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 452,\n        SymbolicName: 'ClearingFirm',\n    },\n    {\n        Group: '',\n        Description: 'Investor ID',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 452,\n        SymbolicName: 'InvestorID',\n    },\n    {\n        Group: '',\n        Description: 'Introducing Firm',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 452,\n        SymbolicName: 'IntroducingFirm',\n    },\n    {\n        Group: '',\n        Description: 'Entering Firm',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 452,\n        SymbolicName: 'EnteringFirm',\n    },\n    {\n        Group: '',\n        Description: 'Locate / Lending Firm (for short-sales)',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 452,\n        SymbolicName: 'Locate',\n    },\n    {\n        Group: '',\n        Description: 'Fund Manager Client ID (for CIV)',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 452,\n        SymbolicName: 'FundManagerClientID',\n    },\n    {\n        Group: '',\n        Description: 'Settlement Location (formerly FIX 4.2 SettlLocation)',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 452,\n        SymbolicName: 'SettlementLocation',\n    },\n    {\n        Group: '',\n        Description:\n            'Order Origination Trader (associated with Order Origination Firm - i.e. trader who initiates/submits the order)',\n        added: 'FIX.4.3',\n        Value: '11',\n        Sort: 11,\n        Tag: 452,\n        SymbolicName: 'OrderOriginationTrader',\n    },\n    {\n        Group: '',\n        Description: 'Executing Trader (associated with Executing Firm - actually executes)',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 452,\n        SymbolicName: 'ExecutingTrader',\n    },\n    {\n        Group: '',\n        Description: 'Order Origination Firm (e.g. buy-side firm)',\n        added: 'FIX.4.3',\n        Value: '13',\n        Sort: 13,\n        Tag: 452,\n        SymbolicName: 'OrderOriginationFirm',\n    },\n    {\n        Group: '',\n        Description: 'Giveup Clearing Firm (firm to which trade is given up)',\n        added: 'FIX.4.3',\n        Value: '14',\n        Sort: 14,\n        Tag: 452,\n        SymbolicName: 'GiveupClearingFirm',\n    },\n    {\n        Group: '',\n        Description: 'Correspondant Clearing Firm',\n        added: 'FIX.4.3',\n        Value: '15',\n        Sort: 15,\n        Tag: 452,\n        SymbolicName: 'CorrespondantClearingFirm',\n    },\n    {\n        Group: '',\n        Description: 'Executing System',\n        added: 'FIX.4.3',\n        Value: '16',\n        Sort: 16,\n        Tag: 452,\n        SymbolicName: 'ExecutingSystem',\n    },\n    {\n        Group: '',\n        Description: 'Contra Firm',\n        added: 'FIX.4.3',\n        Value: '17',\n        Sort: 17,\n        Tag: 452,\n        SymbolicName: 'ContraFirm',\n    },\n    {\n        Group: '',\n        Description: 'Contra Clearing Firm',\n        added: 'FIX.4.3',\n        Value: '18',\n        Sort: 18,\n        Tag: 452,\n        SymbolicName: 'ContraClearingFirm',\n    },\n    {\n        Group: '',\n        Description: 'Sponsoring Firm',\n        added: 'FIX.4.3',\n        Value: '19',\n        Sort: 19,\n        Tag: 452,\n        SymbolicName: 'SponsoringFirm',\n    },\n    {\n        Group: '',\n        Description: 'Underlying Contra Firm',\n        added: 'FIX.4.3',\n        Value: '20',\n        Sort: 20,\n        Tag: 452,\n        SymbolicName: 'UnderlyingContraFirm',\n    },\n    {\n        Group: '',\n        Description: 'Clearing Organization',\n        added: 'FIX.4.4',\n        Value: '21',\n        Sort: 21,\n        Tag: 452,\n        SymbolicName: 'ClearingOrganization',\n    },\n    {\n        Group: '',\n        Description: 'Exchange',\n        added: 'FIX.4.4',\n        Value: '22',\n        Sort: 22,\n        Tag: 452,\n        SymbolicName: 'Exchange',\n    },\n    {\n        Group: '',\n        Description: 'Customer Account',\n        added: 'FIX.4.4',\n        Value: '24',\n        Sort: 24,\n        Tag: 452,\n        SymbolicName: 'CustomerAccount',\n    },\n    {\n        Group: '',\n        Description: 'Correspondent Clearing Organization',\n        added: 'FIX.4.4',\n        Value: '25',\n        Sort: 25,\n        Tag: 452,\n        SymbolicName: 'CorrespondentClearingOrganization',\n    },\n    {\n        Group: '',\n        Description: 'Correspondent Broker',\n        added: 'FIX.4.4',\n        Value: '26',\n        Sort: 26,\n        Tag: 452,\n        SymbolicName: 'CorrespondentBroker',\n    },\n    {\n        Group: '',\n        Description: 'Buyer/Seller (Receiver/Deliverer)',\n        added: 'FIX.4.4',\n        Value: '27',\n        Sort: 27,\n        Tag: 452,\n        SymbolicName: 'Buyer',\n    },\n    {\n        Group: '',\n        Description: 'Custodian',\n        added: 'FIX.4.4',\n        Value: '28',\n        Sort: 28,\n        Tag: 452,\n        SymbolicName: 'Custodian',\n    },\n    {\n        Group: '',\n        Description: 'Intermediary',\n        added: 'FIX.4.4',\n        Value: '29',\n        Sort: 29,\n        Tag: 452,\n        SymbolicName: 'Intermediary',\n    },\n    {\n        Group: '',\n        Description: 'Agent',\n        added: 'FIX.4.4',\n        Value: '30',\n        Sort: 30,\n        Tag: 452,\n        SymbolicName: 'Agent',\n    },\n    {\n        Group: '',\n        Description: 'Sub-custodian',\n        added: 'FIX.4.4',\n        Value: '31',\n        Sort: 31,\n        Tag: 452,\n        SymbolicName: 'SubCustodian',\n    },\n    {\n        Group: '',\n        Description: 'Beneficiary',\n        added: 'FIX.4.4',\n        Value: '32',\n        Sort: 32,\n        Tag: 452,\n        SymbolicName: 'Beneficiary',\n    },\n    {\n        Group: '',\n        Description: 'Interested party',\n        added: 'FIX.4.4',\n        Value: '33',\n        Sort: 33,\n        Tag: 452,\n        SymbolicName: 'InterestedParty',\n    },\n    {\n        Group: '',\n        Description: 'Regulatory body',\n        added: 'FIX.4.4',\n        Value: '34',\n        Sort: 34,\n        Tag: 452,\n        SymbolicName: 'RegulatoryBody',\n    },\n    {\n        Group: '',\n        Description: 'Liquidity provider',\n        added: 'FIX.4.4',\n        Value: '35',\n        Sort: 35,\n        Tag: 452,\n        SymbolicName: 'LiquidityProvider',\n    },\n    {\n        Group: '',\n        Description: 'Entering trader',\n        added: 'FIX.4.4',\n        Value: '36',\n        Sort: 36,\n        Tag: 452,\n        SymbolicName: 'EnteringTrader',\n    },\n    {\n        Group: '',\n        Description: 'Contra trader',\n        added: 'FIX.4.4',\n        Value: '37',\n        Sort: 37,\n        Tag: 452,\n        SymbolicName: 'ContraTrader',\n    },\n    {\n        Group: '',\n        Description: 'Position account',\n        added: 'FIX.4.4',\n        Value: '38',\n        Sort: 38,\n        Tag: 452,\n        SymbolicName: 'PositionAccount',\n    },\n    {\n        Group: '',\n        Description: 'Contra Investor ID',\n        added: 'FIX.4.4',\n        Value: '39',\n        Sort: 39,\n        addedEP: -1,\n        Tag: 452,\n        SymbolicName: 'ContraInvestorID',\n    },\n    {\n        Group: '',\n        Description: 'Transfer to Firm',\n        added: 'FIX.4.4',\n        Value: '40',\n        Sort: 40,\n        addedEP: -1,\n        Tag: 452,\n        SymbolicName: 'TransferToFirm',\n    },\n    {\n        Group: '',\n        Description: 'Contra Position Account',\n        added: 'FIX.4.4',\n        Value: '41',\n        Sort: 41,\n        addedEP: 5,\n        Tag: 452,\n        SymbolicName: 'ContraPositionAccount',\n    },\n    {\n        Group: '',\n        Description: 'Contra Exchange',\n        added: 'FIX.4.4',\n        Value: '42',\n        Sort: 42,\n        addedEP: 5,\n        Tag: 452,\n        SymbolicName: 'ContraExchange',\n    },\n    {\n        Group: '',\n        Description: 'Internal Carry Account',\n        added: 'FIX.4.4',\n        Value: '43',\n        Sort: 43,\n        addedEP: 5,\n        Tag: 452,\n        SymbolicName: 'InternalCarryAccount',\n    },\n    {\n        Group: '',\n        Description: 'Order Entry Operator ID',\n        added: 'FIX.4.4',\n        Value: '44',\n        Sort: 44,\n        addedEP: 5,\n        Tag: 452,\n        SymbolicName: 'OrderEntryOperatorID',\n    },\n    {\n        Group: '',\n        Description: 'Secondary Account Number',\n        added: 'FIX.4.4',\n        Value: '45',\n        Sort: 45,\n        addedEP: 5,\n        Tag: 452,\n        SymbolicName: 'SecondaryAccountNumber',\n    },\n    {\n        Group: '',\n        Description: 'Foreign Firm',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: '46',\n        Sort: 46,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'ForeignFirm',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Third Party Allocation Firm',\n        added: 'FIX.4.4',\n        Value: '47',\n        Sort: 47,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'ThirdPartyAllocationFirm',\n    },\n    {\n        Group: '',\n        Description: 'Claiming Account',\n        added: 'FIX.4.4',\n        Value: '48',\n        Sort: 48,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'ClaimingAccount',\n    },\n    {\n        Group: '',\n        Description: 'Asset Manager',\n        added: 'FIX.4.4',\n        Value: '49',\n        Sort: 49,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'AssetManager',\n    },\n    {\n        Group: '',\n        Description: 'Pledgor Account',\n        added: 'FIX.4.4',\n        Value: '50',\n        Sort: 50,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'PledgorAccount',\n    },\n    {\n        Group: '',\n        Description: 'Pledgee Account',\n        added: 'FIX.4.4',\n        Value: '51',\n        Sort: 51,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'PledgeeAccount',\n    },\n    {\n        Group: '',\n        Description: 'Large Trader Reportable Account',\n        added: 'FIX.4.4',\n        Value: '52',\n        Sort: 52,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'LargeTraderReportableAccount',\n    },\n    {\n        Group: '',\n        Description: 'Trader mnemonic',\n        added: 'FIX.4.4',\n        Value: '53',\n        Sort: 53,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'TraderMnemonic',\n    },\n    {\n        Group: '',\n        Description: 'Sender Location',\n        added: 'FIX.4.4',\n        Value: '54',\n        Sort: 54,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'SenderLocation',\n    },\n    {\n        Group: '',\n        Description: 'Session ID',\n        added: 'FIX.4.4',\n        Value: '55',\n        Sort: 55,\n        addedEP: 8,\n        Tag: 452,\n        SymbolicName: 'SessionID',\n    },\n    {\n        Group: '',\n        Description: 'Acceptable Counterparty',\n        added: 'FIX.4.4',\n        Value: '56',\n        Sort: 56,\n        addedEP: 22,\n        Tag: 452,\n        SymbolicName: 'AcceptableCounterparty',\n    },\n    {\n        Group: '',\n        Description: 'Unacceptable Counterparty',\n        added: 'FIX.4.4',\n        Value: '57',\n        Sort: 57,\n        addedEP: 22,\n        Tag: 452,\n        SymbolicName: 'UnacceptableCounterparty',\n    },\n    {\n        Group: '',\n        Description: 'Entering Unit',\n        added: 'FIX.4.4',\n        Value: '58',\n        Sort: 58,\n        addedEP: 22,\n        Tag: 452,\n        SymbolicName: 'EnteringUnit',\n    },\n    {\n        Group: '',\n        Description: 'Executing Unit',\n        added: 'FIX.4.4',\n        Value: '59',\n        Sort: 59,\n        addedEP: 22,\n        Tag: 452,\n        SymbolicName: 'ExecutingUnit',\n    },\n    {\n        Group: '',\n        Description: 'Introducing Broker',\n        added: 'FIX.4.4',\n        Value: '60',\n        Sort: 60,\n        addedEP: 4,\n        Tag: 452,\n        SymbolicName: 'IntroducingBroker',\n    },\n    {\n        Group: '',\n        Description: 'Quote originator',\n        added: 'FIX.4.4',\n        Value: '61',\n        Sort: 61,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'QuoteOriginator',\n    },\n    {\n        Group: '',\n        Description: 'Report originator',\n        added: 'FIX.4.4',\n        Value: '62',\n        Sort: 62,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'ReportOriginator',\n    },\n    {\n        Group: '',\n        Description: 'Systematic internaliser (SI)',\n        added: 'FIX.4.4',\n        Value: '63',\n        Sort: 63,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'SystematicInternaliser',\n    },\n    {\n        Group: '',\n        Description: 'Multilateral Trading Facility (MTF)',\n        added: 'FIX.4.4',\n        Value: '64',\n        Sort: 64,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'MultilateralTradingFacility',\n    },\n    {\n        Group: '',\n        Description: 'Regulated Market (RM)',\n        added: 'FIX.4.4',\n        Value: '65',\n        Sort: 65,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'RegulatedMarket',\n    },\n    {\n        Group: '',\n        Description: 'Market Maker',\n        added: 'FIX.4.4',\n        Value: '66',\n        Sort: 66,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'MarketMaker',\n    },\n    {\n        Group: '',\n        Description: 'Investment Firm',\n        added: 'FIX.4.4',\n        Value: '67',\n        Sort: 67,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'InvestmentFirm',\n    },\n    {\n        Group: '',\n        Description: 'Host Competent Authority (Host CA)',\n        added: 'FIX.4.4',\n        Value: '68',\n        Sort: 68,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'HostCompetentAuthority',\n    },\n    {\n        Group: '',\n        Description: 'Home Competent Authority (Home CA)',\n        added: 'FIX.4.4',\n        Value: '69',\n        Sort: 69,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'HomeCompetentAuthority',\n    },\n    {\n        Group: '',\n        Description: 'Competent Authority of the most relevant market in terms of liquidity (CAL)',\n        added: 'FIX.4.4',\n        Value: '70',\n        Sort: 70,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'CompetentAuthorityLiquidity',\n    },\n    {\n        Group: '',\n        Description: 'Competent Authority of the Transaction (Execution) Venue (CATV)',\n        added: 'FIX.4.4',\n        Value: '71',\n        Sort: 71,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'CompetentAuthorityTransactionVenue',\n    },\n    {\n        Group: '',\n        Description: 'Reporting intermediary (medium/vendor via which report has been published)',\n        added: 'FIX.4.4',\n        Value: '72',\n        Sort: 72,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'ReportingIntermediary',\n    },\n    {\n        Group: '',\n        Description: 'Execution Venue',\n        added: 'FIX.4.4',\n        Value: '73',\n        Sort: 73,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'ExecutionVenue',\n    },\n    {\n        Group: '',\n        Description: 'Market data entry originator',\n        added: 'FIX.4.4',\n        Value: '74',\n        Sort: 74,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'MarketDataEntryOriginator',\n    },\n    {\n        Group: '',\n        Description: 'Location ID',\n        added: 'FIX.4.4',\n        Value: '75',\n        Sort: 75,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'LocationID',\n    },\n    {\n        Group: '',\n        Description: 'Desk ID',\n        added: 'FIX.4.4',\n        Value: '76',\n        Sort: 76,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'DeskID',\n    },\n    {\n        Group: '',\n        Description: 'Market data market',\n        added: 'FIX.4.4',\n        Value: '77',\n        Sort: 77,\n        addedEP: 26,\n        Tag: 452,\n        SymbolicName: 'MarketDataMarket',\n    },\n    {\n        Group: '',\n        Description: 'Allocation Entity',\n        added: 'FIX.4.4',\n        Value: '78',\n        Sort: 78,\n        addedEP: 35,\n        Tag: 452,\n        SymbolicName: 'AllocationEntity',\n    },\n    {\n        Group: '',\n        Description: 'Prime Broker providing General Trade Services',\n        added: 'FIX.5.0',\n        Value: '79',\n        Sort: 79,\n        addedEP: 68,\n        Tag: 452,\n        SymbolicName: 'PrimeBroker',\n    },\n    {\n        Group: '',\n        Description: 'Step-Out Firm (Prime Broker)',\n        added: 'FIX.5.0',\n        Value: '80',\n        Sort: 80,\n        addedEP: 68,\n        Tag: 452,\n        SymbolicName: 'StepOutFirm',\n    },\n    {\n        Group: '',\n        Description: 'BrokerClearingID',\n        added: 'FIX.5.0',\n        Value: '81',\n        Sort: 81,\n        addedEP: 68,\n        Tag: 452,\n        SymbolicName: 'BrokerClearingID',\n    },\n    {\n        Group: '',\n        Description: 'AGENCY',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 460,\n        SymbolicName: 'AGENCY',\n    },\n    {\n        Group: '',\n        Description: 'COMMODITY',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 460,\n        SymbolicName: 'COMMODITY',\n    },\n    {\n        Group: '',\n        Description: 'CORPORATE',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 460,\n        SymbolicName: 'CORPORATE',\n    },\n    {\n        Group: '',\n        Description: 'CURRENCY',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 460,\n        SymbolicName: 'CURRENCY',\n    },\n    {\n        Group: '',\n        Description: 'EQUITY',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 460,\n        SymbolicName: 'EQUITY',\n    },\n    {\n        Group: '',\n        Description: 'GOVERNMENT',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 460,\n        SymbolicName: 'GOVERNMENT',\n    },\n    {\n        Group: '',\n        Description: 'INDEX',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 460,\n        SymbolicName: 'INDEX',\n    },\n    {\n        Group: '',\n        Description: 'LOAN',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 460,\n        SymbolicName: 'LOAN',\n    },\n    {\n        Group: '',\n        Description: 'MONEYMARKET',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 460,\n        SymbolicName: 'MONEYMARKET',\n    },\n    {\n        Group: '',\n        Description: 'MORTGAGE',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 460,\n        SymbolicName: 'MORTGAGE',\n    },\n    {\n        Group: '',\n        Description: 'MUNICIPAL',\n        added: 'FIX.4.3',\n        Value: '11',\n        Sort: 11,\n        Tag: 460,\n        SymbolicName: 'MUNICIPAL',\n    },\n    {\n        Group: '',\n        Description: 'OTHER',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 460,\n        SymbolicName: 'OTHER',\n    },\n    {\n        Group: '',\n        Description: 'FINANCING',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 13,\n        Tag: 460,\n        SymbolicName: 'FINANCING',\n    },\n    {\n        Group: '',\n        Description: 'Fales (Production)',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 1,\n        Tag: 464,\n        SymbolicName: 'Fales',\n    },\n    {\n        Group: '',\n        Description: 'True (Test)',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 464,\n        SymbolicName: 'True',\n    },\n    {\n        Group: '',\n        Description: 'SHARES',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 465,\n        SymbolicName: 'SHARES',\n    },\n    {\n        Group: '',\n        Description: 'BONDS',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 465,\n        SymbolicName: 'BONDS',\n    },\n    {\n        Group: '',\n        Description: 'CURRENTFACE',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 465,\n        SymbolicName: 'CURRENTFACE',\n    },\n    {\n        Group: '',\n        Description: 'ORIGINALFACE',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 465,\n        SymbolicName: 'ORIGINALFACE',\n    },\n    {\n        Group: '',\n        Description: 'CURRENCY',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 465,\n        SymbolicName: 'CURRENCY',\n    },\n    {\n        Group: '',\n        Description: 'CONTRACTS',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 465,\n        SymbolicName: 'CONTRACTS',\n    },\n    {\n        Group: '',\n        Description: 'OTHER',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 465,\n        SymbolicName: 'OTHER',\n    },\n    {\n        Group: '',\n        Description: 'PAR',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 465,\n        SymbolicName: 'PAR',\n    },\n    {\n        Group: '',\n        Description: 'Round to nearest',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 468,\n        SymbolicName: 'RoundToNearest',\n    },\n    {\n        Group: '',\n        Description: 'Round down',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 2,\n        Tag: 468,\n        SymbolicName: 'RoundDown',\n    },\n    {\n        Group: '',\n        Description: 'Round up',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 3,\n        Tag: 468,\n        SymbolicName: 'RoundUp',\n    },\n    {\n        Group: '',\n        Description: 'CREST',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 477,\n        SymbolicName: 'CREST',\n    },\n    {\n        Group: '',\n        Description: 'NSCC',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 477,\n        SymbolicName: 'NSCC',\n    },\n    {\n        Group: '',\n        Description: 'Euroclear',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 477,\n        SymbolicName: 'Euroclear',\n    },\n    {\n        Group: '',\n        Description: 'Clearstream',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 477,\n        SymbolicName: 'Clearstream',\n    },\n    {\n        Group: '',\n        Description: 'Cheque',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 477,\n        SymbolicName: 'Cheque',\n    },\n    {\n        Group: '',\n        Description: 'Telegraphic Transfer',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        Tag: 477,\n        SymbolicName: 'TelegraphicTransfer',\n    },\n    {\n        Group: '',\n        Description: 'Fed Wire',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 7,\n        Tag: 477,\n        SymbolicName: 'FedWire',\n    },\n    {\n        Group: '',\n        Description: 'Direct Credit (BECS, BACS)',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 8,\n        Tag: 477,\n        SymbolicName: 'DirectCredit',\n    },\n    {\n        Group: '',\n        Description: 'ACH Credit',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 9,\n        Tag: 477,\n        SymbolicName: 'ACHCredit',\n    },\n    {\n        Group: '',\n        Description: 'BPAY',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 10,\n        Tag: 477,\n        SymbolicName: 'BPAY',\n    },\n    {\n        Group: '',\n        Description: 'High Value Clearing System HVACS',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 11,\n        Tag: 477,\n        SymbolicName: 'HighValueClearingSystemHVACS',\n    },\n    {\n        Group: '',\n        Description: 'Reinvest In Fund',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 12,\n        Tag: 477,\n        SymbolicName: 'ReinvestInFund',\n    },\n    {\n        Group: '',\n        Description: 'Yes',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 1,\n        Tag: 480,\n        SymbolicName: 'Yes',\n    },\n    {\n        Group: '',\n        Description: 'No - Execution Only',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 2,\n        Tag: 480,\n        SymbolicName: 'NoExecutionOnly',\n    },\n    {\n        Group: '',\n        Description: 'No - Waiver agreement',\n        added: 'FIX.4.3',\n        Value: 'M',\n        Sort: 3,\n        Tag: 480,\n        SymbolicName: 'NoWaiverAgreement',\n    },\n    {\n        Group: '',\n        Description: 'No - Institutional',\n        added: 'FIX.4.3',\n        Value: 'O',\n        Sort: 4,\n        Tag: 480,\n        SymbolicName: 'NoInstitutional',\n    },\n    {\n        Group: '',\n        Description: 'Passed',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 1,\n        Tag: 481,\n        SymbolicName: 'Passed',\n    },\n    {\n        Group: '',\n        Description: 'Not Checked',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 2,\n        Tag: 481,\n        SymbolicName: 'NotChecked',\n    },\n    {\n        Group: '',\n        Description: 'Exempt - Below the Limit',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 3,\n        Tag: 481,\n        SymbolicName: 'ExemptBelowLimit',\n    },\n    {\n        Group: '',\n        Description: 'Exempt - Client Money Type exemption',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 4,\n        Tag: 481,\n        SymbolicName: 'ExemptMoneyType',\n    },\n    {\n        Group: '',\n        Description: 'Exempt - Authorised Credit or financial institution',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 5,\n        Tag: 481,\n        SymbolicName: 'ExemptAuthorised',\n    },\n    {\n        Group: '',\n        Description: 'Bid price',\n        added: 'FIX.4.3',\n        Value: 'B',\n        Sort: 1,\n        Tag: 484,\n        SymbolicName: 'BidPrice',\n    },\n    {\n        Group: '',\n        Description: 'Creation price',\n        added: 'FIX.4.3',\n        Value: 'C',\n        Sort: 2,\n        Tag: 484,\n        SymbolicName: 'CreationPrice',\n    },\n    {\n        Group: '',\n        Description: 'Creation price plus adjustment percent',\n        added: 'FIX.4.3',\n        Value: 'D',\n        Sort: 3,\n        Tag: 484,\n        SymbolicName: 'CreationPricePlusAdjustmentPercent',\n    },\n    {\n        Group: '',\n        Description: 'Creation price plus adjustment amount',\n        added: 'FIX.4.3',\n        Value: 'E',\n        Sort: 4,\n        Tag: 484,\n        SymbolicName: 'CreationPricePlusAdjustmentAmount',\n    },\n    {\n        Group: '',\n        Description: 'Offer price',\n        added: 'FIX.4.3',\n        Value: 'O',\n        Sort: 5,\n        Tag: 484,\n        SymbolicName: 'OfferPrice',\n    },\n    {\n        Group: '',\n        Description: 'Offer price minus adjustment percent',\n        added: 'FIX.4.3',\n        Value: 'P',\n        Sort: 6,\n        Tag: 484,\n        SymbolicName: 'OfferPriceMinusAdjustmentPercent',\n    },\n    {\n        Group: '',\n        Description: 'Offer price minus adjustment amount',\n        added: 'FIX.4.3',\n        Value: 'Q',\n        Sort: 7,\n        Tag: 484,\n        SymbolicName: 'OfferPriceMinusAdjustmentAmount',\n    },\n    {\n        Group: '',\n        Description: 'Single price',\n        added: 'FIX.4.3',\n        Value: 'S',\n        Sort: 8,\n        Tag: 484,\n        SymbolicName: 'SinglePrice',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 487,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 487,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 487,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Release',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 487,\n        SymbolicName: 'Release',\n    },\n    {\n        Group: '',\n        Description: 'Reverse',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 487,\n        SymbolicName: 'Reverse',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Due To Back Out of Trade',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        addedEP: 4,\n        Tag: 487,\n        SymbolicName: 'CancelDueToBackOutOfTrade',\n    },\n    {\n        Group: '',\n        Description: 'CREST',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 492,\n        SymbolicName: 'CREST',\n    },\n    {\n        Group: '',\n        Description: 'NSCC',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 492,\n        SymbolicName: 'NSCC',\n    },\n    {\n        Group: '',\n        Description: 'Euroclear',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 492,\n        SymbolicName: 'Euroclear',\n    },\n    {\n        Group: '',\n        Description: 'Clearstream',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 492,\n        SymbolicName: 'Clearstream',\n    },\n    {\n        Group: '',\n        Description: 'Cheque',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 492,\n        SymbolicName: 'Cheque',\n    },\n    {\n        Group: '',\n        Description: 'Telegraphic Transfer',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 492,\n        SymbolicName: 'TelegraphicTransfer',\n    },\n    {\n        Group: '',\n        Description: 'Fed Wire',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 492,\n        SymbolicName: 'FedWire',\n    },\n    {\n        Group: '',\n        Description: 'Debit Card',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 492,\n        SymbolicName: 'DebitCard',\n    },\n    {\n        Group: '',\n        Description: 'Direct Debit (BECS)',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 492,\n        SymbolicName: 'DirectDebit',\n    },\n    {\n        Group: '',\n        Description: 'Direct Credit (BECS)',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 492,\n        SymbolicName: 'DirectCredit',\n    },\n    {\n        Group: '',\n        Description: 'Credit Card',\n        added: 'FIX.4.3',\n        Value: '11',\n        Sort: 11,\n        Tag: 492,\n        SymbolicName: 'CreditCard',\n    },\n    {\n        Group: '',\n        Description: 'ACH Debit',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 492,\n        SymbolicName: 'ACHDebit',\n    },\n    {\n        Group: '',\n        Description: 'ACH Credit',\n        added: 'FIX.4.3',\n        Value: '13',\n        Sort: 13,\n        Tag: 492,\n        SymbolicName: 'ACHCredit',\n    },\n    {\n        Group: '',\n        Description: 'BPAY',\n        added: 'FIX.4.3',\n        Value: '14',\n        Sort: 14,\n        Tag: 492,\n        SymbolicName: 'BPAY',\n    },\n    {\n        Group: '',\n        Description: 'High Value Clearing System (HVACS)',\n        added: 'FIX.4.3',\n        Value: '15',\n        Sort: 15,\n        Tag: 492,\n        SymbolicName: 'HighValueClearingSystem',\n    },\n    {\n        Group: '',\n        Description: 'None/Not Applicable (default)',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 0,\n        Tag: 495,\n        SymbolicName: 'None',\n    },\n    {\n        Group: '',\n        Description: 'Maxi ISA (UK)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 495,\n        SymbolicName: 'MaxiISA',\n    },\n    {\n        Group: '',\n        Description: 'TESSA (UK)',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 495,\n        SymbolicName: 'TESSA',\n    },\n    {\n        Group: '',\n        Description: 'Mini Cash ISA (UK)',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 495,\n        SymbolicName: 'MiniCashISA',\n    },\n    {\n        Group: '',\n        Description: 'Mini Stocks And Shares ISA (UK)',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 495,\n        SymbolicName: 'MiniStocksAndSharesISA',\n    },\n    {\n        Group: '',\n        Description: 'Mini Insurance ISA (UK)',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 495,\n        SymbolicName: 'MiniInsuranceISA',\n    },\n    {\n        Group: '',\n        Description: 'Current Year Payment (US)',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 495,\n        SymbolicName: 'CurrentYearPayment',\n    },\n    {\n        Group: '',\n        Description: 'Prior Year Payment (US)',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 495,\n        SymbolicName: 'PriorYearPayment',\n    },\n    {\n        Group: '',\n        Description: 'Asset Transfer (US)',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 495,\n        SymbolicName: 'AssetTransfer',\n    },\n    {\n        Group: '',\n        Description: 'Employee - prior year (US)',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 495,\n        SymbolicName: 'EmployeePriorYear',\n    },\n    {\n        Group: '',\n        Description: 'Employee - current year (US)',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 495,\n        SymbolicName: 'EmployeeCurrentYear',\n    },\n    {\n        Group: '',\n        Description: 'Employer - prior year (US)',\n        added: 'FIX.4.3',\n        Value: '11',\n        Sort: 11,\n        Tag: 495,\n        SymbolicName: 'EmployerPriorYear',\n    },\n    {\n        Group: '',\n        Description: 'Employer - current year (US)',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 495,\n        SymbolicName: 'EmployerCurrentYear',\n    },\n    {\n        Group: '',\n        Description: 'Non-fund prototype IRA (US)',\n        added: 'FIX.4.3',\n        Value: '13',\n        Sort: 13,\n        Tag: 495,\n        SymbolicName: 'NonFundPrototypeIRA',\n    },\n    {\n        Group: '',\n        Description: 'Non-fund qualified plan (US)',\n        added: 'FIX.4.3',\n        Value: '14',\n        Sort: 14,\n        Tag: 495,\n        SymbolicName: 'NonFundQualifiedPlan',\n    },\n    {\n        Group: '',\n        Description: 'Defined contribution plan (US)',\n        added: 'FIX.4.3',\n        Value: '15',\n        Sort: 15,\n        Tag: 495,\n        SymbolicName: 'DefinedContributionPlan',\n    },\n    {\n        Group: '',\n        Description: 'Individual Retirement Account (US)',\n        added: 'FIX.4.3',\n        Value: '16',\n        Sort: 16,\n        Tag: 495,\n        SymbolicName: 'IRA',\n    },\n    {\n        Group: '',\n        Description: 'Individual Retirement Account - Rollover (US)',\n        added: 'FIX.4.3',\n        Value: '17',\n        Sort: 17,\n        Tag: 495,\n        SymbolicName: 'IRARollover',\n    },\n    {\n        Group: '',\n        Description: 'KEOGH (US)',\n        added: 'FIX.4.3',\n        Value: '18',\n        Sort: 18,\n        Tag: 495,\n        SymbolicName: 'KEOGH',\n    },\n    {\n        Group: '',\n        Description: 'Profit Sharing Plan (US)',\n        added: 'FIX.4.3',\n        Value: '19',\n        Sort: 19,\n        Tag: 495,\n        SymbolicName: 'ProfitSharingPlan',\n    },\n    {\n        Group: '',\n        Description: '401(k) (US)',\n        added: 'FIX.4.3',\n        Value: '20',\n        Sort: 20,\n        Tag: 495,\n        SymbolicName: 'US401K',\n    },\n    {\n        Group: '',\n        Description: 'Self-directed IRA (US)',\n        added: 'FIX.4.3',\n        Value: '21',\n        Sort: 21,\n        Tag: 495,\n        SymbolicName: 'SelfDirectedIRA',\n    },\n    {\n        Group: '',\n        Description: '403(b) (US)',\n        added: 'FIX.4.3',\n        Value: '22',\n        Sort: 22,\n        Tag: 495,\n        SymbolicName: 'US403b',\n    },\n    {\n        Group: '',\n        Description: '457 (US)',\n        added: 'FIX.4.3',\n        Value: '23',\n        Sort: 23,\n        Tag: 495,\n        SymbolicName: 'US457',\n    },\n    {\n        Group: '',\n        Description: 'Roth IRA (Fund Prototype) (US)',\n        added: 'FIX.4.3',\n        Value: '24',\n        Sort: 24,\n        Tag: 495,\n        SymbolicName: 'RothIRAPrototype',\n    },\n    {\n        Group: '',\n        Description: 'Roth IRA (Non-prototype) (US)',\n        added: 'FIX.4.3',\n        Value: '25',\n        Sort: 25,\n        Tag: 495,\n        SymbolicName: 'RothIRANonPrototype',\n    },\n    {\n        Group: '',\n        Description: 'Roth Conversion IRA (Fund Prototype) (US)',\n        added: 'FIX.4.3',\n        Value: '26',\n        Sort: 26,\n        Tag: 495,\n        SymbolicName: 'RothConversionIRAPrototype',\n    },\n    {\n        Group: '',\n        Description: 'Roth Conversion IRA (Non-prototype) (US)',\n        added: 'FIX.4.3',\n        Value: '27',\n        Sort: 27,\n        Tag: 495,\n        SymbolicName: 'RothConversionIRANonPrototype',\n    },\n    {\n        Group: '',\n        Description: 'Education IRA (Fund Prototype) (US)',\n        added: 'FIX.4.3',\n        Value: '28',\n        Sort: 28,\n        Tag: 495,\n        SymbolicName: 'EducationIRAPrototype',\n    },\n    {\n        Group: '',\n        Description: 'Education IRA (Non-prototype) (US)',\n        added: 'FIX.4.3',\n        Value: '29',\n        Sort: 29,\n        Tag: 495,\n        SymbolicName: 'EducationIRANonPrototype',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '999',\n        Sort: 99,\n        addedEP: -1,\n        Tag: 495,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'No',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 1,\n        Tag: 497,\n        SymbolicName: 'No',\n    },\n    {\n        Group: '',\n        Description: 'Yes',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 497,\n        SymbolicName: 'Yes',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.3',\n        Value: 'A',\n        Sort: 1,\n        Tag: 506,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.3',\n        Value: 'R',\n        Sort: 2,\n        Tag: 506,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Held',\n        added: 'FIX.4.3',\n        Value: 'H',\n        Sort: 3,\n        Tag: 506,\n        SymbolicName: 'Held',\n    },\n    {\n        Group: '',\n        Description: 'Reminder - i.e. Registration Instructions are still outstanding',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 4,\n        Tag: 506,\n        SymbolicName: 'Reminder',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Account Type',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 507,\n        SymbolicName: 'InvalidAccountType',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Tax Exempt Type',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 507,\n        SymbolicName: 'InvalidTaxExemptType',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Ownership Type',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 507,\n        SymbolicName: 'InvalidOwnershipType',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable No Reg Details',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 507,\n        SymbolicName: 'NoRegDetails',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Reg Seq No',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 507,\n        SymbolicName: 'InvalidRegSeqNo',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Reg Details',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 507,\n        SymbolicName: 'InvalidRegDetails',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Mailing Details',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 507,\n        SymbolicName: 'InvalidMailingDetails',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Mailing Instructions',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 507,\n        SymbolicName: 'InvalidMailingInstructions',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Investor ID',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 507,\n        SymbolicName: 'InvalidInvestorID',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unaceeptable Investor ID Source',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 507,\n        SymbolicName: 'InvalidInvestorIDSource',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Date Of Birth',\n        added: 'FIX.4.3',\n        Value: '11',\n        Sort: 11,\n        Tag: 507,\n        SymbolicName: 'InvalidDateOfBirth',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Investor Country Of Residence',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 507,\n        SymbolicName: 'InvalidCountry',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable No Distrib Instns',\n        added: 'FIX.4.3',\n        Value: '13',\n        Sort: 13,\n        Tag: 507,\n        SymbolicName: 'InvalidDistribInstns',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Distrib Percentage',\n        added: 'FIX.4.3',\n        Value: '14',\n        Sort: 14,\n        Tag: 507,\n        SymbolicName: 'InvalidPercentage',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Distrib Payment Method',\n        added: 'FIX.4.3',\n        Value: '15',\n        Sort: 15,\n        Tag: 507,\n        SymbolicName: 'InvalidPaymentMethod',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Cash Distrib Agent Acct Name',\n        added: 'FIX.4.3',\n        Value: '16',\n        Sort: 16,\n        Tag: 507,\n        SymbolicName: 'InvalidAccountName',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Cash Distrib Agent Code',\n        added: 'FIX.4.3',\n        Value: '17',\n        Sort: 17,\n        Tag: 507,\n        SymbolicName: 'InvalidAgentCode',\n    },\n    {\n        Group: '',\n        Description: 'Invalid/unacceptable Cash Distrib Agent Acct Num',\n        added: 'FIX.4.3',\n        Value: '18',\n        Sort: 18,\n        Tag: 507,\n        SymbolicName: 'InvalidAccountNum',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 507,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 514,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 514,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 3,\n        Tag: 514,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Joint Investors',\n        added: 'FIX.4.4',\n        Value: 'J',\n        Sort: 1,\n        Tag: 517,\n        SymbolicName: 'JointInvestors',\n    },\n    {\n        Group: '',\n        Description: 'Tenants in Common',\n        added: 'FIX.4.4',\n        Value: 'T',\n        Sort: 2,\n        Tag: 517,\n        SymbolicName: 'TenantsInCommon',\n    },\n    {\n        Group: '',\n        Description: 'Joint Trustees',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 517,\n        SymbolicName: 'JointTrustees',\n    },\n    {\n        Group: '',\n        Description: 'Commission amount (actual)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 519,\n        SymbolicName: 'CommissionAmount',\n    },\n    {\n        Group: '',\n        Description: 'Commission percent (actual)',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 519,\n        SymbolicName: 'CommissionPercent',\n    },\n    {\n        Group: '',\n        Description: 'Initial Charge Amount',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 519,\n        SymbolicName: 'InitialChargeAmount',\n    },\n    {\n        Group: '',\n        Description: 'Initial Charge Percent',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 519,\n        SymbolicName: 'InitialChargePercent',\n    },\n    {\n        Group: '',\n        Description: 'Discount Amount',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 519,\n        SymbolicName: 'DiscountAmount',\n    },\n    {\n        Group: '',\n        Description: 'Discount Percent',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 519,\n        SymbolicName: 'DiscountPercent',\n    },\n    {\n        Group: '',\n        Description: 'Dilution Levy Amount',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 519,\n        SymbolicName: 'DilutionLevyAmount',\n    },\n    {\n        Group: '',\n        Description: 'Dilution Levy Percent',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 519,\n        SymbolicName: 'DilutionLevyPercent',\n    },\n    {\n        Group: '',\n        Description: 'Exit Charge Amount',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 519,\n        SymbolicName: 'ExitChargeAmount',\n    },\n    {\n        Group: '',\n        Description: 'Exit Charge Percent',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 519,\n        SymbolicName: 'ExitChargePercent',\n    },\n    {\n        Group: '',\n        Description: 'Fund-Based Renewal Commission Percent (a.k.a. Trail commission)',\n        added: 'FIX.4.3',\n        Value: '11',\n        Sort: 11,\n        Tag: 519,\n        SymbolicName: 'FundBasedRenewalCommissionPercent',\n    },\n    {\n        Group: '',\n        Description:\n            'Projected Fund Value (i.e. for investments intended to realise or exceed a specific future value)',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 519,\n        SymbolicName: 'ProjectedFundValue',\n    },\n    {\n        Group: '',\n        Description: 'Fund-Based Renewal Commission Amount (based on Order value)',\n        added: 'FIX.4.3',\n        Value: '13',\n        Sort: 13,\n        Tag: 519,\n        SymbolicName: 'FundBasedRenewalCommissionOnOrder',\n    },\n    {\n        Group: '',\n        Description: 'Fund-Based Renewal Commission Amount (based on Projected Fund value)',\n        added: 'FIX.4.3',\n        Value: '14',\n        Sort: 14,\n        Tag: 519,\n        SymbolicName: 'FundBasedRenewalCommissionOnFund',\n    },\n    {\n        Group: '',\n        Description: 'Net Settlement Amount',\n        added: 'FIX.4.3',\n        Value: '15',\n        Sort: 15,\n        Tag: 519,\n        SymbolicName: 'NetSettlementAmount',\n    },\n    {\n        Group: '',\n        Description: 'Individual Investor',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 522,\n        SymbolicName: 'IndividualInvestor',\n    },\n    {\n        Group: '',\n        Description: 'Public Company',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 522,\n        SymbolicName: 'PublicCompany',\n    },\n    {\n        Group: '',\n        Description: 'Private Company',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 522,\n        SymbolicName: 'PrivateCompany',\n    },\n    {\n        Group: '',\n        Description: 'Individual Trustee',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 522,\n        SymbolicName: 'IndividualTrustee',\n    },\n    {\n        Group: '',\n        Description: 'Company Trustee',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 522,\n        SymbolicName: 'CompanyTrustee',\n    },\n    {\n        Group: '',\n        Description: 'Pension Plan',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 522,\n        SymbolicName: 'PensionPlan',\n    },\n    {\n        Group: '',\n        Description: 'Custodian Under Gifts to Minors Act',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 522,\n        SymbolicName: 'CustodianUnderGiftsToMinorsAct',\n    },\n    {\n        Group: '',\n        Description: 'Trusts',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 522,\n        SymbolicName: 'Trusts',\n    },\n    {\n        Group: '',\n        Description: 'Fiduciaries',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 522,\n        SymbolicName: 'Fiduciaries',\n    },\n    {\n        Group: '',\n        Description: 'Networking Sub-account',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 522,\n        SymbolicName: 'NetworkingSubAccount',\n    },\n    {\n        Group: '',\n        Description: 'Non-profit organization',\n        added: 'FIX.4.3',\n        Value: '11',\n        Sort: 11,\n        Tag: 522,\n        SymbolicName: 'NonProfitOrganization',\n    },\n    {\n        Group: '',\n        Description: 'Corporate Body',\n        added: 'FIX.4.3',\n        Value: '12',\n        Sort: 12,\n        Tag: 522,\n        SymbolicName: 'CorporateBody',\n    },\n    {\n        Group: '',\n        Description: 'Nominee',\n        added: 'FIX.4.3',\n        Value: '13',\n        Sort: 13,\n        Tag: 522,\n        SymbolicName: 'Nominee',\n    },\n    {\n        Group: '',\n        Description: 'Agency',\n        added: 'FIX.4.3',\n        Value: 'A',\n        Sort: 1,\n        Tag: 528,\n        SymbolicName: 'Agency',\n    },\n    {\n        Group: '',\n        Description: 'Proprietary',\n        added: 'FIX.4.3',\n        Value: 'G',\n        Sort: 2,\n        Tag: 528,\n        SymbolicName: 'Proprietary',\n    },\n    {\n        Group: '',\n        Description: 'Individual',\n        added: 'FIX.4.3',\n        Value: 'I',\n        Sort: 3,\n        Tag: 528,\n        SymbolicName: 'Individual',\n    },\n    {\n        Group: '',\n        Description: 'Principal (Note for CMS purposes, \"Principal\" includes \"Proprietary\")',\n        added: 'FIX.4.3',\n        Value: 'P',\n        Sort: 4,\n        Tag: 528,\n        SymbolicName: 'Principal',\n    },\n    {\n        Group: '',\n        Description: 'Riskless Principal',\n        added: 'FIX.4.3',\n        Value: 'R',\n        Sort: 5,\n        Tag: 528,\n        SymbolicName: 'RisklessPrincipal',\n    },\n    {\n        Group: '',\n        Description: 'Agent for Other Member',\n        added: 'FIX.4.3',\n        Value: 'W',\n        Sort: 6,\n        Tag: 528,\n        SymbolicName: 'AgentForOtherMember',\n    },\n    {\n        Group: '',\n        Description: 'Program Trade',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 529,\n        SymbolicName: 'ProgramTrade',\n    },\n    {\n        Group: '',\n        Description: 'Index Arbitrage',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 529,\n        SymbolicName: 'IndexArbitrage',\n    },\n    {\n        Group: '',\n        Description: 'Non-Index Arbitrage',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 529,\n        SymbolicName: 'NonIndexArbitrage',\n    },\n    {\n        Group: '',\n        Description: 'Competing Market Maker',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 529,\n        SymbolicName: 'CompetingMarketMaker',\n    },\n    {\n        Group: '',\n        Description: 'Acting as Market Maker or Specialist in the security',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 529,\n        SymbolicName: 'ActingAsMarketMakerOrSpecialistInSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Acting as Market Maker or Specialist in the underlying security of a derivative security',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        Value: '6',\n        Sort: 6,\n        Tag: 529,\n        SymbolicName: 'ActingAsMarketMakerOrSpecialistInUnderlying',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Foreign Entity (of foreign government or regulatory jurisdiction)',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 529,\n        SymbolicName: 'ForeignEntity',\n    },\n    {\n        Group: '',\n        Description: 'External Market Participant',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 529,\n        SymbolicName: 'ExternalMarketParticipant',\n    },\n    {\n        Group: '',\n        Description: 'External Inter-connected Market Linkage',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        Value: '9',\n        Sort: 9,\n        Tag: 529,\n        SymbolicName: 'ExternalInterConnectedMarketLinkage',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Riskless Arbitrage',\n        added: 'FIX.4.3',\n        Value: 'A',\n        Sort: 10,\n        Tag: 529,\n        SymbolicName: 'RisklessArbitrage',\n    },\n    {\n        Group: '',\n        Description: 'Issuer Holding',\n        added: 'FIX.5.0',\n        Value: 'B',\n        Sort: 11,\n        addedEP: 61,\n        Tag: 529,\n        SymbolicName: 'IssuerHolding',\n    },\n    {\n        Group: '',\n        Description: 'Issue Price Stabilization',\n        added: 'FIX.5.0',\n        Value: 'C',\n        Sort: 12,\n        addedEP: 61,\n        Tag: 529,\n        SymbolicName: 'IssuePriceStabilization',\n    },\n    {\n        Group: '',\n        Description: 'Non-algorithmic',\n        added: 'FIX.5.0',\n        Value: 'D',\n        Sort: 13,\n        addedEP: -1,\n        Tag: 529,\n        SymbolicName: 'NonAlgorithmic',\n    },\n    {\n        Group: '',\n        Description: 'Algorithmic',\n        added: 'FIX.5.0',\n        Value: 'E',\n        Sort: 14,\n        addedEP: -1,\n        Tag: 529,\n        SymbolicName: 'Algorithmic',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a security',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForASecurity',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for an underlying security',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForAnUnderlyingSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a Product',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForAProduct',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a CFICode',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForACFICode',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a SecurityType',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForASecurityType',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a trading session',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForATradingSession',\n    },\n    {\n        Group: '',\n        Description: 'Cancel all orders',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 530,\n        SymbolicName: 'CancelAllOrders',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a market',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 8,\n        addedEP: 58,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForAMarket',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a market segment',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 9,\n        addedEP: 58,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForAMarketSegment',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a security group',\n        added: 'FIX.5.0',\n        Value: 'A',\n        Sort: 10,\n        addedEP: 58,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForASecurityGroup',\n    },\n    {\n        Group: '',\n        Description: 'Cancel Request Rejected - See MassCancelRejectReason (532)',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 0,\n        Tag: 531,\n        SymbolicName: 'CancelRequestRejected',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a security',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForASecurity',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for an Underlying Security',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForAnUnderlyingSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a Product',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForAProduct',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a CFICode',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForACFICode',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a SecurityType',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForASecurityType',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a trading session',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForATradingSession',\n    },\n    {\n        Group: '',\n        Description: 'Cancel All Orders',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 531,\n        SymbolicName: 'CancelAllOrders',\n    },\n];\n\nconst batch4: ISpecEnums[] = [\n    {\n        Group: '',\n        Description: 'Cancel orders for a market',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 8,\n        addedEP: 58,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForAMarket',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a market segment',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 9,\n        addedEP: 58,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForAMarketSegment',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders for a security group',\n        added: 'FIX.5.0',\n        Value: 'A',\n        Sort: 10,\n        addedEP: 58,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForASecurityGroup',\n    },\n    {\n        Group: '',\n        Description: 'Mass Cancel Not Supported',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 0,\n        Tag: 532,\n        SymbolicName: 'MassCancelNotSupported',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or Unknown Security',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or Unkown Underlying security',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnkownUnderlyingSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or Unknown Product',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownProduct',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or Unknown CFICode',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownCFICode',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or Unknown SecurityType',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownSecurityType',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or Unknown Trading Session',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownTradingSession',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown Market',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 8,\n        addedEP: 58,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownMarket',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unkown Market Segment',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 9,\n        addedEP: 58,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnkownMarketSegment',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown Security Group',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 10,\n        addedEP: 58,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownSecurityGroup',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 532,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Indicative',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 537,\n        SymbolicName: 'Indicative',\n    },\n    {\n        Group: '',\n        Description: 'Tradeable',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 2,\n        Tag: 537,\n        SymbolicName: 'Tradeable',\n    },\n    {\n        Group: '',\n        Description: 'Restricted Tradeable',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 3,\n        Tag: 537,\n        SymbolicName: 'RestrictedTradeable',\n    },\n    {\n        Group: '',\n        Description: 'Counter (tradeable)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 537,\n        SymbolicName: 'Counter',\n    },\n    {\n        Group: '',\n        Description: 'Cash',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 544,\n        SymbolicName: 'Cash',\n    },\n    {\n        Group: '',\n        Description: 'Margin Open',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 544,\n        SymbolicName: 'MarginOpen',\n    },\n    {\n        Group: '',\n        Description: 'Margin Close',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 544,\n        SymbolicName: 'MarginClose',\n    },\n    {\n        Group: '',\n        Description: 'Local Market (Exchange, ECN, ATS)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 546,\n        SymbolicName: 'LocalMarket',\n    },\n    {\n        Group: '',\n        Description: 'National',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 546,\n        SymbolicName: 'National',\n    },\n    {\n        Group: '',\n        Description: 'Global',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 546,\n        SymbolicName: 'Global',\n    },\n    {\n        Group: '',\n        Description:\n            'Server must send an explicit delete for bids or offers falling outside the requested MarketDepth of the request',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 1,\n        Tag: 547,\n        SymbolicName: 'No',\n    },\n    {\n        Group: '',\n        Description:\n            'Client has responsibility for implicitly deleting bids or offers falling outside the MarketDepth of the request',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 547,\n        SymbolicName: 'Yes',\n    },\n    {\n        Group: '',\n        Description:\n            'Cross AON - cross trade which is executed completely or not. Both sides are treated in the same manner. This is equivalent to an \"All or None\".',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        Value: '1',\n        Sort: 1,\n        Tag: 549,\n        SymbolicName: 'CrossAON',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description:\n            'Cross IOC - cross trade which is executed partially and the rest is cancelled. One side is fully executed, the other side is partially executed with the remainder being cancelled. This is equivalent to an IOC on the other side. Note: CrossPrioritization(550) field may be used to indicate which side should fully execute in this scenario.',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        Value: '2',\n        Sort: 2,\n        Tag: 549,\n        SymbolicName: 'CrossIOC',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description:\n            'Cross One Side - cross trade which is partially executed with the unfilled portions remaining active. One side of the cross is fully executed (as denoted by the CrossPrioritization (550) field), but the unfilled portion remains active.',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        Value: '3',\n        Sort: 3,\n        Tag: 549,\n        SymbolicName: 'CrossOneSide',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description:\n            'Cross Same Price - cross trade is executed with existing orders with the same price. In this case other orders exist with the same price, the quantity of the Cross is executed against the existing orders and quotes, the remainder of the cross is executed against the other side of the cross. The two sides potentially have different quantities.',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        Value: '4',\n        Sort: 4,\n        Tag: 549,\n        SymbolicName: 'CrossSamePrice',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'None',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 550,\n        SymbolicName: 'None',\n    },\n    {\n        Group: '',\n        Description: 'Buy side is prioritized',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 2,\n        Tag: 550,\n        SymbolicName: 'BuySideIsPrioritized',\n    },\n    {\n        Group: '',\n        Description: 'Sell side is prioritized',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 3,\n        Tag: 550,\n        SymbolicName: 'SellSideIsPrioritized',\n    },\n    {\n        Group: '',\n        Description: 'One Side',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 552,\n        SymbolicName: 'OneSide',\n    },\n    {\n        Group: '',\n        Description: 'Both Sides',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 552,\n        SymbolicName: 'BothSides',\n    },\n    {\n        Group: '',\n        Description: 'Symbol',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 0,\n        Tag: 559,\n        SymbolicName: 'Symbol',\n    },\n    {\n        Group: '',\n        Description: 'SecurityType and/or CFICode',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 559,\n        SymbolicName: 'SecurityTypeAnd',\n    },\n    {\n        Group: '',\n        Description: 'Product',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 559,\n        SymbolicName: 'Product',\n    },\n    {\n        Group: '',\n        Description: 'TradingSessionID',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 559,\n        SymbolicName: 'TradingSessionID',\n    },\n    {\n        Group: '',\n        Description: 'All Securities',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 559,\n        SymbolicName: 'AllSecurities',\n    },\n    {\n        Group: '',\n        Description: 'MarketID or MarketID + MarketSegmentID',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 6,\n        addedEP: 52,\n        Tag: 559,\n        SymbolicName: 'MarketIDOrMarketID',\n    },\n    {\n        Group: '',\n        Description: 'Valid request',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 0,\n        Tag: 560,\n        SymbolicName: 'ValidRequest',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unsupported request',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 560,\n        SymbolicName: 'InvalidOrUnsupportedRequest',\n    },\n    {\n        Group: '',\n        Description: 'No instruments found that match selection criteria',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 560,\n        SymbolicName: 'NoInstrumentsFound',\n    },\n    {\n        Group: '',\n        Description: 'Not authorized to retrieve instrument data',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 560,\n        SymbolicName: 'NotAuthorizedToRetrieveInstrumentData',\n    },\n    {\n        Group: '',\n        Description: 'Instrument data temporarily unavailable',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 560,\n        SymbolicName: 'InstrumentDataTemporarilyUnavailable',\n    },\n    {\n        Group: '',\n        Description: 'Request for instrument data not supported',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 560,\n        SymbolicName: 'RequestForInstrumentDataNotSupported',\n    },\n    {\n        Group: '',\n        Description: 'Report by mulitleg security only (do not report legs)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 0,\n        Tag: 563,\n        SymbolicName: 'ReportByMulitlegSecurityOnly',\n    },\n    {\n        Group: '',\n        Description: 'Report by multileg security and by instrument legs belonging to the multileg security',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 563,\n        SymbolicName: 'ReportByMultilegSecurityAndInstrumentLegs',\n    },\n    {\n        Group: '',\n        Description:\n            'Report by instrument legs belonging to the multileg security only (do not report status of multileg security)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 563,\n        SymbolicName: 'ReportByInstrumentLegsOnly',\n    },\n    {\n        Group: '',\n        Description: 'Unknown or invalid TradingSessionID',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 567,\n        SymbolicName: 'UnknownOrInvalidTradingSessionID',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 567,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'All Trades',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 0,\n        Tag: 569,\n        SymbolicName: 'AllTrades',\n    },\n    {\n        Group: '',\n        Description:\n            'Matched trades matching criteria provided on request (Parties, ExecID, TradeID, OrderID, Instrument, InputSource, etc.)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 569,\n        SymbolicName: 'MatchedTradesMatchingCriteria',\n    },\n    {\n        Group: '',\n        Description: 'Unmatched trades that match criteria',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 569,\n        SymbolicName: 'UnmatchedTradesThatMatchCriteria',\n    },\n    {\n        Group: '',\n        Description: 'Unreported trades that match criteria',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 569,\n        SymbolicName: 'UnreportedTradesThatMatchCriteria',\n    },\n    {\n        Group: '',\n        Description: 'Advisories that match criteria',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 569,\n        SymbolicName: 'AdvisoriesThatMatchCriteria',\n    },\n    {\n        Group: '',\n        Description: 'Not reported to counterparty',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 1,\n        Tag: 570,\n        SymbolicName: 'NotReportedToCounterparty',\n    },\n    {\n        Group: '',\n        Description: 'Perviously reported to counterparty',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 570,\n        SymbolicName: 'PerviouslyReportedToCounterparty',\n    },\n    {\n        Group: '',\n        Description: 'Compared, matched or affirmed',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 0,\n        Tag: 573,\n        SymbolicName: 'Compared',\n    },\n    {\n        Group: '',\n        Description: 'Uncompared, unmatched, or unaffirmed',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        Value: '1',\n        Sort: 1,\n        Tag: 573,\n        SymbolicName: 'Uncompared',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Advisory or alert',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 573,\n        SymbolicName: 'AdvisoryOrAlert',\n    },\n    {\n        Group: 'General Purpose',\n        Description: 'One-Party Trade Report (privately negotiated trade)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 70,\n        addedEP: 22,\n        Tag: 574,\n        SymbolicName: 'OnePartyTradeReport',\n    },\n    {\n        Group: 'General Purpose',\n        Description: 'Two-Party Trade Report (privately negotiated trade)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 71,\n        addedEP: 22,\n        Tag: 574,\n        SymbolicName: 'TwoPartyTradeReport',\n    },\n    {\n        Group: 'General Purpose',\n        Description: 'Confirmed Trade Report (reporting from recognized markets)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 72,\n        addedEP: 22,\n        Tag: 574,\n        SymbolicName: 'ConfirmedTradeReport',\n    },\n    {\n        Group: 'General Purpose',\n        Description: 'Auto-match',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 73,\n        addedEP: 22,\n        Tag: 574,\n        SymbolicName: 'AutoMatch',\n    },\n    {\n        Group: 'General Purpose',\n        Description: 'Cross Auction',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 74,\n        addedEP: 22,\n        Tag: 574,\n        SymbolicName: 'CrossAuction',\n    },\n    {\n        Group: 'General Purpose',\n        Description: 'Counter-Order Selection',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 75,\n        addedEP: 22,\n        Tag: 574,\n        SymbolicName: 'CounterOrderSelection',\n    },\n    {\n        Group: 'General Purpose',\n        Description: 'Call Auction',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 76,\n        addedEP: 22,\n        Tag: 574,\n        SymbolicName: 'CallAuction',\n    },\n    {\n        Group: 'General Purpose',\n        Description: 'Issuing/Buy Back Auction',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 77,\n        addedEP: 47,\n        Tag: 574,\n        SymbolicName: 'Issuing',\n    },\n    {\n        Group: 'NASDAQ',\n        Description: 'ACT Accepted Trade',\n        added: 'FIX.4.3',\n        Value: 'M3',\n        Sort: 2,\n        Tag: 574,\n        SymbolicName: 'ACTAcceptedTrade',\n    },\n    {\n        Group: 'NASDAQ',\n        Description: 'ACT Default Trade',\n        added: 'FIX.4.3',\n        Value: 'M4',\n        Sort: 3,\n        Tag: 574,\n        SymbolicName: 'ACTDefaultTrade',\n    },\n    {\n        Group: 'NASDAQ',\n        Description: 'ACT Default After M2',\n        added: 'FIX.4.3',\n        Value: 'M5',\n        Sort: 4,\n        Tag: 574,\n        SymbolicName: 'ACTDefaultAfterM2',\n    },\n    {\n        Group: 'NASDAQ',\n        Description: 'ACT M6 Match',\n        added: 'FIX.4.3',\n        Value: 'M6',\n        Sort: 5,\n        Tag: 574,\n        SymbolicName: 'ACTM6Match',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator plus four badges and execution time (within two-minute window)',\n        added: 'FIX.4.3',\n        Value: 'A1',\n        Sort: 0,\n        Tag: 574,\n        SymbolicName: 'ExactMatchPlus4BadgesExecTime',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus four badges',\n        added: 'FIX.4.3',\n        Value: 'A2',\n        Sort: 1,\n        Tag: 574,\n        SymbolicName: 'ExactMatchPlus4Badges',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus two badges and execution time (within two-minute window)',\n        added: 'FIX.4.3',\n        Value: 'A3',\n        Sort: 2,\n        Tag: 574,\n        SymbolicName: 'ExactMatchPlus2BadgesExecTime',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator, plus two badges',\n        added: 'FIX.4.3',\n        Value: 'A4',\n        Sort: 3,\n        Tag: 574,\n        SymbolicName: 'ExactMatchPlus2Badges',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, TradeType, and Special Trade Indicator plus execution time (within two-minute window)',\n        added: 'FIX.4.3',\n        Value: 'A5',\n        Sort: 4,\n        Tag: 574,\n        SymbolicName: 'ExactMatchPlusExecTime',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description: 'Compared records resulting from stamped advisories or specialist accepts/pair-offs',\n        added: 'FIX.4.3',\n        Value: 'AQ',\n        Sort: 5,\n        Tag: 574,\n        SymbolicName: 'StampedAdvisoriesOrSpecialistAccepts',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description: 'Summarized match using A1 exact match criteria except quantity is summaried',\n        added: 'FIX.4.3',\n        Value: 'S1',\n        Sort: 6,\n        Tag: 574,\n        SymbolicName: 'A1ExactMatchSummarizedQuantity',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description: 'Summarized match using A2 exact match criteria except quantity is summarized',\n        added: 'FIX.4.3',\n        Value: 'S2',\n        Sort: 7,\n        Tag: 574,\n        SymbolicName: 'A2ExactMatchSummarizedQuantity',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description: 'Summarized match using A3 exact match criteria except quantity is summarized',\n        added: 'FIX.4.3',\n        Value: 'S3',\n        Sort: 8,\n        Tag: 574,\n        SymbolicName: 'A3ExactMatchSummarizedQuantity',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description: 'Summarized match using A4 exact match criteria except quantity is summarized',\n        added: 'FIX.4.3',\n        Value: 'S4',\n        Sort: 9,\n        Tag: 574,\n        SymbolicName: 'A4ExactMatchSummarizedQuantity',\n    },\n    {\n        Group: 'NYSE and AMEX',\n        Description: 'Summarized match using A5 exact match criteria except quantity is summarized',\n        added: 'FIX.4.3',\n        Value: 'S5',\n        Sort: 10,\n        Tag: 574,\n        SymbolicName: 'A5ExactMatchSummarizedQuantity',\n    },\n    {\n        Group: 'NYSE, AMEX and NASDAQ',\n        Description:\n            'Exact match on Trade Date, Stock Symbol, Quantity, Price, Trade Type, and Special Trade Indicator minus badges And times: ACT M1 match',\n        added: 'FIX.4.3',\n        Value: 'M1',\n        Sort: 11,\n        Tag: 574,\n        SymbolicName: 'ExactMatchMinusBadgesTimes',\n    },\n    {\n        Group: 'NYSE, AMEX and NASDAQ',\n        Description: 'Summarized match minus badges and times: ACT M2 Match',\n        added: 'FIX.4.3',\n        Value: 'M2',\n        Sort: 12,\n        Tag: 574,\n        SymbolicName: 'SummarizedMatchMinusBadgesTimes',\n    },\n    {\n        Group: 'NYSE, AMEX and NASDAQ',\n        Description: 'OCS Locked In: Non-ACT',\n        added: 'FIX.4.3',\n        Value: 'MT',\n        Sort: 13,\n        Tag: 574,\n        SymbolicName: 'OCSLockedIn',\n    },\n    {\n        Group: '',\n        Description: 'Treat as round lot (default)',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 1,\n        Tag: 575,\n        SymbolicName: 'TreatAsRoundLot',\n    },\n    {\n        Group: '',\n        Description: 'Treat as odd lot',\n        added: 'FIX.4.4',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 575,\n        SymbolicName: 'TreatAsOddLot',\n    },\n    {\n        Group: '',\n        Description: 'Process normally',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 0,\n        Tag: 577,\n        SymbolicName: 'ProcessNormally',\n    },\n    {\n        Group: '',\n        Description: 'Exclude from all netting',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 577,\n        SymbolicName: 'ExcludeFromAllNetting',\n    },\n    {\n        Group: '',\n        Description: 'Bilateral netting only',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 577,\n        SymbolicName: 'BilateralNettingOnly',\n    },\n    {\n        Group: '',\n        Description: 'Ex clearing',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 577,\n        SymbolicName: 'ExClearing',\n    },\n    {\n        Group: '',\n        Description: 'Special trade',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 577,\n        SymbolicName: 'SpecialTrade',\n    },\n    {\n        Group: '',\n        Description: 'Multilateral netting',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 577,\n        SymbolicName: 'MultilateralNetting',\n    },\n    {\n        Group: '',\n        Description: 'Clear against central counterparty',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 577,\n        SymbolicName: 'ClearAgainstCentralCounterparty',\n    },\n    {\n        Group: '',\n        Description: 'Exclude from central counterparty',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 577,\n        SymbolicName: 'ExcludeFromCentralCounterparty',\n    },\n    {\n        Group: '',\n        Description: 'Manual mode (pre-posting and/or pre-giveup)',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 577,\n        SymbolicName: 'ManualMode',\n    },\n    {\n        Group: '',\n        Description: 'Automatic posting mode (trade posting to the position account number specified)',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 9,\n        Tag: 577,\n        SymbolicName: 'AutomaticPostingMode',\n    },\n    {\n        Group: '',\n        Description: 'Automatic give-up mode (trade give-up to the give-up destination number specified)',\n        added: 'FIX.4.3',\n        Value: '10',\n        Sort: 10,\n        Tag: 577,\n        SymbolicName: 'AutomaticGiveUpMode',\n    },\n    {\n        Group: '',\n        Description: 'Qualified Service Representative QSR',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 11,\n        Tag: 577,\n        SymbolicName: 'QualifiedServiceRepresentativeQSR',\n    },\n    {\n        Group: '',\n        Description: 'Customer trade',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 12,\n        Tag: 577,\n        SymbolicName: 'CustomerTrade',\n    },\n    {\n        Group: '',\n        Description: 'Self clearing',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 13,\n        Tag: 577,\n        SymbolicName: 'SelfClearing',\n    },\n    {\n        Group: '',\n        Description: 'Account is carried on customer side of the books',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 581,\n        SymbolicName: 'CarriedCustomerSide',\n    },\n    {\n        Group: '',\n        Description: 'Account is carried on non-customer side of books',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 581,\n        SymbolicName: 'CarriedNonCustomerSide',\n    },\n    {\n        Group: '',\n        Description: 'House Trader',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 581,\n        SymbolicName: 'HouseTrader',\n    },\n    {\n        Group: '',\n        Description: 'Floor Trader',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 581,\n        SymbolicName: 'FloorTrader',\n    },\n    {\n        Group: '',\n        Description: 'Account is carried on non-customer side of books and is cross margined',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 5,\n        Tag: 581,\n        SymbolicName: 'CarriedNonCustomerSideCrossMargined',\n    },\n    {\n        Group: '',\n        Description: 'Account is house trader and is cross margined',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 6,\n        Tag: 581,\n        SymbolicName: 'HouseTraderCrossMargined',\n    },\n    {\n        Group: '',\n        Description: 'Joint back office account (JBO)',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 7,\n        Tag: 581,\n        SymbolicName: 'JointBackOfficeAccount',\n    },\n    {\n        Group: '',\n        Description: 'Member trading for their own account',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 582,\n        SymbolicName: 'MemberTradingForTheirOwnAccount',\n    },\n    {\n        Group: '',\n        Description: 'Clearing Firm trading for its proprietary account',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 582,\n        SymbolicName: 'ClearingFirmTradingForItsProprietaryAccount',\n    },\n    {\n        Group: '',\n        Description: 'Member trading for another member',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 582,\n        SymbolicName: 'MemberTradingForAnotherMember',\n    },\n    {\n        Group: '',\n        Description: 'All other',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 582,\n        SymbolicName: 'AllOther',\n    },\n    {\n        Group: '',\n        Description: 'Status for orders for a Security',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 585,\n        SymbolicName: 'StatusForOrdersForASecurity',\n    },\n    {\n        Group: '',\n        Description: 'Status for orders for an Underlying Security',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 585,\n        SymbolicName: 'StatusForOrdersForAnUnderlyingSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Status for orders for a Product',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 585,\n        SymbolicName: 'StatusForOrdersForAProduct',\n    },\n    {\n        Group: '',\n        Description: 'Status for orders for a CFICode',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 585,\n        SymbolicName: 'StatusForOrdersForACFICode',\n    },\n    {\n        Group: '',\n        Description: 'Status for orders for a SecurityType',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 585,\n        SymbolicName: 'StatusForOrdersForASecurityType',\n    },\n    {\n        Group: '',\n        Description: 'Status for orders for a trading session',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 6,\n        Tag: 585,\n        SymbolicName: 'StatusForOrdersForATradingSession',\n    },\n    {\n        Group: '',\n        Description: 'Status for all orders',\n        added: 'FIX.4.3',\n        Value: '7',\n        Sort: 7,\n        Tag: 585,\n        SymbolicName: 'StatusForAllOrders',\n    },\n    {\n        Group: '',\n        Description: 'Status for orders for a PartyID',\n        added: 'FIX.4.3',\n        Value: '8',\n        Sort: 8,\n        Tag: 585,\n        SymbolicName: 'StatusForOrdersForAPartyID',\n    },\n    {\n        Group: '',\n        Description: 'Can trigger booking without reference to the order initiator (\"auto\")',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 589,\n        SymbolicName: 'Auto',\n    },\n    {\n        Group: '',\n        Description: 'Speak with order initiator before booking (\"speak first\")',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 2,\n        Tag: 589,\n        SymbolicName: 'SpeakWithOrderInitiatorBeforeBooking',\n    },\n    {\n        Group: '',\n        Description: 'Accumulate',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 589,\n        SymbolicName: 'Accumulate',\n    },\n    {\n        Group: '',\n        Description: 'Each partial execution is a bookable unit',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 590,\n        SymbolicName: 'EachPartialExecutionIsABookableUnit',\n    },\n    {\n        Group: '',\n        Description: 'Aggregate partial executions on this order, and book one trade per order',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 2,\n        Tag: 590,\n        SymbolicName: 'AggregatePartialExecutionsOnThisOrder',\n    },\n    {\n        Group: '',\n        Description: 'Aggregate executions for this symbol, side, and settlement date',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 3,\n        Tag: 590,\n        SymbolicName: 'AggregateExecutionsForThisSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Pro rata',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 591,\n        SymbolicName: 'ProRata',\n    },\n    {\n        Group: '',\n        Description: 'Do not pro-rata - discuss first',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 2,\n        Tag: 591,\n        SymbolicName: 'DoNotProRata',\n    },\n    {\n        Group: '',\n        Description: 'Pre-Trading',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 58,\n        Tag: 625,\n        SymbolicName: 'PreTrading',\n    },\n    {\n        Group: '',\n        Description: 'Opening or opening auction',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 58,\n        Tag: 625,\n        SymbolicName: 'OpeningOrOpeningAuction',\n    },\n    {\n        Group: '',\n        Description: '(Continuous) Trading',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 58,\n        Tag: 625,\n        SymbolicName: 'Continuous',\n    },\n    {\n        Group: '',\n        Description: 'Closing or closing auction',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 58,\n        Tag: 625,\n        SymbolicName: 'ClosingOrClosingAuction',\n    },\n    {\n        Group: '',\n        Description: 'Post-Trading',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 5,\n        addedEP: 58,\n        Tag: 625,\n        SymbolicName: 'PostTrading',\n    },\n    {\n        Group: '',\n        Description: 'Intraday Auction',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 6,\n        addedEP: 58,\n        Tag: 625,\n        SymbolicName: 'IntradayAuction',\n    },\n    {\n        Group: '',\n        Description: 'Quiescent',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 7,\n        addedEP: 58,\n        Tag: 625,\n        SymbolicName: 'Quiescent',\n    },\n    {\n        Group: '',\n        Description: 'Calculated (includes MiscFees and NetMoney)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 626,\n        SymbolicName: 'Calculated',\n    },\n    {\n        Group: '',\n        Description: 'Preliminary (without MiscFees and NetMoney)',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 626,\n        SymbolicName: 'Preliminary',\n    },\n    {\n        Group: '',\n        Description: 'Sellside Calculated Using Preliminary (includes MiscFees and NetMoney) (Replaced)',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.2',\n        Value: '3',\n        Sort: 3,\n        Tag: 626,\n        SymbolicName: 'SellsideCalculatedUsingPreliminary',\n    },\n    {\n        Group: '',\n        Description:\n            'Sellside Calculated Without Preliminary (sent unsolicited by sellside, includes MiscFees and NetMoney) (Replaced)',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.2',\n        Value: '4',\n        Sort: 4,\n        Tag: 626,\n        SymbolicName: 'SellsideCalculatedWithoutPreliminary',\n    },\n    {\n        Group: '',\n        Description: 'Ready-To-Book - Single Order',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 626,\n        SymbolicName: 'ReadyToBook',\n    },\n    {\n        Group: '',\n        Description: 'Buyside Ready-To-Book - Combined Set of Orders (Replaced)',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.2',\n        Value: '6',\n        Sort: 6,\n        Tag: 626,\n        SymbolicName: 'BuysideReadyToBook',\n    },\n    {\n        Group: '',\n        Description: 'Warehouse Instruction',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 7,\n        Tag: 626,\n        SymbolicName: 'WarehouseInstruction',\n    },\n    {\n        Group: '',\n        Description: 'Request to Intermediary',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 8,\n        Tag: 626,\n        SymbolicName: 'RequestToIntermediary',\n    },\n    {\n        Group: '',\n        Description: 'Accept',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 9,\n        addedEP: 5,\n        Tag: 626,\n        SymbolicName: 'Accept',\n    },\n    {\n        Group: '',\n        Description: 'Reject',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 10,\n        addedEP: 5,\n        Tag: 626,\n        SymbolicName: 'Reject',\n    },\n    {\n        Group: '',\n        Description: 'Accept Pending',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 11,\n        addedEP: 5,\n        Tag: 626,\n        SymbolicName: 'AcceptPending',\n    },\n    {\n        Group: '',\n        Description: 'Incomplete Group',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 12,\n        addedEP: 5,\n        Tag: 626,\n        SymbolicName: 'IncompleteGroup',\n    },\n    {\n        Group: '',\n        Description: 'Complete Group',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 13,\n        addedEP: 5,\n        Tag: 626,\n        SymbolicName: 'CompleteGroup',\n    },\n    {\n        Group: '',\n        Description: 'Reversal Pending',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 14,\n        addedEP: 5,\n        Tag: 626,\n        SymbolicName: 'ReversalPending',\n    },\n    {\n        Group: '',\n        Description: '1st year delegate trading for own account',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 1,\n        Tag: 635,\n        SymbolicName: 'FirstYearDelegate',\n    },\n    {\n        Group: '',\n        Description: '2nd year delegate trading for own account',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 2,\n        Tag: 635,\n        SymbolicName: 'SecondYearDelegate',\n    },\n    {\n        Group: '',\n        Description: '3rd year delegate trading for own account',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 3,\n        Tag: 635,\n        SymbolicName: 'ThirdYearDelegate',\n    },\n    {\n        Group: '',\n        Description: '4th year delegate trading for own account',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 4,\n        Tag: 635,\n        SymbolicName: 'FourthYearDelegate',\n    },\n    {\n        Group: '',\n        Description: '5th year delegate trading for own account',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 5,\n        Tag: 635,\n        SymbolicName: 'FifthYearDelegate',\n    },\n    {\n        Group: '',\n        Description: '6th year delegate trading for own account',\n        added: 'FIX.4.3',\n        Value: '9',\n        Sort: 6,\n        Tag: 635,\n        SymbolicName: 'SixthYearDelegate',\n    },\n    {\n        Group: '',\n        Description: 'CBOE Member',\n        added: 'FIX.4.3',\n        Value: 'B',\n        Sort: 7,\n        Tag: 635,\n        SymbolicName: 'CBOEMember',\n    },\n    {\n        Group: '',\n        Description: 'Non-member and Customer',\n        added: 'FIX.4.3',\n        Value: 'C',\n        Sort: 8,\n        Tag: 635,\n        SymbolicName: 'NonMemberAndCustomer',\n    },\n    {\n        Group: '',\n        Description: 'Equity Member and Clearing Member',\n        added: 'FIX.4.3',\n        Value: 'E',\n        Sort: 9,\n        Tag: 635,\n        SymbolicName: 'EquityMemberAndClearingMember',\n    },\n    {\n        Group: '',\n        Description: 'Full and Associate Member trading for own account and as floor brokers',\n        added: 'FIX.4.3',\n        Value: 'F',\n        Sort: 10,\n        Tag: 635,\n        SymbolicName: 'FullAndAssociateMember',\n    },\n    {\n        Group: '',\n        Description: '106.H and 106.J firms',\n        added: 'FIX.4.3',\n        Value: 'H',\n        Sort: 11,\n        Tag: 635,\n        SymbolicName: 'Firms106HAnd106J',\n    },\n    {\n        Group: '',\n        Description: 'GIM, IDEM and COM Membership Interest Holders',\n        added: 'FIX.4.3',\n        Value: 'I',\n        Sort: 12,\n        Tag: 635,\n        SymbolicName: 'GIM',\n    },\n    {\n        Group: '',\n        Description: 'Lessee 106.F Employees',\n        added: 'FIX.4.3',\n        Value: 'L',\n        Sort: 13,\n        Tag: 635,\n        SymbolicName: 'Lessee106FEmployees',\n    },\n    {\n        Group: '',\n        Description: 'All other ownership types',\n        added: 'FIX.4.3',\n        Value: 'M',\n        Sort: 14,\n        Tag: 635,\n        SymbolicName: 'AllOtherOwnershipTypes',\n    },\n    {\n        Group: '',\n        Description: 'Order has been accepted but not yet in a working state',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 1,\n        Tag: 636,\n        SymbolicName: 'NotWorking',\n    },\n    {\n        Group: '',\n        Description: 'Order is currently being worked',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 636,\n        SymbolicName: 'Working',\n    },\n    {\n        Group: '',\n        Description: 'Priority unchanged',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 638,\n        SymbolicName: 'PriorityUnchanged',\n    },\n    {\n        Group: '',\n        Description: 'Lost Priority as result of order change',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 2,\n        Tag: 638,\n        SymbolicName: 'LostPriorityAsResultOfOrderChange',\n    },\n    {\n        Group: '',\n        Description: 'Does not consitute a Legal Confirm',\n        added: 'FIX.4.3',\n        Value: 'N',\n        Sort: 1,\n        Tag: 650,\n        SymbolicName: 'DoesNotConsituteALegalConfirm',\n    },\n    {\n        Group: '',\n        Description: 'Legal Confirm',\n        added: 'FIX.4.3',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 650,\n        SymbolicName: 'LegalConfirm',\n    },\n    {\n        Group: '',\n        Description: 'Pending Approval',\n        added: 'FIX.4.3',\n        Value: '0',\n        Sort: 1,\n        Tag: 653,\n        SymbolicName: 'PendingApproval',\n    },\n    {\n        Group: '',\n        Description: 'Approved (Accepted)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 2,\n        Tag: 653,\n        SymbolicName: 'Approved',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 3,\n        Tag: 653,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Unauthorized Request',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 4,\n        Tag: 653,\n        SymbolicName: 'UnauthorizedRequest',\n    },\n    {\n        Group: '',\n        Description: 'Invalid Definition Request',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 5,\n        Tag: 653,\n        SymbolicName: 'InvalidDefinitionRequest',\n    },\n    {\n        Group: '',\n        Description: 'Unknown Symbol (Security)',\n        added: 'FIX.4.3',\n        Value: '1',\n        Sort: 0,\n        Tag: 658,\n        SymbolicName: 'UnknownSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Exchange (Security) Closed',\n        added: 'FIX.4.3',\n        Value: '2',\n        Sort: 1,\n        Tag: 658,\n        SymbolicName: 'Exchange',\n    },\n    {\n        Group: '',\n        Description: 'Quote Request Exceeds Limit',\n        added: 'FIX.4.3',\n        Value: '3',\n        Sort: 2,\n        Tag: 658,\n        SymbolicName: 'QuoteRequestExceedsLimit',\n    },\n    {\n        Group: '',\n        Description: 'Too Late to enter',\n        added: 'FIX.4.3',\n        Value: '4',\n        Sort: 3,\n        Tag: 658,\n        SymbolicName: 'TooLateToEnter',\n    },\n    {\n        Group: '',\n        Description: 'Invalid Price',\n        added: 'FIX.4.3',\n        Value: '5',\n        Sort: 4,\n        Tag: 658,\n        SymbolicName: 'InvalidPrice',\n    },\n    {\n        Group: '',\n        Description: 'Not Authorized To Request Quote',\n        added: 'FIX.4.3',\n        Value: '6',\n        Sort: 5,\n        Tag: 658,\n        SymbolicName: 'NotAuthorizedToRequestQuote',\n    },\n    {\n        Group: '',\n        Description: 'No Match For Inquiry',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 6,\n        Tag: 658,\n        SymbolicName: 'NoMatchForInquiry',\n    },\n    {\n        Group: '',\n        Description: 'No Market For Instrument',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 7,\n        Tag: 658,\n        SymbolicName: 'NoMarketForInstrument',\n    },\n    {\n        Group: '',\n        Description: 'No Inventory',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 8,\n        Tag: 658,\n        SymbolicName: 'NoInventory',\n    },\n    {\n        Group: '',\n        Description: 'Pass',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 9,\n        Tag: 658,\n        SymbolicName: 'Pass',\n    },\n    {\n        Group: '',\n        Description: 'Insufficient credit',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 10,\n        addedEP: 21,\n        Tag: 658,\n        SymbolicName: 'InsufficientCredit',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 658,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'BIC',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 660,\n        SymbolicName: 'BIC',\n    },\n    {\n        Group: '',\n        Description: 'SID Code',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 660,\n        SymbolicName: 'SIDCode',\n    },\n    {\n        Group: '',\n        Description: 'TFM (GSPTA)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 660,\n        SymbolicName: 'TFM',\n    },\n    {\n        Group: '',\n        Description: 'OMGEO (Alert ID)',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 660,\n        SymbolicName: 'OMGEO',\n    },\n    {\n        Group: '',\n        Description: 'DTCC Code',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 660,\n        SymbolicName: 'DTCCCode',\n    },\n    {\n        Group: '',\n        Description: 'Other (custom or proprietary)',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 660,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Received',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 665,\n        SymbolicName: 'Received',\n    },\n    {\n        Group: '',\n        Description: 'Mismatched Account',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 665,\n        SymbolicName: 'MismatchedAccount',\n    },\n    {\n        Group: '',\n        Description: 'Missing Settlement Instructions',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 665,\n        SymbolicName: 'MissingSettlementInstructions',\n    },\n    {\n        Group: '',\n        Description: 'Confirmed',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 665,\n        SymbolicName: 'Confirmed',\n    },\n    {\n        Group: '',\n        Description: 'Request Rejected',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 665,\n        SymbolicName: 'RequestRejected',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 666,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 666,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 666,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Book Entry (default)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 668,\n        SymbolicName: 'BookEntry',\n    },\n    {\n        Group: '',\n        Description: 'Bearer',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 668,\n        SymbolicName: 'Bearer',\n    },\n    {\n        Group: '',\n        Description: 'Par For Par',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 690,\n        SymbolicName: 'ParForPar',\n    },\n    {\n        Group: '',\n        Description: 'Modified Duration',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 690,\n        SymbolicName: 'ModifiedDuration',\n    },\n    {\n        Group: '',\n        Description: 'Risk',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 3,\n        Tag: 690,\n        SymbolicName: 'Risk',\n    },\n    {\n        Group: '',\n        Description: 'Proceeds',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 4,\n        Tag: 690,\n        SymbolicName: 'Proceeds',\n    },\n    {\n        Group: '',\n        Description: 'Percent (percent of par)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 0,\n        Tag: 692,\n        SymbolicName: 'Percent',\n    },\n    {\n        Group: '',\n        Description: 'Per Share (e.g. cents per share)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 1,\n        Tag: 692,\n        SymbolicName: 'PerShare',\n    },\n    {\n        Group: '',\n        Description: 'Fixed Amount (absolute value)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 2,\n        Tag: 692,\n        SymbolicName: 'FixedAmount',\n    },\n    {\n        Group: '',\n        Description: 'Discount - percentage points below par',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 3,\n        Tag: 692,\n        SymbolicName: 'Discount',\n    },\n    {\n        Group: '',\n        Description: 'Premium - percentage points over par',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 4,\n        Tag: 692,\n        SymbolicName: 'Premium',\n    },\n    {\n        Group: '',\n        Description: 'Spread - basis points relative to benchmark',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 5,\n        Tag: 692,\n        SymbolicName: 'Spread',\n    },\n    {\n        Group: '',\n        Description: 'TED Price',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 6,\n        Tag: 692,\n        SymbolicName: 'TEDPrice',\n    },\n    {\n        Group: '',\n        Description: 'TED Yield',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 7,\n        Tag: 692,\n        SymbolicName: 'TEDYield',\n    },\n    {\n        Group: '',\n        Description: 'Yield Spread (swaps)',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 8,\n        Tag: 692,\n        SymbolicName: 'YieldSpread',\n    },\n    {\n        Group: '',\n        Description: 'Yield',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 9,\n        Tag: 692,\n        SymbolicName: 'Yield',\n    },\n    {\n        Group: '',\n        Description: 'Hit/Lift',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 694,\n        SymbolicName: 'Hit',\n    },\n    {\n        Group: '',\n        Description: 'Counter',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 694,\n        SymbolicName: 'Counter',\n    },\n    {\n        Group: '',\n        Description: 'Expired',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 694,\n        SymbolicName: 'Expired',\n    },\n    {\n        Group: '',\n        Description: 'Cover',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 694,\n        SymbolicName: 'Cover',\n    },\n    {\n        Group: '',\n        Description: 'Done Away',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 694,\n        SymbolicName: 'DoneAway',\n    },\n    {\n        Group: '',\n        Description: 'Pass',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        Tag: 694,\n        SymbolicName: 'Pass',\n    },\n    {\n        Group: '',\n        Description: 'End Trade',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 7,\n        addedEP: 68,\n        Tag: 694,\n        SymbolicName: 'EndTrade',\n    },\n    {\n        Group: '',\n        Description: 'Timed Out',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 8,\n        addedEP: 68,\n        Tag: 694,\n        SymbolicName: 'TimedOut',\n    },\n    {\n        Group: '',\n        Description: 'Allocation Trade Qty',\n        added: 'FIX.4.4',\n        Value: 'ALC',\n        Sort: 1,\n        Tag: 703,\n        SymbolicName: 'AllocationTradeQty',\n    },\n    {\n        Group: '',\n        Description: 'Option Assignment',\n        added: 'FIX.4.4',\n        Value: 'AS',\n        Sort: 2,\n        Tag: 703,\n        SymbolicName: 'OptionAssignment',\n    },\n    {\n        Group: '',\n        Description: 'As-of Trade Qty',\n        added: 'FIX.4.4',\n        Value: 'ASF',\n        Sort: 3,\n        Tag: 703,\n        SymbolicName: 'AsOfTradeQty',\n    },\n    {\n        Group: '',\n        Description: 'Delivery Qty',\n        added: 'FIX.4.4',\n        Value: 'DLV',\n        Sort: 4,\n        Tag: 703,\n        SymbolicName: 'DeliveryQty',\n    },\n    {\n        Group: '',\n        Description: 'Electronic Trade Qty',\n        added: 'FIX.4.4',\n        Value: 'ETR',\n        Sort: 5,\n        Tag: 703,\n        SymbolicName: 'ElectronicTradeQty',\n    },\n    {\n        Group: '',\n        Description: 'Option Exercise Qty',\n        added: 'FIX.4.4',\n        Value: 'EX',\n        Sort: 6,\n        Tag: 703,\n        SymbolicName: 'OptionExerciseQty',\n    },\n    {\n        Group: '',\n        Description: 'End-of-Day Qty',\n        added: 'FIX.4.4',\n        Value: 'FIN',\n        Sort: 7,\n        Tag: 703,\n        SymbolicName: 'EndOfDayQty',\n    },\n    {\n        Group: '',\n        Description: 'Intra-spread Qty',\n        added: 'FIX.4.4',\n        Value: 'IAS',\n        Sort: 8,\n        Tag: 703,\n        SymbolicName: 'IntraSpreadQty',\n    },\n    {\n        Group: '',\n        Description: 'Inter-spread Qty',\n        added: 'FIX.4.4',\n        Value: 'IES',\n        Sort: 9,\n        Tag: 703,\n        SymbolicName: 'InterSpreadQty',\n    },\n    {\n        Group: '',\n        Description: 'Adjustment Qty',\n        added: 'FIX.4.4',\n        Value: 'PA',\n        Sort: 10,\n        Tag: 703,\n        SymbolicName: 'AdjustmentQty',\n    },\n    {\n        Group: '',\n        Description: 'Pit Trade Qty',\n        added: 'FIX.4.4',\n        Value: 'PIT',\n        Sort: 11,\n        Tag: 703,\n        SymbolicName: 'PitTradeQty',\n    },\n    {\n        Group: '',\n        Description: 'Start-of-Day Qty',\n        added: 'FIX.4.4',\n        Value: 'SOD',\n        Sort: 12,\n        Tag: 703,\n        SymbolicName: 'StartOfDayQty',\n    },\n    {\n        Group: '',\n        Description: 'Integral Split',\n        added: 'FIX.4.4',\n        Value: 'SPL',\n        Sort: 13,\n        Tag: 703,\n        SymbolicName: 'IntegralSplit',\n    },\n    {\n        Group: '',\n        Description: 'Transaction from Assignment',\n        added: 'FIX.4.4',\n        Value: 'TA',\n        Sort: 14,\n        Tag: 703,\n        SymbolicName: 'TransactionFromAssignment',\n    },\n    {\n        Group: '',\n        Description: 'Total Transaction Qty',\n        added: 'FIX.4.4',\n        Value: 'TOT',\n        Sort: 15,\n        Tag: 703,\n        SymbolicName: 'TotalTransactionQty',\n    },\n    {\n        Group: '',\n        Description: 'Transaction Quantity',\n        added: 'FIX.4.4',\n        Value: 'TQ',\n        Sort: 16,\n        Tag: 703,\n        SymbolicName: 'TransactionQuantity',\n    },\n    {\n        Group: '',\n        Description: 'Transfer Trade Qty',\n        added: 'FIX.4.4',\n        Value: 'TRF',\n        Sort: 17,\n        Tag: 703,\n        SymbolicName: 'TransferTradeQty',\n    },\n    {\n        Group: '',\n        Description: 'Transaction from Exercise',\n        added: 'FIX.4.4',\n        Value: 'TX',\n        Sort: 18,\n        Tag: 703,\n        SymbolicName: 'TransactionFromExercise',\n    },\n    {\n        Group: '',\n        Description: 'Cross Margin Qty',\n        added: 'FIX.4.4',\n        Value: 'XM',\n        Sort: 19,\n        Tag: 703,\n        SymbolicName: 'CrossMarginQty',\n    },\n    {\n        Group: '',\n        Description: 'Receive Quantity',\n        added: 'FIX.4.4',\n        Value: 'RCV',\n        Sort: 20,\n        addedEP: 4,\n        Tag: 703,\n        SymbolicName: 'ReceiveQuantity',\n    },\n    {\n        Group: '',\n        Description: 'Corporate Action Adjustment',\n        added: 'FIX.4.4',\n        Value: 'CAA',\n        Sort: 21,\n        addedEP: 4,\n        Tag: 703,\n        SymbolicName: 'CorporateActionAdjustment',\n    },\n    {\n        Group: '',\n        Description: 'Delivery Notice Qty',\n        added: 'FIX.4.4',\n        Value: 'DN',\n        Sort: 22,\n        addedEP: 13,\n        Tag: 703,\n        SymbolicName: 'DeliveryNoticeQty',\n    },\n    {\n        Group: '',\n        Description: 'Exchange for Physical Qty',\n        added: 'FIX.4.4',\n        Value: 'EP',\n        Sort: 23,\n        addedEP: 13,\n        Tag: 703,\n        SymbolicName: 'ExchangeForPhysicalQty',\n    },\n    {\n        Group: '',\n        Description: 'Privately negotiated Trade Qty (Non-regulated)',\n        added: 'FIX.5.0',\n        Value: 'PNTN',\n        Sort: 24,\n        addedEP: 55,\n        Tag: 703,\n        SymbolicName: 'PrivatelyNegotiatedTradeQty',\n    },\n    {\n        Group: '',\n        Description: 'Submitted',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 706,\n        SymbolicName: 'Submitted',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 706,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 706,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Cash Amount (Corporate Event)',\n        added: 'FIX.4.4',\n        Value: 'CASH',\n        Sort: 0,\n        Tag: 707,\n        SymbolicName: 'CashAmount',\n    },\n    {\n        Group: '',\n        Description: 'Cash Residual Amount',\n        added: 'FIX.4.4',\n        Value: 'CRES',\n        Sort: 1,\n        Tag: 707,\n        SymbolicName: 'CashResidualAmount',\n    },\n    {\n        Group: '',\n        Description: 'Final Mark-to-Market Amount',\n        added: 'FIX.4.4',\n        Value: 'FMTM',\n        Sort: 2,\n        Tag: 707,\n        SymbolicName: 'FinalMarkToMarketAmount',\n    },\n    {\n        Group: '',\n        Description: 'Incremental Mark-to-Market Amount',\n        added: 'FIX.4.4',\n        Value: 'IMTM',\n        Sort: 3,\n        Tag: 707,\n        SymbolicName: 'IncrementalMarkToMarketAmount',\n    },\n    {\n        Group: '',\n        Description: 'Premium Amount',\n        added: 'FIX.4.4',\n        Value: 'PREM',\n        Sort: 4,\n        Tag: 707,\n        SymbolicName: 'PremiumAmount',\n    },\n    {\n        Group: '',\n        Description: 'Start-of-Day Mark-to-Market Amount',\n        added: 'FIX.4.4',\n        Value: 'SMTM',\n        Sort: 5,\n        Tag: 707,\n        SymbolicName: 'StartOfDayMarkToMarketAmount',\n    },\n    {\n        Group: '',\n        Description: 'Trade Variation Amount',\n        added: 'FIX.4.4',\n        Value: 'TVAR',\n        Sort: 6,\n        Tag: 707,\n        SymbolicName: 'TradeVariationAmount',\n    },\n    {\n        Group: '',\n        Description: 'Value Adjusted Amount',\n        added: 'FIX.4.4',\n        Value: 'VADJ',\n        Sort: 7,\n        Tag: 707,\n        SymbolicName: 'ValueAdjustedAmount',\n    },\n    {\n        Group: '',\n        Description: 'Settlement Value',\n        added: 'FIX.4.4',\n        Value: 'SETL',\n        Sort: 8,\n        addedEP: 4,\n        Tag: 707,\n        SymbolicName: 'SettlementValue',\n    },\n    {\n        Group: '',\n        Description: 'Exercise',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 709,\n        SymbolicName: 'Exercise',\n    },\n    {\n        Group: '',\n        Description: 'Do Not Exercise',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 709,\n        SymbolicName: 'DoNotExercise',\n    },\n    {\n        Group: '',\n        Description: 'Position Adjustment',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 709,\n        SymbolicName: 'PositionAdjustment',\n    },\n    {\n        Group: '',\n        Description: 'Position Change Submission/Margin Disposition',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 709,\n        SymbolicName: 'PositionChangeSubmission',\n    },\n    {\n        Group: '',\n        Description: 'Pledge',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 709,\n        SymbolicName: 'Pledge',\n    },\n    {\n        Group: '',\n        Description: 'Large Trader Submission',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        addedEP: 13,\n        Tag: 709,\n        SymbolicName: 'LargeTraderSubmission',\n    },\n    {\n        Group: '',\n        Description: 'New - used to increment the overall transaction quantity',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 712,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description:\n            'Replace - used to override the overall transaction quantity or specifi add messages based on the reference ID',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 712,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Cancel - used to remove the overall transaction or specific add messages based on reference ID',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 712,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Reverse - used to completelly back-out the transaction such that the transaction never existed',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        addedEP: 4,\n        Tag: 712,\n        SymbolicName: 'Reverse',\n    },\n    {\n        Group: '',\n        Description: 'Intraday',\n        added: 'FIX.4.4',\n        Value: 'ITD',\n        Sort: 1,\n        addedEP: 1,\n        Tag: 716,\n        SymbolicName: 'Intraday',\n    },\n    {\n        Group: '',\n        Description: 'Regular Trading Hours',\n        added: 'FIX.4.4',\n        Value: 'RTH',\n        Sort: 2,\n        addedEP: 1,\n        Tag: 716,\n        SymbolicName: 'RegularTradingHours',\n    },\n    {\n        Group: '',\n        Description: 'Electronic Trading Hours',\n        added: 'FIX.4.4',\n        Value: 'ETH',\n        Sort: 3,\n        addedEP: 1,\n        Tag: 716,\n        SymbolicName: 'ElectronicTradingHours',\n    },\n    {\n        Group: '',\n        Description: 'End Of Day',\n        added: 'FIX.4.4',\n        Value: 'EOD',\n        Sort: 4,\n        addedEP: 4,\n        Tag: 716,\n        SymbolicName: 'EndOfDay',\n    },\n    {\n        Group: '',\n        Description: 'Process Request As Margin Disposition',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 718,\n        SymbolicName: 'ProcessRequestAsMarginDisposition',\n    },\n    {\n        Group: '',\n        Description: 'Delta Plus',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 718,\n        SymbolicName: 'DeltaPlus',\n    },\n    {\n        Group: '',\n        Description: 'Delta Minus',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 718,\n        SymbolicName: 'DeltaMinus',\n    },\n    {\n        Group: '',\n        Description: 'Final',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 718,\n        SymbolicName: 'Final',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 722,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Accepted With Warnings',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 722,\n        SymbolicName: 'AcceptedWithWarnings',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 722,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Completed',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 722,\n        SymbolicName: 'Completed',\n    },\n    {\n        Group: '',\n        Description: 'Completed With Warnings',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 722,\n        SymbolicName: 'CompletedWithWarnings',\n    },\n    {\n        Group: '',\n        Description: 'Successful Completion - no warnings or errors',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 723,\n        SymbolicName: 'SuccessfulCompletion',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 723,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 723,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Positions',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 724,\n        SymbolicName: 'Positions',\n    },\n    {\n        Group: '',\n        Description: 'Trades',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 724,\n        SymbolicName: 'Trades',\n    },\n    {\n        Group: '',\n        Description: 'Exercises',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 724,\n        SymbolicName: 'Exercises',\n    },\n    {\n        Group: '',\n        Description: 'Assignments',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 724,\n        SymbolicName: 'Assignments',\n    },\n    {\n        Group: '',\n        Description: 'Settlement Activity',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        addedEP: 4,\n        Tag: 724,\n        SymbolicName: 'SettlementActivity',\n    },\n    {\n        Group: '',\n        Description: 'Backout Message',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        addedEP: 4,\n        Tag: 724,\n        SymbolicName: 'BackoutMessage',\n    },\n    {\n        Group: '',\n        Description: 'Inband - transport the request was sent over (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 725,\n        SymbolicName: 'Inband',\n    },\n    {\n        Group: '',\n        Description:\n            'Out of Band - pre-arranged out-of-band delivery mechanizm (i.e. FTP, HTTP, NDM, etc.) between counterparties. Details specified via ResponseDestination (726).',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 725,\n        SymbolicName: 'OutOfBand',\n    },\n    {\n        Group: '',\n        Description: 'Valid request',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 728,\n        SymbolicName: 'ValidRequest',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unsupported request',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 728,\n        SymbolicName: 'InvalidOrUnsupportedRequest',\n    },\n    {\n        Group: '',\n        Description: 'No positions found that match criteria',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 728,\n        SymbolicName: 'NoPositionsFoundThatMatchCriteria',\n    },\n    {\n        Group: '',\n        Description: 'Not authorized to request positions',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 728,\n        SymbolicName: 'NotAuthorizedToRequestPositions',\n    },\n    {\n        Group: '',\n        Description: 'Request for position not supported',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 728,\n        SymbolicName: 'RequestForPositionNotSupported',\n    },\n    {\n        Group: '',\n        Description: 'Other (use Text (58) in conjunction with this code for an explaination)',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 728,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Completed',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 729,\n        SymbolicName: 'Completed',\n    },\n    {\n        Group: '',\n        Description: 'Completed With Warnings',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 729,\n        SymbolicName: 'CompletedWithWarnings',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 729,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Final',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 731,\n        SymbolicName: 'Final',\n    },\n    {\n        Group: '',\n        Description: 'Theoretical',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 731,\n        SymbolicName: 'Theoretical',\n    },\n    {\n        Group: '',\n        Description: 'Pro rata',\n        added: 'FIX.4.4',\n        Value: 'P',\n        Sort: 1,\n        Tag: 744,\n        SymbolicName: 'ProRata',\n    },\n    {\n        Group: '',\n        Description: 'Random',\n        added: 'FIX.4.4',\n        Value: 'R',\n        Sort: 2,\n        Tag: 744,\n        SymbolicName: 'Random',\n    },\n    {\n        Group: '',\n        Description: 'Automatic',\n        added: 'FIX.4.4',\n        Value: 'A',\n        Sort: 1,\n        Tag: 747,\n        SymbolicName: 'Automatic',\n    },\n    {\n        Group: '',\n        Description: 'Manual',\n        added: 'FIX.4.4',\n        Value: 'M',\n        Sort: 2,\n        Tag: 747,\n        SymbolicName: 'Manual',\n    },\n    {\n        Group: '',\n        Description: 'Successful (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 749,\n        SymbolicName: 'Successful',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown instrument',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 749,\n        SymbolicName: 'InvalidOrUnknownInstrument',\n    },\n    {\n        Group: '',\n        Description: 'Invalid type of trade requested',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 749,\n        SymbolicName: 'InvalidTypeOfTradeRequested',\n    },\n    {\n        Group: '',\n        Description: 'Invalid parties',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 749,\n        SymbolicName: 'InvalidParties',\n    },\n    {\n        Group: '',\n        Description: 'Invalid transport type requested',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 749,\n        SymbolicName: 'InvalidTransportTypeRequested',\n    },\n    {\n        Group: '',\n        Description: 'Invalid destination requested',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 749,\n        SymbolicName: 'InvalidDestinationRequested',\n    },\n    {\n        Group: '',\n        Description: 'TradeRequestType not supported',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 7,\n        Tag: 749,\n        SymbolicName: 'TradeRequestTypeNotSupported',\n    },\n    {\n        Group: '',\n        Description: 'Not authorized',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 8,\n        Tag: 749,\n        SymbolicName: 'NotAuthorized',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 749,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 750,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Completed',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 750,\n        SymbolicName: 'Completed',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 750,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Successful (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 751,\n        SymbolicName: 'Successful',\n    },\n    {\n        Group: '',\n        Description: 'Invalid party onformation',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 751,\n        SymbolicName: 'InvalidPartyOnformation',\n    },\n    {\n        Group: '',\n        Description: 'Unknown instrument',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 751,\n        SymbolicName: 'UnknownInstrument',\n    },\n    {\n        Group: '',\n        Description: 'Unauthorized to report trades',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 751,\n        SymbolicName: 'UnauthorizedToReportTrades',\n    },\n    {\n        Group: '',\n        Description: 'Invalid trade type',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 751,\n        SymbolicName: 'InvalidTradeType',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 751,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Single Security (default if not specified)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 752,\n        SymbolicName: 'SingleSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Individual leg of a multileg security',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 752,\n        SymbolicName: 'IndividualLegOfAMultilegSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Multileg Security',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 752,\n        SymbolicName: 'MultilegSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Execution Time',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 770,\n        SymbolicName: 'ExecutionTime',\n    },\n    {\n        Group: '',\n        Description: 'Time In',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 770,\n        SymbolicName: 'TimeIn',\n    },\n    {\n        Group: '',\n        Description: 'Time Out',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 770,\n        SymbolicName: 'TimeOut',\n    },\n    {\n        Group: '',\n        Description: 'Broker Receipt',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 770,\n        SymbolicName: 'BrokerReceipt',\n    },\n    {\n        Group: '',\n        Description: 'Broker Execution',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 770,\n        SymbolicName: 'BrokerExecution',\n    },\n    {\n        Group: '',\n        Description: 'Desk Receipt',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        addedEP: 9,\n        Tag: 770,\n        SymbolicName: 'DeskReceipt',\n    },\n    {\n        Group: '',\n        Description: 'Status',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 773,\n        SymbolicName: 'Status',\n    },\n    {\n        Group: '',\n        Description: 'Confirmation',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 773,\n        SymbolicName: 'Confirmation',\n    },\n    {\n        Group: '',\n        Description: 'Confirmation Request Rejected (reason can be stated in Text (58) field)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 773,\n        SymbolicName: 'ConfirmationRequestRejected',\n    },\n    {\n        Group: '',\n        Description: 'Mismatched account',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 774,\n        SymbolicName: 'MismatchedAccount',\n    },\n    {\n        Group: '',\n        Description: 'Missing settlement instructions',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 774,\n        SymbolicName: 'MissingSettlementInstructions',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 774,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Regular booking',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 775,\n        SymbolicName: 'RegularBooking',\n    },\n    {\n        Group: '',\n        Description: 'CFD (Contract for difference)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 775,\n        SymbolicName: 'CFD',\n    },\n    {\n        Group: '',\n        Description: 'Total Return Swap',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 775,\n        SymbolicName: 'TotalReturnSwap',\n    },\n    {\n        Group: '',\n        Description: 'Use default instructions',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 780,\n        SymbolicName: 'UseDefaultInstructions',\n    },\n    {\n        Group: '',\n        Description: 'Derive from parameters provided',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 780,\n        SymbolicName: 'DeriveFromParametersProvided',\n    },\n    {\n        Group: '',\n        Description: 'Full details provided',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 780,\n        SymbolicName: 'FullDetailsProvided',\n    },\n    {\n        Group: '',\n        Description: 'SSI DB IDs provided',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 780,\n        SymbolicName: 'SSIDBIDsProvided',\n    },\n    {\n        Group: '',\n        Description: 'Phone for instructions',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 780,\n        SymbolicName: 'PhoneForInstructions',\n    },\n    {\n        Group: '',\n        Description: 'Cash',\n        added: 'FIX.4.4',\n        Value: 'C',\n        Sort: 1,\n        Tag: 787,\n        SymbolicName: 'Cash',\n    },\n    {\n        Group: '',\n        Description: 'Securities',\n        added: 'FIX.4.4',\n        Value: 'S',\n        Sort: 2,\n        Tag: 787,\n        SymbolicName: 'Securities',\n    },\n    {\n        Group: '',\n        Description: 'Overnight',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 788,\n        SymbolicName: 'Overnight',\n    },\n    {\n        Group: '',\n        Description: 'Term',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 788,\n        SymbolicName: 'Term',\n    },\n    {\n        Group: '',\n        Description: 'Flexible',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 788,\n        SymbolicName: 'Flexible',\n    },\n    {\n        Group: '',\n        Description: 'Open',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 788,\n        SymbolicName: 'Open',\n    },\n    {\n        Group: '',\n        Description: 'Unable to process request',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 792,\n        SymbolicName: 'UnableToProcessRequest',\n    },\n    {\n        Group: '',\n        Description: 'Unknown account',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 792,\n        SymbolicName: 'UnknownAccount',\n    },\n    {\n        Group: '',\n        Description: 'No matching settlement instructions found',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 792,\n        SymbolicName: 'NoMatchingSettlementInstructionsFound',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 792,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Preliminary Request to Intermediary',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 1,\n        addedEP: 5,\n        Tag: 794,\n        SymbolicName: 'PreliminaryRequestToIntermediary',\n    },\n    {\n        Group: '',\n        Description: 'Sellside Calculated Using Preliminary (includes MiscFees and NetMoney)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 2,\n        Tag: 794,\n        SymbolicName: 'SellsideCalculatedUsingPreliminary',\n    },\n    {\n        Group: '',\n        Description:\n            'Sellside Calculated Without Preliminary (sent unsolicited by sellside, includes MiscFees and NetMoney)',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 3,\n        Tag: 794,\n        SymbolicName: 'SellsideCalculatedWithoutPreliminary',\n    },\n    {\n        Group: '',\n        Description: 'Warehouse Recap',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 4,\n        Tag: 794,\n        SymbolicName: 'WarehouseRecap',\n    },\n    {\n        Group: '',\n        Description: 'Request to Intermediary',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 5,\n        Tag: 794,\n        SymbolicName: 'RequestToIntermediary',\n    },\n    {\n        Group: '',\n        Description: 'Accept',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 6,\n        addedEP: 5,\n        Tag: 794,\n        SymbolicName: 'Accept',\n    },\n    {\n        Group: '',\n        Description: 'Reject',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 7,\n        addedEP: 5,\n        Tag: 794,\n        SymbolicName: 'Reject',\n    },\n    {\n        Group: '',\n        Description: 'Accept Pending',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 8,\n        addedEP: 5,\n        Tag: 794,\n        SymbolicName: 'AcceptPending',\n    },\n    {\n        Group: '',\n        Description: 'Complete',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 9,\n        addedEP: 5,\n        Tag: 794,\n        SymbolicName: 'Complete',\n    },\n    {\n        Group: '',\n        Description: 'Reverse Pending',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 10,\n        addedEP: 5,\n        Tag: 794,\n        SymbolicName: 'ReversePending',\n    },\n    {\n        Group: '',\n        Description: 'Original details incomplete/incorrect',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 796,\n        SymbolicName: 'OriginalDetailsIncomplete',\n    },\n    {\n        Group: '',\n        Description: 'Change in underlying order details',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 796,\n        SymbolicName: 'ChangeInUnderlyingOrderDetails',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 796,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Account is carried pn customer side of books',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 798,\n        SymbolicName: 'CarriedCustomerSide',\n    },\n    {\n        Group: '',\n        Description: 'Account is carried on non-customer side of books',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 798,\n        SymbolicName: 'CarriedNonCustomerSide',\n    },\n    {\n        Group: '',\n        Description: 'House trader',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 798,\n        SymbolicName: 'HouseTrader',\n    },\n    {\n        Group: '',\n        Description: 'Floor trader',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 798,\n        SymbolicName: 'FloorTrader',\n    },\n    {\n        Group: '',\n        Description: 'Account is carried on non-customer side of books and is cross margined',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 5,\n        Tag: 798,\n        SymbolicName: 'CarriedNonCustomerSideCrossMargined',\n    },\n    {\n        Group: '',\n        Description: 'Account is house trader and is cross margined',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 6,\n        Tag: 798,\n        SymbolicName: 'HouseTraderCrossMargined',\n    },\n    {\n        Group: '',\n        Description: 'Joint back office account (JBO)',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 7,\n        Tag: 798,\n        SymbolicName: 'JointBackOfficeAccount',\n    },\n    {\n        Group: '',\n        Description: 'Firm',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 0,\n        Tag: 803,\n        SymbolicName: 'Firm',\n    },\n    {\n        Group: '',\n        Description: 'Person',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 1,\n        Tag: 803,\n        SymbolicName: 'Person',\n    },\n    {\n        Group: '',\n        Description: 'System',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 2,\n        Tag: 803,\n        SymbolicName: 'System',\n    },\n    {\n        Group: '',\n        Description: 'Application',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 3,\n        Tag: 803,\n        SymbolicName: 'Application',\n    },\n    {\n        Group: '',\n        Description: 'Full legal name of firm',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 4,\n        Tag: 803,\n        SymbolicName: 'FullLegalNameOfFirm',\n    },\n    {\n        Group: '',\n        Description: 'Postal address',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 5,\n        Tag: 803,\n        SymbolicName: 'PostalAddress',\n    },\n    {\n        Group: '',\n        Description: 'Phone number',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 6,\n        Tag: 803,\n        SymbolicName: 'PhoneNumber',\n    },\n    {\n        Group: '',\n        Description: 'Email address',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 7,\n        Tag: 803,\n        SymbolicName: 'EmailAddress',\n    },\n    {\n        Group: '',\n        Description: 'Contact name',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 8,\n        Tag: 803,\n        SymbolicName: 'ContactName',\n    },\n    {\n        Group: '',\n        Description: 'Securities account number (for settlement instructions)',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 9,\n        Tag: 803,\n        SymbolicName: 'SecuritiesAccountNumber',\n    },\n    {\n        Group: '',\n        Description: 'Registration number (for settlement instructions and confirmations)',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 10,\n        Tag: 803,\n        SymbolicName: 'RegistrationNumber',\n    },\n    {\n        Group: '',\n        Description: 'Registered address (for confirmation purposes)',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 11,\n        Tag: 803,\n        SymbolicName: 'RegisteredAddressForConfirmation',\n    },\n    {\n        Group: '',\n        Description: 'Regulatory status (for confirmation purposes)',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 12,\n        Tag: 803,\n        SymbolicName: 'RegulatoryStatus',\n    },\n    {\n        Group: '',\n        Description: 'Registration name (for settlement instructions)',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 13,\n        Tag: 803,\n        SymbolicName: 'RegistrationName',\n    },\n    {\n        Group: '',\n        Description: 'Cash account number (for settlement instructions)',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 14,\n        Tag: 803,\n        SymbolicName: 'CashAccountNumber',\n    },\n    {\n        Group: '',\n        Description: 'BIC',\n        added: 'FIX.4.4',\n        Value: '16',\n        Sort: 15,\n        Tag: 803,\n        SymbolicName: 'BIC',\n    },\n    {\n        Group: '',\n        Description: 'CSD participant member code',\n        added: 'FIX.4.4',\n        Value: '17',\n        Sort: 16,\n        Tag: 803,\n        SymbolicName: 'CSDParticipantMemberCode',\n    },\n    {\n        Group: '',\n        Description: 'Registered address',\n        added: 'FIX.4.4',\n        Value: '18',\n        Sort: 17,\n        Tag: 803,\n        SymbolicName: 'RegisteredAddress',\n    },\n    {\n        Group: '',\n        Description: 'Fund account name',\n        added: 'FIX.4.4',\n        Value: '19',\n        Sort: 18,\n        Tag: 803,\n        SymbolicName: 'FundAccountName',\n    },\n    {\n        Group: '',\n        Description: 'Telex number',\n        added: 'FIX.4.4',\n        Value: '20',\n        Sort: 19,\n        Tag: 803,\n        SymbolicName: 'TelexNumber',\n    },\n    {\n        Group: '',\n        Description: 'Fax number',\n        added: 'FIX.4.4',\n        Value: '21',\n        Sort: 20,\n        Tag: 803,\n        SymbolicName: 'FaxNumber',\n    },\n    {\n        Group: '',\n        Description: 'Securities account name',\n        added: 'FIX.4.4',\n        Value: '22',\n        Sort: 21,\n        Tag: 803,\n        SymbolicName: 'SecuritiesAccountName',\n    },\n    {\n        Group: '',\n        Description: 'Cash account name',\n        added: 'FIX.4.4',\n        Value: '23',\n        Sort: 22,\n        Tag: 803,\n        SymbolicName: 'CashAccountName',\n    },\n    {\n        Group: '',\n        Description: 'Department',\n        added: 'FIX.4.4',\n        Value: '24',\n        Sort: 23,\n        Tag: 803,\n        SymbolicName: 'Department',\n    },\n    {\n        Group: '',\n        Description: 'Location desk',\n        added: 'FIX.4.4',\n        Value: '25',\n        Sort: 24,\n        Tag: 803,\n        SymbolicName: 'LocationDesk',\n    },\n    {\n        Group: '',\n        Description: 'Position account type',\n        added: 'FIX.4.4',\n        Value: '26',\n        Sort: 25,\n        Tag: 803,\n        SymbolicName: 'PositionAccountType',\n    },\n    {\n        Group: '',\n        Description: 'Security locate ID',\n        added: 'FIX.4.4',\n        Value: '27',\n        Sort: 26,\n        addedEP: 1,\n        Tag: 803,\n        SymbolicName: 'SecurityLocateID',\n    },\n    {\n        Group: '',\n        Description: 'Market maker',\n        added: 'FIX.4.4',\n        Value: '28',\n        Sort: 27,\n        addedEP: 26,\n        Tag: 803,\n        SymbolicName: 'MarketMaker',\n    },\n    {\n        Group: '',\n        Description: 'Eligible counterparty',\n        added: 'FIX.4.4',\n        Value: '29',\n        Sort: 28,\n        addedEP: 26,\n        Tag: 803,\n        SymbolicName: 'EligibleCounterparty',\n    },\n    {\n        Group: '',\n        Description: 'Professional client',\n        added: 'FIX.4.4',\n        Value: '30',\n        Sort: 29,\n        addedEP: 26,\n        Tag: 803,\n        SymbolicName: 'ProfessionalClient',\n    },\n    {\n        Group: '',\n        Description: 'Location',\n        added: 'FIX.4.4',\n        Value: '31',\n        Sort: 30,\n        addedEP: 26,\n        Tag: 803,\n        SymbolicName: 'Location',\n    },\n    {\n        Group: '',\n        Description: 'Execution venue',\n        added: 'FIX.4.4',\n        Value: '32',\n        Sort: 31,\n        addedEP: 26,\n        Tag: 803,\n        SymbolicName: 'ExecutionVenue',\n    },\n    {\n        Group: '',\n        Description: 'Currency delivery identifier',\n        added: 'FIX.5.0',\n        Value: '33',\n        Sort: 99,\n        addedEP: 44,\n        Tag: 803,\n        SymbolicName: 'CurrencyDeliveryIdentifier',\n    },\n    {\n        Group: '',\n        Description: 'Pending Accept',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 808,\n        SymbolicName: 'PendingAccept',\n    },\n    {\n        Group: '',\n        Description: 'Pending Release',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 808,\n        SymbolicName: 'PendingRelease',\n    },\n    {\n        Group: '',\n        Description: 'Pending Reversal',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 808,\n        SymbolicName: 'PendingReversal',\n    },\n    {\n        Group: '',\n        Description: 'Accept',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 808,\n        SymbolicName: 'Accept',\n    },\n    {\n        Group: '',\n        Description: 'Block Level Reject',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 808,\n        SymbolicName: 'BlockLevelReject',\n    },\n    {\n        Group: '',\n        Description: 'Account Level Reject',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        Tag: 808,\n        SymbolicName: 'AccountLevelReject',\n    },\n    {\n        Group: '',\n        Description: 'No Action Taken',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 814,\n        SymbolicName: 'NoActionTaken',\n    },\n    {\n        Group: '',\n        Description: 'Queue Flushed',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 814,\n        SymbolicName: 'QueueFlushed',\n    },\n    {\n        Group: '',\n        Description: 'Overlay Last',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 814,\n        SymbolicName: 'OverlayLast',\n    },\n    {\n        Group: '',\n        Description: 'End Session',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 814,\n        SymbolicName: 'EndSession',\n    },\n    {\n        Group: '',\n        Description: 'No Action Taken',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 815,\n        SymbolicName: 'NoActionTaken',\n    },\n    {\n        Group: '',\n        Description: 'Queue Flushed',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 815,\n        SymbolicName: 'QueueFlushed',\n    },\n    {\n        Group: '',\n        Description: 'Overlay Last',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 815,\n        SymbolicName: 'OverlayLast',\n    },\n    {\n        Group: '',\n        Description: 'End Session',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 815,\n        SymbolicName: 'EndSession',\n    },\n    {\n        Group: '',\n        Description: 'No Average Pricing',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 819,\n        SymbolicName: 'NoAveragePricing',\n    },\n    {\n        Group: '',\n        Description: 'Trade is part of an average price group identified by the TradeLinkID (820)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 819,\n        SymbolicName: 'Trade',\n    },\n    {\n        Group: '',\n        Description: 'Last trade is the average price group identified by the TradeLinkID (820)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 819,\n        SymbolicName: 'LastTrade',\n    },\n    {\n        Group: '',\n        Description: 'Allocation not required',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 826,\n        SymbolicName: 'AllocationNotRequired',\n    },\n    {\n        Group: '',\n        Description: 'Allocation required (give-up trade) allocation information not provided (incomplete)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 826,\n        SymbolicName: 'AllocationRequired',\n    },\n    {\n        Group: '',\n        Description: 'Use allocation provided with the trade',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 826,\n        SymbolicName: 'UseAllocationProvidedWithTheTrade',\n    },\n    {\n        Group: '',\n        Description: 'Allocation give-up executor',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: 4,\n        Tag: 826,\n        SymbolicName: 'AllocationGiveUpExecutor',\n    },\n    {\n        Group: '',\n        Description: 'Allocation from executor',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        addedEP: 4,\n        Tag: 826,\n        SymbolicName: 'AllocationFromExecutor',\n    },\n    {\n        Group: '',\n        Description: 'Allocation to claim account',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        addedEP: 4,\n        Tag: 826,\n        SymbolicName: 'AllocationToClaimAccount',\n    },\n    {\n        Group: '',\n        Description: 'Expire on trading session close (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 827,\n        SymbolicName: 'ExpireOnTradingSessionClose',\n    },\n    {\n        Group: '',\n        Description: 'Expire on trading session open',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 827,\n        SymbolicName: 'ExpireOnTradingSessionOpen',\n    },\n    {\n        Group: '',\n        Description:\n            'Trading eligibility expiration specified in the date and time fields [EventDate(866) and EventTime(1145)] associated with EventType(865)=7(Last Eligible Trade Date)',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 42,\n        Tag: 827,\n        SymbolicName: 'SpecifiedExpiration',\n    },\n    {\n        Group: '',\n        Description: 'Regular Trade',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 0,\n        Tag: 828,\n        SymbolicName: 'RegularTrade',\n    },\n    {\n        Group: '',\n        Description: 'Block Trade',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 828,\n        SymbolicName: 'BlockTrade',\n    },\n    {\n        Group: '',\n        Description: 'EFP (Exchange for physical)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 828,\n        SymbolicName: 'EFP',\n    },\n    {\n        Group: '',\n        Description: 'Transfer',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 828,\n        SymbolicName: 'Transfer',\n    },\n    {\n        Group: '',\n        Description: 'Late Trade',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 828,\n        SymbolicName: 'LateTrade',\n    },\n    {\n        Group: '',\n        Description: 'T Trade',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 828,\n        SymbolicName: 'TTrade',\n    },\n    {\n        Group: '',\n        Description: 'Weighted Average Price Trade',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        Tag: 828,\n        SymbolicName: 'WeightedAveragePriceTrade',\n    },\n    {\n        Group: '',\n        Description: 'Bunched Trade',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 7,\n        Tag: 828,\n        SymbolicName: 'BunchedTrade',\n    },\n    {\n        Group: '',\n        Description: 'Late Bunched Trade',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 8,\n        Tag: 828,\n        SymbolicName: 'LateBunchedTrade',\n    },\n    {\n        Group: '',\n        Description: 'Prior Reference Price Trade',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 9,\n        Tag: 828,\n        SymbolicName: 'PriorReferencePriceTrade',\n    },\n    {\n        Group: '',\n        Description: 'After Hours Trade',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 10,\n        Tag: 828,\n        SymbolicName: 'AfterHoursTrade',\n    },\n    {\n        Group: '',\n        Description: 'Exchange for Risk (EFR)',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 11,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'ExchangeForRisk',\n    },\n    {\n        Group: '',\n        Description: 'Exchange for Swap (EFS )',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 12,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'ExchangeForSwap',\n    },\n    {\n        Group: '',\n        Description: 'Exchange of Futures for (in Market) Futures (EFM ) (e,g, full sized for mini)',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 13,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'ExchangeOfFuturesFor',\n    },\n    {\n        Group: '',\n        Description: 'Exchange of Options for Options (EOO)',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 14,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'ExchangeOfOptionsForOptions',\n    },\n    {\n        Group: '',\n        Description: 'Trading at Settlement',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 15,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'TradingAtSettlement',\n    },\n    {\n        Group: '',\n        Description: 'All or None',\n        added: 'FIX.4.4',\n        Value: '16',\n        Sort: 16,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'AllOrNone',\n    },\n    {\n        Group: '',\n        Description: 'Futures Large Order Execution',\n        added: 'FIX.4.4',\n        Value: '17',\n        Sort: 17,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'FuturesLargeOrderExecution',\n    },\n    {\n        Group: '',\n        Description: 'Exchange of Futures for Futures (external market) (EFF)',\n        added: 'FIX.4.4',\n        Value: '18',\n        Sort: 18,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'ExchangeOfFuturesForFutures',\n    },\n    {\n        Group: '',\n        Description: 'Option Interim Trade',\n        added: 'FIX.4.4',\n        Value: '19',\n        Sort: 19,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'OptionInterimTrade',\n    },\n    {\n        Group: '',\n        Description: 'Option Cabinet Trade',\n        added: 'FIX.4.4',\n        Value: '20',\n        Sort: 20,\n        addedEP: 5,\n        Tag: 828,\n        SymbolicName: 'OptionCabinetTrade',\n    },\n    {\n        Group: '',\n        Description: 'Privately Negotiated Trades',\n        added: 'FIX.4.4',\n        Value: '22',\n        Sort: 21,\n        addedEP: 19,\n        Tag: 828,\n        SymbolicName: 'PrivatelyNegotiatedTrades',\n    },\n    {\n        Group: '',\n        Description: 'Substitution of Futures for Forwards',\n        added: 'FIX.4.4',\n        Value: '23',\n        Sort: 22,\n        addedEP: 19,\n        Tag: 828,\n        SymbolicName: 'SubstitutionOfFuturesForForwards',\n    },\n    {\n        Group: '',\n        Description: 'Non-standard settlement',\n        added: 'FIX.5.0',\n        Value: '48',\n        Sort: 48,\n        addedEP: 47,\n        Tag: 828,\n        SymbolicName: 'NonStandardSettlement',\n    },\n    {\n        Group: '',\n        Description: 'Derivative Related Transaction',\n        added: 'FIX.5.0',\n        Value: '49',\n        Sort: 49,\n        addedEP: 47,\n        Tag: 828,\n        SymbolicName: 'DerivativeRelatedTransaction',\n    },\n    {\n        Group: '',\n        Description: 'Portfolio Trade',\n        added: 'FIX.5.0',\n        Value: '50',\n        Sort: 50,\n        addedEP: 47,\n        Tag: 828,\n        SymbolicName: 'PortfolioTrade',\n    },\n    {\n        Group: '',\n        Description: 'Volume Weighted Average Trade',\n        added: 'FIX.5.0',\n        Value: '51',\n        Sort: 51,\n        addedEP: 47,\n        Tag: 828,\n        SymbolicName: 'VolumeWeightedAverageTrade',\n    },\n    {\n        Group: '',\n        Description: 'Exchange Granted Trade',\n        added: 'FIX.5.0',\n        Value: '52',\n        Sort: 52,\n        addedEP: 47,\n        Tag: 828,\n        SymbolicName: 'ExchangeGrantedTrade',\n    },\n    {\n        Group: '',\n        Description: 'Repurchase Agreement',\n        added: 'FIX.5.0',\n        Value: '53',\n        Sort: 53,\n        addedEP: 47,\n        Tag: 828,\n        SymbolicName: 'RepurchaseAgreement',\n    },\n    {\n        Group: '',\n        Description: 'OTC',\n        added: 'FIX.5.0',\n        Value: '54',\n        Sort: 54,\n        addedEP: 47,\n        Tag: 828,\n        SymbolicName: 'OTC',\n    },\n    {\n        Group: '',\n        Description: 'Exchange Basis Facility (EBF)',\n        added: 'FIX.5.0',\n        Value: '55',\n        Sort: 55,\n        addedEP: 55,\n        Tag: 828,\n        SymbolicName: 'ExchangeBasisFacility',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Error trade',\n        added: 'FIX.4.4',\n        Value: '24',\n        Sort: 24,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'ErrorTrade',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special cum dividend (CD)',\n        added: 'FIX.4.4',\n        Value: '25',\n        Sort: 25,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialCumDividend',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special ex dividend (XD)',\n        added: 'FIX.4.4',\n        Value: '26',\n        Sort: 26,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialExDividend',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special cum coupon (CC)',\n        added: 'FIX.4.4',\n        Value: '27',\n        Sort: 27,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialCumCoupon',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special ex coupon (XC)',\n        added: 'FIX.4.4',\n        Value: '28',\n        Sort: 28,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialExCoupon',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Cash settlement (CS)',\n        added: 'FIX.4.4',\n        Value: '29',\n        Sort: 29,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'CashSettlement',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special price (usually net- or all-in price) (SP)',\n        added: 'FIX.4.4',\n        Value: '30',\n        Sort: 30,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialPrice',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Guaranteed delivery (GD)',\n        added: 'FIX.4.4',\n        Value: '31',\n        Sort: 31,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'GuaranteedDelivery',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special cum rights (CR)',\n        added: 'FIX.4.4',\n        Value: '32',\n        Sort: 32,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialCumRights',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special ex rights (XR)',\n        added: 'FIX.4.4',\n        Value: '33',\n        Sort: 33,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialExRights',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special cum capital repayments (CP)',\n        added: 'FIX.4.4',\n        Value: '34',\n        Sort: 34,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialCumCapitalRepayments',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special ex capital repayments (XP)',\n        added: 'FIX.4.4',\n        Value: '35',\n        Sort: 35,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialExCapitalRepayments',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special cum bonus (CB)',\n        added: 'FIX.4.4',\n        Value: '36',\n        Sort: 36,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialCumBonus',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Special ex bonus (XB)',\n        added: 'FIX.4.4',\n        Value: '37',\n        Sort: 37,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'SpecialExBonus',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Block trade (same as large trade)',\n        added: 'FIX.4.4',\n        Value: '38',\n        Sort: 38,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'LargeTrade',\n    },\n];\n\nconst batch5: ISpecEnums[] = [\n    {\n        Group: 'MiFID Values',\n        Description: 'Worked principal trade (UK-specific)',\n        added: 'FIX.4.4',\n        Value: '39',\n        Sort: 39,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'WorkedPrincipalTrade',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Block Trades - after market',\n        added: 'FIX.4.4',\n        Value: '40',\n        Sort: 40,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'BlockTrades',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Name change',\n        added: 'FIX.4.4',\n        Value: '41',\n        Sort: 41,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'NameChange',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Portfolio transfer',\n        added: 'FIX.4.4',\n        Value: '42',\n        Sort: 42,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'PortfolioTransfer',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'Prorogation buy - Euronext Paris only. Is used to defer settlement under French SRD (deferred settlement system) . Trades must be reported as crosses at zero price',\n        added: 'FIX.4.4',\n        Value: '43',\n        Sort: 43,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'ProrogationBuy',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Prorogation sell - see prorogation buy',\n        added: 'FIX.4.4',\n        Value: '44',\n        Sort: 44,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'ProrogationSell',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Option exercise',\n        added: 'FIX.4.4',\n        Value: '45',\n        Sort: 45,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'OptionExercise',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Delta neutral transaction',\n        added: 'FIX.4.4',\n        Value: '46',\n        Sort: 46,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'DeltaNeutralTransaction',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Financing transaction (includes repo and stock lending)',\n        added: 'FIX.4.4',\n        Value: '47',\n        Sort: 47,\n        addedEP: 26,\n        Tag: 828,\n        SymbolicName: 'FinancingTransaction',\n    },\n    {\n        Group: '',\n        Description: 'CMTA',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: 4,\n        Tag: 829,\n        SymbolicName: 'CMTA',\n    },\n    {\n        Group: '',\n        Description: 'Internal transfer or adjustment',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: 4,\n        Tag: 829,\n        SymbolicName: 'InternalTransferOrAdjustment',\n    },\n    {\n        Group: '',\n        Description: 'External transfer or transfer of account',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: 4,\n        Tag: 829,\n        SymbolicName: 'ExternalTransferOrTransferOfAccount',\n    },\n    {\n        Group: '',\n        Description: 'Reject for submitting side',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: 4,\n        Tag: 829,\n        SymbolicName: 'RejectForSubmittingSide',\n    },\n    {\n        Group: '',\n        Description: 'Advisory for contra side',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        addedEP: 4,\n        Tag: 829,\n        SymbolicName: 'AdvisoryForContraSide',\n    },\n    {\n        Group: '',\n        Description: 'Offset due to an allocation',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        addedEP: 5,\n        Tag: 829,\n        SymbolicName: 'OffsetDueToAnAllocation',\n    },\n    {\n        Group: '',\n        Description: 'Onset due to an allocation',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: '6',\n        Sort: 7,\n        addedEP: 5,\n        Tag: 829,\n        SymbolicName: 'OnsetDueToAnAllocation',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Differential spread',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 8,\n        addedEP: 5,\n        Tag: 829,\n        SymbolicName: 'DifferentialSpread',\n    },\n    {\n        Group: '',\n        Description: 'Implied spread leg executed against an outright',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 9,\n        addedEP: 5,\n        Tag: 829,\n        SymbolicName: 'ImpliedSpreadLegExecutedAgainstAnOutright',\n    },\n    {\n        Group: '',\n        Description: 'Transaction from exercise',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 10,\n        addedEP: 5,\n        Tag: 829,\n        SymbolicName: 'TransactionFromExercise',\n    },\n    {\n        Group: '',\n        Description: 'Transaction from assignment',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 11,\n        addedEP: 5,\n        Tag: 829,\n        SymbolicName: 'TransactionFromAssignment',\n    },\n    {\n        Group: '',\n        Description: 'ACATS',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 12,\n        addedEP: 8,\n        Tag: 829,\n        SymbolicName: 'ACATS',\n    },\n    {\n        Group: '',\n        Description: 'Off Hours Trade',\n        added: 'FIX.5.0',\n        Value: '33',\n        Sort: 32,\n        addedEP: 61,\n        Tag: 829,\n        SymbolicName: 'OffHoursTrade',\n    },\n    {\n        Group: '',\n        Description: 'On Hours Trade',\n        added: 'FIX.5.0',\n        Value: '34',\n        Sort: 33,\n        addedEP: 61,\n        Tag: 829,\n        SymbolicName: 'OnHoursTrade',\n    },\n    {\n        Group: '',\n        Description: 'OTC Quote',\n        added: 'FIX.5.0',\n        Value: '35',\n        Sort: 34,\n        addedEP: 61,\n        Tag: 829,\n        SymbolicName: 'OTCQuote',\n    },\n    {\n        Group: '',\n        Description: 'Converted SWAP',\n        added: 'FIX.5.0',\n        Value: '36',\n        Sort: 36,\n        addedEP: -1,\n        Tag: 829,\n        SymbolicName: 'ConvertedSWAP',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'AI (Automated input facility disabled in response to an exchange request.)',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 13,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'AI',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'B (Transaction between two member firms where neither member firm is registered as a market maker in the security in question and neither is a designated fund manager. Also used by broker dealers when dealing with another broker which is not a member firm. Non-order book securities only.)',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 14,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'B',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'K (Transaction using block trade facility.)',\n        added: 'FIX.4.4',\n        Value: '16',\n        Sort: 15,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'K',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'LC (Correction submitted more than three days after publication of the original trade report.)',\n        added: 'FIX.4.4',\n        Value: '17',\n        Sort: 16,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'LC',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'M (Transaction, other than a transaction resulting from a stock swap or stock switch, between two market makers registered in that security including IDB or a public display system trades. Non-order book securities only.)',\n        added: 'FIX.4.4',\n        Value: '18',\n        Sort: 17,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'M',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'N (Non-protected portfolio transaction or a fully disclosed portfolio transaction)',\n        added: 'FIX.4.4',\n        Value: '19',\n        Sort: 18,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'N',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'NM ( i) transaction where Exchange has granted permission for non-publication\\nii)IDB is reporting as seller\\niii) submitting a transaction report to the Exchange, where the transaction report is not also a trade report.)',\n        added: 'FIX.4.4',\n        Value: '20',\n        Sort: 19,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'NM',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'NR (Non-risk transaction in a SEATS security other than an AIM security)',\n        added: 'FIX.4.4',\n        Value: '21',\n        Sort: 20,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'NR',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'P (Protected portfolio transaction or a worked principal agreement to effect a portfolio transaction which includes order book securities)',\n        added: 'FIX.4.4',\n        Value: '22',\n        Sort: 21,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'P',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'PA (Protected transaction notification)',\n        added: 'FIX.4.4',\n        Value: '23',\n        Sort: 22,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'PA',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'PC (Contra trade for transaction which took place on a previous day and which was automatically executed on the Exchange trading system)',\n        added: 'FIX.4.4',\n        Value: '24',\n        Sort: 23,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'PC',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'PN (Worked principal notification for a portfolio transaction which includes order book securities)',\n        added: 'FIX.4.4',\n        Value: '25',\n        Sort: 24,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'PN',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'R ( (i) riskless principal transaction between non-members where the buying and selling transactions are executed at different prices or on different terms (requires a trade report with trade type indicator R for each transaction)\\n(ii) market maker is reporting all the legs of a riskless principal transaction where the buying and selling transactions are executed at different prices (requires a trade report with trade type indicator R for each transaction)or\\n(iii) market maker is reporting the onward leg of a riskless principal transaction where the legs are executed at different prices, and another market maker has submitted a trade report using trade type indicator M for the first leg (this requires a single trade report with trade type indicator R).)',\n        added: 'FIX.4.4',\n        Value: '26',\n        Sort: 25,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'R',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'RO (Transaction which resulted from the exercise of a traditional option or a stock-settled covered warrant)',\n        added: 'FIX.4.4',\n        Value: '27',\n        Sort: 26,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'RO',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'RT (Risk transaction in a SEATS security, (excluding AIM security) reported by a market maker registered in that security)',\n        added: 'FIX.4.4',\n        Value: '28',\n        Sort: 27,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'RT',\n    },\n    {\n        Group: 'MiFID Values',\n        Description:\n            'SW (Transactions resulting from stock swap or a stock switch (one report is required for each line of stock))',\n        added: 'FIX.4.4',\n        Value: '29',\n        Sort: 28,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'SW',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'T (If reporting a single protected transaction)',\n        added: 'FIX.4.4',\n        Value: '30',\n        Sort: 29,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'T',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'WN (Worked principal notification for a single order book security)',\n        added: 'FIX.4.4',\n        Value: '31',\n        Sort: 30,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'WN',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'WT (Worked principal transaction (other than a portfolio transaction))',\n        added: 'FIX.4.4',\n        Value: '32',\n        Sort: 31,\n        addedEP: 26,\n        Tag: 829,\n        SymbolicName: 'WT',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Crossed Trade (X)',\n        added: 'FIX.5.0',\n        Value: '37',\n        Sort: 37,\n        addedEP: -1,\n        Tag: 829,\n        SymbolicName: 'CrossedTrade',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Interim Protected Trade (I)',\n        added: 'FIX.5.0',\n        Value: '38',\n        Sort: 38,\n        addedEP: -1,\n        Tag: 829,\n        SymbolicName: 'InterimProtectedTrade',\n    },\n    {\n        Group: 'MiFID Values',\n        Description: 'Large in Scale (L)',\n        added: 'FIX.5.0',\n        Value: '39',\n        Sort: 39,\n        addedEP: -1,\n        Tag: 829,\n        SymbolicName: 'LargeInScale',\n    },\n    {\n        Group: '',\n        Description: 'Floating (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 835,\n        SymbolicName: 'Floating',\n    },\n    {\n        Group: '',\n        Description: 'Fixed',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 835,\n        SymbolicName: 'Fixed',\n    },\n    {\n        Group: '',\n        Description: 'Price (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 836,\n        SymbolicName: 'Price',\n    },\n    {\n        Group: '',\n        Description: 'Basis Points',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 836,\n        SymbolicName: 'BasisPoints',\n    },\n    {\n        Group: '',\n        Description: 'Ticks',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 836,\n        SymbolicName: 'Ticks',\n    },\n    {\n        Group: '',\n        Description: 'Price Tier / Level',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 836,\n        SymbolicName: 'PriceTier',\n    },\n    {\n        Group: '',\n        Description: 'Or better (default) - price improvement allowed',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 837,\n        SymbolicName: 'OrBetter',\n    },\n    {\n        Group: '',\n        Description: 'Strict - limit is a strict limit',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 837,\n        SymbolicName: 'Strict',\n    },\n    {\n        Group: '',\n        Description:\n            'Or worse - for a buy the peg limit is a minimum and for a sell the peg limit is a maximum (for use for orders which have a price range)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 837,\n        SymbolicName: 'OrWorse',\n    },\n    {\n        Group: '',\n        Description:\n            'More aggressive - on a buy order round the price up to the nearest tick; on a sell order round down to the nearest tick',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 838,\n        SymbolicName: 'MoreAggressive',\n    },\n    {\n        Group: '',\n        Description:\n            'More passive - on a buy order round down to the nearest tick; on a sell order round up to the nearest tick',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 838,\n        SymbolicName: 'MorePassive',\n    },\n    {\n        Group: '',\n        Description: 'Local (Exchange, ECN, ATS)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 840,\n        SymbolicName: 'Local',\n    },\n    {\n        Group: '',\n        Description: 'National',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 840,\n        SymbolicName: 'National',\n    },\n    {\n        Group: '',\n        Description: 'Global',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 840,\n        SymbolicName: 'Global',\n    },\n    {\n        Group: '',\n        Description: 'National excluding local',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 840,\n        SymbolicName: 'NationalExcludingLocal',\n    },\n    {\n        Group: '',\n        Description: 'Floating (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 841,\n        SymbolicName: 'Floating',\n    },\n    {\n        Group: '',\n        Description: 'Fixed',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 841,\n        SymbolicName: 'Fixed',\n    },\n    {\n        Group: '',\n        Description: 'Price (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 842,\n        SymbolicName: 'Price',\n    },\n    {\n        Group: '',\n        Description: 'Basis Points',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 842,\n        SymbolicName: 'BasisPoints',\n    },\n    {\n        Group: '',\n        Description: 'Ticks',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 842,\n        SymbolicName: 'Ticks',\n    },\n    {\n        Group: '',\n        Description: 'Price Tier / Level',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 842,\n        SymbolicName: 'PriceTier',\n    },\n    {\n        Group: '',\n        Description: 'Or better (default) - price improvement allowed',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 843,\n        SymbolicName: 'OrBetter',\n    },\n    {\n        Group: '',\n        Description: 'Strict - limit is a strict limit',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 843,\n        SymbolicName: 'Strict',\n    },\n    {\n        Group: '',\n        Description:\n            'Or worse - for a buy the discretion price is a minimum and for a sell the discretion price is a maximum (for use for orders which have a price range)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 843,\n        SymbolicName: 'OrWorse',\n    },\n    {\n        Group: '',\n        Description:\n            'More aggressive - on a buy order round the price up to the nearest tick; on a sell round down to the nearest tick',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 844,\n        SymbolicName: 'MoreAggressive',\n    },\n    {\n        Group: '',\n        Description:\n            'More passive - on a buy order round down to the nearest tick; on a sell order round up to the nearest tick',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 844,\n        SymbolicName: 'MorePassive',\n    },\n    {\n        Group: '',\n        Description: 'Local (Exchange, ECN, ATS)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 846,\n        SymbolicName: 'Local',\n    },\n    {\n        Group: '',\n        Description: 'National',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 846,\n        SymbolicName: 'National',\n    },\n    {\n        Group: '',\n        Description: 'Global',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 846,\n        SymbolicName: 'Global',\n    },\n    {\n        Group: '',\n        Description: 'National excluding local',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 846,\n        SymbolicName: 'NationalExcludingLocal',\n    },\n    {\n        Group: '',\n        Description: 'VWAP',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 847,\n        SymbolicName: 'VWAP',\n    },\n    {\n        Group: '',\n        Description: 'Participate (i.e. aim to be x percent of the market volume)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 847,\n        SymbolicName: 'Participate',\n    },\n    {\n        Group: '',\n        Description: 'Mininize market impact',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 847,\n        SymbolicName: 'MininizeMarketImpact',\n    },\n    {\n        Group: '',\n        Description: 'Added Liquidity',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 851,\n        SymbolicName: 'AddedLiquidity',\n    },\n    {\n        Group: '',\n        Description: 'Removed Liquidity',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 851,\n        SymbolicName: 'RemovedLiquidity',\n    },\n    {\n        Group: '',\n        Description: 'Liquidity Routed Out',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 851,\n        SymbolicName: 'LiquidityRoutedOut',\n    },\n    {\n        Group: '',\n        Description: 'Auction',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 57,\n        Tag: 851,\n        SymbolicName: 'Auction',\n    },\n    {\n        Group: '',\n        Description: 'Do Not Report Trade',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 1,\n        Tag: 852,\n        SymbolicName: 'DoNotReportTrade',\n    },\n    {\n        Group: '',\n        Description: 'Report Trade',\n        added: 'FIX.4.4',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 852,\n        SymbolicName: 'ReportTrade',\n    },\n    {\n        Group: '',\n        Description: 'Dealer Sold Short',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 853,\n        SymbolicName: 'DealerSoldShort',\n    },\n    {\n        Group: '',\n        Description: 'Dealer Sold Short Exempt',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 853,\n        SymbolicName: 'DealerSoldShortExempt',\n    },\n    {\n        Group: '',\n        Description: 'Selling Customer Sold Short',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 853,\n        SymbolicName: 'SellingCustomerSoldShort',\n    },\n    {\n        Group: '',\n        Description: 'Selling Customer Sold Short Exempt',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 853,\n        SymbolicName: 'SellingCustomerSoldShortExempt',\n    },\n    {\n        Group: '',\n        Description: 'Qualified Service Representative (QSR) or Automatic Give-up (AGU) Contra Side Sold Short',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 853,\n        SymbolicName: 'QualifiedServiceRepresentative',\n    },\n    {\n        Group: '',\n        Description: 'QSR or AGU Contra Side Sold Short Exempt',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 853,\n        SymbolicName: 'QSROrAGUContraSideSoldShortExempt',\n    },\n    {\n        Group: '',\n        Description: 'Units (shares, par, currency)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 854,\n        SymbolicName: 'Units',\n    },\n    {\n        Group: '',\n        Description: 'Contracts (if used - must specify ContractMultiplier (tag 231))',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 854,\n        SymbolicName: 'Contracts',\n    },\n    {\n        Group: '',\n        Description:\n            'Units of Measure per Time Unit (if used - must specify UnitofMeasure (tag 996) and TimeUnit (tag 997))',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: 5,\n        Tag: 854,\n        SymbolicName: 'UnitsOfMeasurePerTimeUnit',\n    },\n    {\n        Group: '',\n        Description: 'Submit',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 856,\n        SymbolicName: 'Submit',\n    },\n    {\n        Group: '',\n        Description: 'Alleged',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 856,\n        SymbolicName: 'Alleged',\n    },\n    {\n        Group: '',\n        Description: 'Accept',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 856,\n        SymbolicName: 'Accept',\n    },\n    {\n        Group: '',\n        Description: 'Decline',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 856,\n        SymbolicName: 'Decline',\n    },\n    {\n        Group: '',\n        Description: 'Addendum',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 856,\n        SymbolicName: 'Addendum',\n    },\n    {\n        Group: '',\n        Description: 'No/Was',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 856,\n        SymbolicName: 'No',\n    },\n    {\n        Group: '',\n        Description: 'Trade Report Cancel',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 7,\n        Tag: 856,\n        SymbolicName: 'TradeReportCancel',\n    },\n    {\n        Group: '',\n        Description: '(Locked-In) Trade Break',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 8,\n        Tag: 856,\n        SymbolicName: 'LockedIn',\n    },\n    {\n        Group: '',\n        Description: 'Defaulted',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 9,\n        addedEP: 4,\n        Tag: 856,\n        SymbolicName: 'Defaulted',\n    },\n    {\n        Group: '',\n        Description: 'Invalid CMTA',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 10,\n        addedEP: 8,\n        Tag: 856,\n        SymbolicName: 'InvalidCMTA',\n    },\n    {\n        Group: '',\n        Description: 'Pended',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 11,\n        addedEP: 23,\n        Tag: 856,\n        SymbolicName: 'Pended',\n    },\n    {\n        Group: '',\n        Description: 'Alleged New',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 12,\n        addedEP: 23,\n        Tag: 856,\n        SymbolicName: 'AllegedNew',\n    },\n    {\n        Group: '',\n        Description: 'Alleged Addendum',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 13,\n        addedEP: 23,\n        Tag: 856,\n        SymbolicName: 'AllegedAddendum',\n    },\n    {\n        Group: '',\n        Description: 'Alleged No/Was',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 14,\n        addedEP: 23,\n        Tag: 856,\n        SymbolicName: 'AllegedNo',\n    },\n    {\n        Group: '',\n        Description: 'Alleged Trade Report Cancel',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 15,\n        addedEP: 23,\n        Tag: 856,\n        SymbolicName: 'AllegedTradeReportCancel',\n    },\n    {\n        Group: '',\n        Description: 'Alleged (Locked-In) Trade Break',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 16,\n        addedEP: 23,\n        Tag: 856,\n        SymbolicName: 'AllegedTradeBreak',\n    },\n    {\n        Group: '',\n        Description: 'Not Specified',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 857,\n        SymbolicName: 'NotSpecified',\n    },\n    {\n        Group: '',\n        Description: 'Explicit List Provided',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 857,\n        SymbolicName: 'ExplicitListProvided',\n    },\n    {\n        Group: '',\n        Description: 'Put',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 0,\n        Tag: 865,\n        SymbolicName: 'Put',\n    },\n    {\n        Group: '',\n        Description: 'Call',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 1,\n        Tag: 865,\n        SymbolicName: 'Call',\n    },\n    {\n        Group: '',\n        Description: 'Tender',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 2,\n        Tag: 865,\n        SymbolicName: 'Tender',\n    },\n    {\n        Group: '',\n        Description: 'Sinking Fund Call',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 3,\n        Tag: 865,\n        SymbolicName: 'SinkingFundCall',\n    },\n    {\n        Group: '',\n        Description: 'Activation',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 4,\n        addedEP: 8,\n        Tag: 865,\n        SymbolicName: 'Activation',\n    },\n    {\n        Group: '',\n        Description: 'Inactiviation',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 5,\n        addedEP: 8,\n        Tag: 865,\n        SymbolicName: 'Inactiviation',\n    },\n    {\n        Group: '',\n        Description: 'Last Eligible Trade Date',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 6,\n        addedEP: 42,\n        Tag: 865,\n        SymbolicName: 'LastEligibleTradeDate',\n    },\n    {\n        Group: '',\n        Description: 'Swap Start Date',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 7,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'SwapStartDate',\n    },\n    {\n        Group: '',\n        Description: 'Swap End Date',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 8,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'SwapEndDate',\n    },\n    {\n        Group: '',\n        Description: 'Swap Roll Date',\n        added: 'FIX.5.0',\n        Value: '10',\n        Sort: 9,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'SwapRollDate',\n    },\n    {\n        Group: '',\n        Description: 'Swap Next Start Date',\n        added: 'FIX.5.0',\n        Value: '11',\n        Sort: 10,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'SwapNextStartDate',\n    },\n    {\n        Group: '',\n        Description: 'Swap Next Roll Date',\n        added: 'FIX.5.0',\n        Value: '12',\n        Sort: 11,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'SwapNextRollDate',\n    },\n    {\n        Group: '',\n        Description: 'First Delivery Date',\n        added: 'FIX.5.0',\n        Value: '13',\n        Sort: 12,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'FirstDeliveryDate',\n    },\n    {\n        Group: '',\n        Description: 'Last Delivery Date',\n        added: 'FIX.5.0',\n        Value: '14',\n        Sort: 13,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'LastDeliveryDate',\n    },\n    {\n        Group: '',\n        Description: 'Initial Inventory Due Date',\n        added: 'FIX.5.0',\n        Value: '15',\n        Sort: 14,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'InitialInventoryDueDate',\n    },\n    {\n        Group: '',\n        Description: 'Final Inventory Due Date',\n        added: 'FIX.5.0',\n        Value: '16',\n        Sort: 15,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'FinalInventoryDueDate',\n    },\n    {\n        Group: '',\n        Description: 'First Intent Date',\n        added: 'FIX.5.0',\n        Value: '17',\n        Sort: 16,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'FirstIntentDate',\n    },\n    {\n        Group: '',\n        Description: 'Last Intent Date',\n        added: 'FIX.5.0',\n        Value: '18',\n        Sort: 17,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'LastIntentDate',\n    },\n    {\n        Group: '',\n        Description: 'Position Removal Date',\n        added: 'FIX.5.0',\n        Value: '19',\n        Sort: 18,\n        addedEP: 52,\n        Tag: 865,\n        SymbolicName: 'PositionRemovalDate',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 865,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Flat (securities pay interest on a current basis but are traded without interest)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 0,\n        Tag: 871,\n        SymbolicName: 'Flat',\n    },\n    {\n        Group: '',\n        Description: 'Zero coupon',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 1,\n        Tag: 871,\n        SymbolicName: 'ZeroCoupon',\n    },\n    {\n        Group: '',\n        Description: 'Interest bearing (for Euro commercial paper when not issued at discount)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 2,\n        Tag: 871,\n        SymbolicName: 'InterestBearing',\n    },\n    {\n        Group: '',\n        Description: 'No periodic payments',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 3,\n        Tag: 871,\n        SymbolicName: 'NoPeriodicPayments',\n    },\n    {\n        Group: '',\n        Description: 'Variable rate',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 4,\n        Tag: 871,\n        SymbolicName: 'VariableRate',\n    },\n    {\n        Group: '',\n        Description: 'Less fee for put',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 5,\n        Tag: 871,\n        SymbolicName: 'LessFeeForPut',\n    },\n    {\n        Group: '',\n        Description: 'Stepped coupon',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 6,\n        Tag: 871,\n        SymbolicName: 'SteppedCoupon',\n    },\n    {\n        Group: '',\n        Description: 'Coupon period (if not semi-annual). Supply redemption date in the InstrAttribValue (872) field.',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 7,\n        Tag: 871,\n        SymbolicName: 'CouponPeriod',\n    },\n    {\n        Group: '',\n        Description: 'When [and if] issued',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 8,\n        Tag: 871,\n        SymbolicName: 'When',\n    },\n    {\n        Group: '',\n        Description: 'Original issue discount',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 9,\n        Tag: 871,\n        SymbolicName: 'OriginalIssueDiscount',\n    },\n    {\n        Group: '',\n        Description: 'Callable, puttable',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 10,\n        Tag: 871,\n        SymbolicName: 'Callable',\n    },\n    {\n        Group: '',\n        Description: 'Escrowed to Maturity',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 11,\n        Tag: 871,\n        SymbolicName: 'EscrowedToMaturity',\n    },\n    {\n        Group: '',\n        Description:\n            'Escrowed to redemption date - callable. Supply redemption date in the InstrAttribValue (872) field',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 12,\n        Tag: 871,\n        SymbolicName: 'EscrowedToRedemptionDate',\n    },\n    {\n        Group: '',\n        Description: 'Pre-refunded',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 13,\n        Tag: 871,\n        SymbolicName: 'PreRefunded',\n    },\n    {\n        Group: '',\n        Description: 'In default',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 14,\n        Tag: 871,\n        SymbolicName: 'InDefault',\n    },\n    {\n        Group: '',\n        Description: 'Unrated',\n        added: 'FIX.4.4',\n        Value: '16',\n        Sort: 15,\n        Tag: 871,\n        SymbolicName: 'Unrated',\n    },\n    {\n        Group: '',\n        Description: 'Taxable',\n        added: 'FIX.4.4',\n        Value: '17',\n        Sort: 16,\n        Tag: 871,\n        SymbolicName: 'Taxable',\n    },\n    {\n        Group: '',\n        Description: 'Indexed',\n        added: 'FIX.4.4',\n        Value: '18',\n        Sort: 17,\n        Tag: 871,\n        SymbolicName: 'Indexed',\n    },\n    {\n        Group: '',\n        Description: 'Subject To Alternative Minimum Tax',\n        added: 'FIX.4.4',\n        Value: '19',\n        Sort: 18,\n        Tag: 871,\n        SymbolicName: 'SubjectToAlternativeMinimumTax',\n    },\n    {\n        Group: '',\n        Description: 'Original issue discount price. Supply price in the InstrAttribValue (872) field',\n        added: 'FIX.4.4',\n        Value: '20',\n        Sort: 19,\n        Tag: 871,\n        SymbolicName: 'OriginalIssueDiscountPrice',\n    },\n    {\n        Group: '',\n        Description: 'Callable below maturity value',\n        added: 'FIX.4.4',\n        Value: '21',\n        Sort: 20,\n        Tag: 871,\n        SymbolicName: 'CallableBelowMaturityValue',\n    },\n    {\n        Group: '',\n        Description: 'Callable without notice by mail to holder unless registered',\n        added: 'FIX.4.4',\n        Value: '22',\n        Sort: 21,\n        Tag: 871,\n        SymbolicName: 'CallableWithoutNotice',\n    },\n    {\n        Group: '',\n        Description: 'Price tick rules for security.',\n        added: 'FIX.5.0',\n        Value: '23',\n        Sort: 22,\n        addedEP: 42,\n        Tag: 871,\n        SymbolicName: 'PriceTickRulesForSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Trade type eligibility details for security.',\n        added: 'FIX.5.0',\n        Value: '24',\n        Sort: 23,\n        addedEP: 42,\n        Tag: 871,\n        SymbolicName: 'TradeTypeEligibilityDetailsForSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Instrument Denominator',\n        added: 'FIX.5.0',\n        Value: '25',\n        Sort: 26,\n        addedEP: 52,\n        Tag: 871,\n        SymbolicName: 'InstrumentDenominator',\n    },\n    {\n        Group: '',\n        Description: 'Instrument Numerator',\n        added: 'FIX.5.0',\n        Value: '26',\n        Sort: 27,\n        addedEP: 52,\n        Tag: 871,\n        SymbolicName: 'InstrumentNumerator',\n    },\n    {\n        Group: '',\n        Description: 'Instrument Price Precision',\n        added: 'FIX.5.0',\n        Value: '27',\n        Sort: 28,\n        addedEP: 52,\n        Tag: 871,\n        SymbolicName: 'InstrumentPricePrecision',\n    },\n    {\n        Group: '',\n        Description: 'Instrument Strike Price',\n        added: 'FIX.5.0',\n        Value: '28',\n        Sort: 29,\n        addedEP: 52,\n        Tag: 871,\n        SymbolicName: 'InstrumentStrikePrice',\n    },\n    {\n        Group: '',\n        Description: 'Tradeable Indicator',\n        added: 'FIX.5.0',\n        Value: '29',\n        Sort: 30,\n        addedEP: 52,\n        Tag: 871,\n        SymbolicName: 'TradeableIndicator',\n    },\n    {\n        Group: '',\n        Description: 'Text. Supply the text of the attribute or disclaimer in the InstrAttribValue (872) field.',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 871,\n        SymbolicName: 'Text',\n    },\n    {\n        Group: '',\n        Description: '3(a)(3)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 875,\n        SymbolicName: 'Program3a3',\n    },\n    {\n        Group: '',\n        Description: '4(2)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 875,\n        SymbolicName: 'Program42',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 875,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Absolute',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 891,\n        SymbolicName: 'Absolute',\n    },\n    {\n        Group: '',\n        Description: 'Per Unit',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 891,\n        SymbolicName: 'PerUnit',\n    },\n    {\n        Group: '',\n        Description: 'Percentage',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 891,\n        SymbolicName: 'Percentage',\n    },\n    {\n        Group: '',\n        Description: 'Not Last Message',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 1,\n        Tag: 893,\n        SymbolicName: 'NotLastMessage',\n    },\n    {\n        Group: '',\n        Description: 'Last Message',\n        added: 'FIX.4.4',\n        Value: 'Y',\n        Sort: 2,\n        Tag: 893,\n        SymbolicName: 'LastMessage',\n    },\n    {\n        Group: '',\n        Description: 'Initial',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 895,\n        SymbolicName: 'Initial',\n    },\n    {\n        Group: '',\n        Description: 'Scheduled',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 895,\n        SymbolicName: 'Scheduled',\n    },\n    {\n        Group: '',\n        Description: 'Time Warning',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 895,\n        SymbolicName: 'TimeWarning',\n    },\n    {\n        Group: '',\n        Description: 'Margin Deficiency',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 895,\n        SymbolicName: 'MarginDeficiency',\n    },\n    {\n        Group: '',\n        Description: 'Margin Excess',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 895,\n        SymbolicName: 'MarginExcess',\n    },\n    {\n        Group: '',\n        Description: 'Forward Collateral Demand',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 895,\n        SymbolicName: 'ForwardCollateralDemand',\n    },\n    {\n        Group: '',\n        Description: 'Event of default',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 7,\n        Tag: 895,\n        SymbolicName: 'EventOfDefault',\n    },\n    {\n        Group: '',\n        Description: 'Adverse tax event',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 8,\n        Tag: 895,\n        SymbolicName: 'AdverseTaxEvent',\n    },\n    {\n        Group: '',\n        Description: 'Trade Date',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 896,\n        SymbolicName: 'TradeDate',\n    },\n    {\n        Group: '',\n        Description: 'GC Instrument',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 896,\n        SymbolicName: 'GCInstrument',\n    },\n    {\n        Group: '',\n        Description: 'Collateral Instrument',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 896,\n        SymbolicName: 'CollateralInstrument',\n    },\n    {\n        Group: '',\n        Description: 'Substitution Eligible',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 896,\n        SymbolicName: 'SubstitutionEligible',\n    },\n    {\n        Group: '',\n        Description: 'Not Assigned',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 896,\n        SymbolicName: 'NotAssigned',\n    },\n    {\n        Group: '',\n        Description: 'Partially Assigned',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 896,\n        SymbolicName: 'PartiallyAssigned',\n    },\n    {\n        Group: '',\n        Description: 'Fully Assigned',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 7,\n        Tag: 896,\n        SymbolicName: 'FullyAssigned',\n    },\n    {\n        Group: '',\n        Description: 'Outstanding Trades (Today < end date)',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 8,\n        Tag: 896,\n        SymbolicName: 'OutstandingTrades',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 903,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 903,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 903,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Release',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 903,\n        SymbolicName: 'Release',\n    },\n    {\n        Group: '',\n        Description: 'Reverse',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 903,\n        SymbolicName: 'Reverse',\n    },\n    {\n        Group: '',\n        Description: 'Received',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 905,\n        SymbolicName: 'Received',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 905,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Declined',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 905,\n        SymbolicName: 'Declined',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 905,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Unknown deal (order / trade)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 906,\n        SymbolicName: 'UnknownDeal',\n    },\n    {\n        Group: '',\n        Description: 'Unknown or invalid instrument',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 906,\n        SymbolicName: 'UnknownOrInvalidInstrument',\n    },\n    {\n        Group: '',\n        Description: 'Unauthorized transaction',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 906,\n        SymbolicName: 'UnauthorizedTransaction',\n    },\n    {\n        Group: '',\n        Description: 'Insufficient collateral',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 906,\n        SymbolicName: 'InsufficientCollateral',\n    },\n    {\n        Group: '',\n        Description: 'Invalid type of collateral',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 906,\n        SymbolicName: 'InvalidTypeOfCollateral',\n    },\n    {\n        Group: '',\n        Description: 'Excessive substitution',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 906,\n        SymbolicName: 'ExcessiveSubstitution',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 906,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Unassigned',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 910,\n        SymbolicName: 'Unassigned',\n    },\n    {\n        Group: '',\n        Description: 'Partially Assigned',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 910,\n        SymbolicName: 'PartiallyAssigned',\n    },\n    {\n        Group: '',\n        Description: 'Assignment Proposed',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 910,\n        SymbolicName: 'AssignmentProposed',\n    },\n    {\n        Group: '',\n        Description: 'Assigned (Accepted)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 910,\n        SymbolicName: 'Assigned',\n    },\n    {\n        Group: '',\n        Description: 'Challenged',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 910,\n        SymbolicName: 'Challenged',\n    },\n    {\n        Group: '',\n        Description: 'Not last message',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 912,\n        SymbolicName: 'NotLastMessage',\n    },\n    {\n        Group: '',\n        Description: 'Last message',\n        added: 'FIX.4.4',\n        Value: 'Y',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 912,\n        SymbolicName: 'LastMessage',\n    },\n    {\n        Group: '',\n        Description: '\"Versus Payment\": Deliver (if sell) or Receive (if buy) vs. (against) Payment',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 919,\n        SymbolicName: 'VersusPayment',\n    },\n    {\n        Group: '',\n        Description: '\"Free\": Deliver (if sell) or Receive (if buy) Free',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 919,\n        SymbolicName: 'Free',\n    },\n    {\n        Group: '',\n        Description: 'Tri-Party',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 919,\n        SymbolicName: 'TriParty',\n    },\n    {\n        Group: '',\n        Description: 'Hold In Custody',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 919,\n        SymbolicName: 'HoldInCustody',\n    },\n    {\n        Group: '',\n        Description: 'Log On User',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 924,\n        SymbolicName: 'LogOnUser',\n    },\n    {\n        Group: '',\n        Description: 'Log Off User',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 924,\n        SymbolicName: 'LogOffUser',\n    },\n    {\n        Group: '',\n        Description: 'Change Password For User',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 924,\n        SymbolicName: 'ChangePasswordForUser',\n    },\n    {\n        Group: '',\n        Description: 'Request Individual User Status',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 924,\n        SymbolicName: 'RequestIndividualUserStatus',\n    },\n    {\n        Group: '',\n        Description: 'Logged In',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 926,\n        SymbolicName: 'LoggedIn',\n    },\n    {\n        Group: '',\n        Description: 'Not Logged In',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 926,\n        SymbolicName: 'NotLoggedIn',\n    },\n    {\n        Group: '',\n        Description: 'User Not Recognised',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 926,\n        SymbolicName: 'UserNotRecognised',\n    },\n    {\n        Group: '',\n        Description: 'Password Incorrect',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 926,\n        SymbolicName: 'PasswordIncorrect',\n    },\n    {\n        Group: '',\n        Description: 'Password Changed',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        Tag: 926,\n        SymbolicName: 'PasswordChanged',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        Tag: 926,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Forced user logout by Exchange',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 7,\n        addedEP: 56,\n        Tag: 926,\n        SymbolicName: 'ForcedUserLogoutByExchange',\n    },\n    {\n        Group: '',\n        Description: 'Session shutdown warning',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 8,\n        addedEP: 56,\n        Tag: 926,\n        SymbolicName: 'SessionShutdownWarning',\n    },\n    {\n        Group: '',\n        Description: 'Connected',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 928,\n        SymbolicName: 'Connected',\n    },\n    {\n        Group: '',\n        Description: 'Not Connected - down expected up',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 928,\n        SymbolicName: 'NotConnectedUnexpected',\n    },\n    {\n        Group: '',\n        Description: 'Not Connected - down expected down',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 928,\n        SymbolicName: 'NotConnectedExpected',\n    },\n    {\n        Group: '',\n        Description: 'In Process',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        Tag: 928,\n        SymbolicName: 'InProcess',\n    },\n    {\n        Group: '',\n        Description: 'Snapshot',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 935,\n        SymbolicName: 'Snapshot',\n    },\n    {\n        Group: '',\n        Description: 'Subscribe',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 935,\n        SymbolicName: 'Subscribe',\n    },\n    {\n        Group: '',\n        Description: 'Stop Subscribing',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 3,\n        Tag: 935,\n        SymbolicName: 'StopSubscribing',\n    },\n    {\n        Group: '',\n        Description: \"Level of Detail, then NoCompID's becomes required\",\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 4,\n        Tag: 935,\n        SymbolicName: 'LevelOfDetail',\n    },\n    {\n        Group: '',\n        Description: 'Full',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 937,\n        SymbolicName: 'Full',\n    },\n    {\n        Group: '',\n        Description: 'Incremental Update',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 937,\n        SymbolicName: 'IncrementalUpdate',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 939,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 939,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Accepted with errors',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: 13,\n        Tag: 939,\n        SymbolicName: 'AcceptedWithErrors',\n    },\n    {\n        Group: '',\n        Description: 'Received',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        Tag: 940,\n        SymbolicName: 'Received',\n    },\n    {\n        Group: '',\n        Description: 'Confirm rejected, i.e. not affirmed',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        Tag: 940,\n        SymbolicName: 'ConfirmRejected',\n    },\n    {\n        Group: '',\n        Description: 'Affirmed',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        Tag: 940,\n        SymbolicName: 'Affirmed',\n    },\n    {\n        Group: '',\n        Description: 'Retain',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 944,\n        SymbolicName: 'Retain',\n    },\n    {\n        Group: '',\n        Description: 'Add',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 944,\n        SymbolicName: 'Add',\n    },\n    {\n        Group: '',\n        Description: 'Remove',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 944,\n        SymbolicName: 'Remove',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 945,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Accepted With Warnings',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 945,\n        SymbolicName: 'AcceptedWithWarnings',\n    },\n    {\n        Group: '',\n        Description: 'Completed',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 945,\n        SymbolicName: 'Completed',\n    },\n    {\n        Group: '',\n        Description: 'Completed With Warnings',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 945,\n        SymbolicName: 'CompletedWithWarnings',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 945,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Successful (default)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        Tag: 946,\n        SymbolicName: 'Successful',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown instrument',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        Tag: 946,\n        SymbolicName: 'InvalidOrUnknownInstrument',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown collateral type',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        Tag: 946,\n        SymbolicName: 'InvalidOrUnknownCollateralType',\n    },\n    {\n        Group: '',\n        Description: 'Invalid Parties',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        Tag: 946,\n        SymbolicName: 'InvalidParties',\n    },\n    {\n        Group: '',\n        Description: 'Invalid Transport Type requested',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        Tag: 946,\n        SymbolicName: 'InvalidTransportTypeRequested',\n    },\n    {\n        Group: '',\n        Description: 'Invalid Destination requested',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 6,\n        Tag: 946,\n        SymbolicName: 'InvalidDestinationRequested',\n    },\n    {\n        Group: '',\n        Description: 'No collateral found for the trade specified',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 7,\n        Tag: 946,\n        SymbolicName: 'NoCollateralFoundForTheTradeSpecified',\n    },\n    {\n        Group: '',\n        Description: 'No collateral found for the order specified',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 8,\n        Tag: 946,\n        SymbolicName: 'NoCollateralFoundForTheOrderSpecified',\n    },\n    {\n        Group: '',\n        Description: 'Collateral inquiry type not supported',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 9,\n        Tag: 946,\n        SymbolicName: 'CollateralInquiryTypeNotSupported',\n    },\n    {\n        Group: '',\n        Description: 'Unauthorized for collateral inquiry',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 10,\n        Tag: 946,\n        SymbolicName: 'UnauthorizedForCollateralInquiry',\n    },\n    {\n        Group: '',\n        Description: 'Other (further information in Text (58) field)',\n        added: 'FIX.4.4',\n        Value: '99',\n        Sort: 99,\n        Tag: 946,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Int',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Int',\n    },\n    {\n        Group: '',\n        Description: 'Length',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Length',\n    },\n    {\n        Group: '',\n        Description: 'NumInGroup',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'NumInGroup',\n    },\n    {\n        Group: '',\n        Description: 'SeqNum',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'SeqNum',\n    },\n    {\n        Group: '',\n        Description: 'TagNum',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'TagNum',\n    },\n    {\n        Group: '',\n        Description: 'float',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: '6',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Float',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Qty',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 7,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Qty',\n    },\n    {\n        Group: '',\n        Description: 'Price',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Price',\n    },\n    {\n        Group: '',\n        Description: 'PriceOffset',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 9,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'PriceOffset',\n    },\n    {\n        Group: '',\n        Description: 'Amt',\n        added: 'FIX.4.4',\n        Value: '10',\n        Sort: 10,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Amt',\n    },\n    {\n        Group: '',\n        Description: 'Percentage',\n        added: 'FIX.4.4',\n        Value: '11',\n        Sort: 11,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Percentage',\n    },\n    {\n        Group: '',\n        Description: 'Char',\n        added: 'FIX.4.4',\n        Value: '12',\n        Sort: 12,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Char',\n    },\n    {\n        Group: '',\n        Description: 'Boolean',\n        added: 'FIX.4.4',\n        Value: '13',\n        Sort: 13,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Boolean',\n    },\n    {\n        Group: '',\n        Description: 'String',\n        added: 'FIX.4.4',\n        Value: '14',\n        Sort: 14,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'String',\n    },\n    {\n        Group: '',\n        Description: 'MultipleCharValue',\n        added: 'FIX.4.4',\n        Value: '15',\n        Sort: 15,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'MultipleCharValue',\n    },\n    {\n        Group: '',\n        Description: 'Currency',\n        added: 'FIX.4.4',\n        Value: '16',\n        Sort: 16,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Currency',\n    },\n    {\n        Group: '',\n        Description: 'Exchange',\n        added: 'FIX.4.4',\n        Value: '17',\n        Sort: 17,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Exchange',\n    },\n    {\n        Group: '',\n        Description: 'MonthYear',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: '18',\n        Sort: 18,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'MonthYear',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'UTCTimestamp',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: '19',\n        Sort: 19,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'UTCTimestamp',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'UTCTimeOnly',\n        added: 'FIX.4.4',\n        Value: '20',\n        Sort: 20,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'UTCTimeOnly',\n    },\n    {\n        Group: '',\n        Description: 'LocalMktDate',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: '21',\n        Sort: 21,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'LocalMktDate',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'UTCDateOnly',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: '22',\n        Sort: 22,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'UTCDateOnly',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'data',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: '23',\n        Sort: 23,\n        addedEP: -1,\n        Tag: 959,\n        SymbolicName: 'Data',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'MultipleStringValue',\n        added: 'FIX.4.4',\n        Value: '24',\n        Sort: 24,\n        addedEP: 34,\n        Tag: 959,\n        SymbolicName: 'MultipleStringValue',\n    },\n    {\n        Group: '',\n        Description: 'Active',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 965,\n        SymbolicName: 'Active',\n    },\n    {\n        Group: '',\n        Description: 'Inactive',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 965,\n        SymbolicName: 'Inactive',\n    },\n    {\n        Group: '',\n        Description: 'FIXED',\n        added: 'FIX.4.4',\n        Value: 'FIXED',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 974,\n        SymbolicName: 'FIXED',\n    },\n    {\n        Group: '',\n        Description: 'DIFF',\n        added: 'FIX.4.4',\n        Value: 'DIFF',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 974,\n        SymbolicName: 'DIFF',\n    },\n    {\n        Group: '',\n        Description: 'T+1',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 975,\n        SymbolicName: 'TPlus1',\n    },\n    {\n        Group: '',\n        Description: 'T+3',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 975,\n        SymbolicName: 'TPlus3',\n    },\n    {\n        Group: '',\n        Description: 'T+4',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 975,\n        SymbolicName: 'TPlus4',\n    },\n    {\n        Group: '',\n        Description: 'Add',\n        added: 'FIX.4.4',\n        Value: 'A',\n        Sort: 1,\n        addedEP: 8,\n        Tag: 980,\n        SymbolicName: 'Add',\n    },\n    {\n        Group: '',\n        Description: 'Delete',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 2,\n        addedEP: 8,\n        Tag: 980,\n        SymbolicName: 'Delete',\n    },\n    {\n        Group: '',\n        Description: 'Modify',\n        added: 'FIX.4.4',\n        Value: 'M',\n        Sort: 3,\n        addedEP: 8,\n        Tag: 980,\n        SymbolicName: 'Modify',\n    },\n    {\n        Group: '',\n        Description: 'Auto Exercise',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 982,\n        SymbolicName: 'AutoExercise',\n    },\n    {\n        Group: '',\n        Description: 'Non Auto Exercise',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 982,\n        SymbolicName: 'NonAutoExercise',\n    },\n    {\n        Group: '',\n        Description: 'Final Will Be Exercised',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 982,\n        SymbolicName: 'FinalWillBeExercised',\n    },\n    {\n        Group: '',\n        Description: 'Contrary Intention',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 982,\n        SymbolicName: 'ContraryIntention',\n    },\n    {\n        Group: '',\n        Description: 'Difference',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 982,\n        SymbolicName: 'Difference',\n    },\n    {\n        Group: '',\n        Description: 'Sub Allocate',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 992,\n        SymbolicName: 'SubAllocate',\n    },\n    {\n        Group: '',\n        Description: 'Third Party Allocation',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 992,\n        SymbolicName: 'ThirdPartyAllocation',\n    },\n    {\n        Group: 'Fixed Magnitude UOM',\n        Description: 'Billion cubic feet',\n        added: 'FIX.4.4',\n        Value: 'Bcf',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'BillionCubicFeet',\n    },\n    {\n        Group: 'Fixed Magnitude UOM',\n        Description: 'Million Barrels',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0SP1',\n        Value: 'MMbbl',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'MillionBarrels',\n    },\n    {\n        Group: 'Fixed Magnitude UOM',\n        Description: 'One Million BTU',\n        added: 'FIX.4.4',\n        Value: 'MMBtu',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'OneMillionBTU',\n    },\n    {\n        Group: 'Fixed Magnitude UOM',\n        Description: 'Megawatt hours',\n        added: 'FIX.4.4',\n        Value: 'MWh',\n        Sort: 7,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'MegawattHours',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'Barrels',\n        added: 'FIX.4.4',\n        Value: 'Bbl',\n        Sort: 0,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'Barrels',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'Bushels',\n        added: 'FIX.4.4',\n        Value: 'Bu',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'Bushels',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'pounds',\n        added: 'FIX.4.4',\n        Value: 'lbs',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'Pounds',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'Gallons',\n        added: 'FIX.4.4',\n        Value: 'Gal',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'Gallons',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'Troy Ounces',\n        added: 'FIX.4.4',\n        Value: 'oz_tr',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'TroyOunces',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'Metric Tons (aka Tonne)',\n        added: 'FIX.4.4',\n        Value: 't',\n        Sort: 9,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'MetricTons',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'Tons (US)',\n        added: 'FIX.4.4',\n        Value: 'tn',\n        Sort: 10,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'Tons',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'US Dollars',\n        added: 'FIX.4.4',\n        Value: 'USD',\n        Sort: 11,\n        addedEP: -1,\n        Tag: 996,\n        SymbolicName: 'USDollars',\n    },\n    {\n        Group: '',\n        Description: 'Hour',\n        added: 'FIX.4.4',\n        Value: 'H',\n        Sort: 0,\n        addedEP: -1,\n        Tag: 997,\n        SymbolicName: 'Hour',\n    },\n    {\n        Group: '',\n        Description: 'Minute',\n        added: 'FIX.4.4',\n        Value: 'Min',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 997,\n        SymbolicName: 'Minute',\n    },\n    {\n        Group: '',\n        Description: 'Second',\n        added: 'FIX.4.4',\n        Value: 'S',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 997,\n        SymbolicName: 'Second',\n    },\n    {\n        Group: '',\n        Description: 'Day',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 997,\n        SymbolicName: 'Day',\n    },\n    {\n        Group: '',\n        Description: 'Week',\n        added: 'FIX.4.4',\n        Value: 'Wk',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 997,\n        SymbolicName: 'Week',\n    },\n    {\n        Group: '',\n        Description: 'Month',\n        added: 'FIX.4.4',\n        Value: 'Mo',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 997,\n        SymbolicName: 'Month',\n    },\n    {\n        Group: '',\n        Description: 'Year',\n        added: 'FIX.4.4',\n        Value: 'Yr',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 997,\n        SymbolicName: 'Year',\n    },\n    {\n        Group: '',\n        Description: 'Automatic',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1002,\n        SymbolicName: 'Automatic',\n    },\n    {\n        Group: '',\n        Description: 'Guarantor',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1002,\n        SymbolicName: 'Guarantor',\n    },\n    {\n        Group: '',\n        Description: 'Manual',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1002,\n        SymbolicName: 'Manual',\n    },\n    {\n        Group: '',\n        Description: 'false - trade is not an AsOf trade',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1015,\n        SymbolicName: 'False',\n    },\n    {\n        Group: '',\n        Description: 'true - trade is an AsOf trade',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1015,\n        SymbolicName: 'True',\n    },\n    {\n        Group: '',\n        Description: 'Top of Book',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1021,\n        SymbolicName: 'TopOfBook',\n    },\n    {\n        Group: '',\n        Description: 'Price Depth',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1021,\n        SymbolicName: 'PriceDepth',\n    },\n    {\n        Group: '',\n        Description: 'Order Depth',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1021,\n        SymbolicName: 'OrderDepth',\n    },\n    {\n        Group: '',\n        Description: 'Book',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1024,\n        SymbolicName: 'Book',\n    },\n    {\n        Group: '',\n        Description: 'Off-Book',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1024,\n        SymbolicName: 'OffBook',\n    },\n    {\n        Group: '',\n        Description: 'Cross',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1024,\n        SymbolicName: 'Cross',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Add-on Order',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'ADD',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'AddOnOrder',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'All or None',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'AON',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'AllOrNone',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Cash Not Held',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'CNH',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'CashNotHeld',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Directed Order',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'DIR',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'DirectedOrder',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Exchange for Physical Transaction',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'E.W',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'ExchangeForPhysicalTransaction',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Fill or Kill',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'FOK',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'FillOrKill',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Imbalance Only',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'IO',\n        Sort: 7,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'ImbalanceOnly',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Immediate or Cancel',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'IOC',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'ImmediateOrCancel',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Limit On Open',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'LOO',\n        Sort: 9,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'LimitOnOpen',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Limit on Close',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'LOC',\n        Sort: 10,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'LimitOnClose',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Market at Open',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'MAO',\n        Sort: 11,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'MarketAtOpen',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Market at Close',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'MAC',\n        Sort: 12,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'MarketAtClose',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Market on Open',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'MOO',\n        Sort: 13,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'MarketOnOpen',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Market On Close',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'MOC',\n        Sort: 14,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'MarketOnClose',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Minimum Quantity',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'MQT',\n        Sort: 15,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'MinimumQuantity',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Not Held',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'NH',\n        Sort: 16,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'NotHeld',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Over the Day',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'OVD',\n        Sort: 17,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'OverTheDay',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Pegged',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'PEG',\n        Sort: 18,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'Pegged',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Reserve Size Order',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'RSV',\n        Sort: 19,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'ReserveSizeOrder',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Stop Stock Transaction',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'S.W',\n        Sort: 20,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'StopStockTransaction',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Scale',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'SCL',\n        Sort: 21,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'Scale',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Time Order',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'TMO',\n        Sort: 22,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'TimeOrder',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Trailing Stop',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'TS',\n        Sort: 23,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'TrailingStop',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Work',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'WRK',\n        Sort: 24,\n        addedEP: -1,\n        Tag: 1031,\n        SymbolicName: 'Work',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'NASD OATS',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1032,\n        SymbolicName: 'NASDOATS',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Agency',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'A',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'Agency',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Arbitrage',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'AR',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'Arbitrage',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Derivatives',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'D',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'Derivatives',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'International',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'IN',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'International',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Institutional',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'IS',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'Institutional',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Other',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'O',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'Other',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Preferred Trading',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'PF',\n        Sort: 7,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'PreferredTrading',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Proprietary',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'PR',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'Proprietary',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Program Trading',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'PT',\n        Sort: 9,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'ProgramTrading',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Sales',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'S',\n        Sort: 10,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'Sales',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: 'NASD OATS',\n        Description: 'Trading',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        Value: 'T',\n        Sort: 11,\n        addedEP: -1,\n        Tag: 1033,\n        SymbolicName: 'Trading',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'NASD OATS',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1034,\n        SymbolicName: 'NASDOATS',\n    },\n    {\n        Group: '',\n        Description: 'Add-on Order',\n        added: 'FIX.4.4',\n        Value: 'ADD',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'AddOnOrder',\n    },\n    {\n        Group: '',\n        Description: 'All or None',\n        added: 'FIX.4.4',\n        Value: 'AON',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'AllOrNone',\n    },\n    {\n        Group: '',\n        Description: 'Cash Not Held',\n        added: 'FIX.4.4',\n        Value: 'CNH',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'CashNotHeld',\n    },\n    {\n        Group: '',\n        Description: 'Directed Order',\n        added: 'FIX.4.4',\n        Value: 'DIR',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'DirectedOrder',\n    },\n    {\n        Group: '',\n        Description: 'Exchange for Physical Transaction',\n        added: 'FIX.4.4',\n        Value: 'E.W',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'ExchangeForPhysicalTransaction',\n    },\n    {\n        Group: '',\n        Description: 'Fill or Kill',\n        added: 'FIX.4.4',\n        Value: 'FOK',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'FillOrKill',\n    },\n    {\n        Group: '',\n        Description: 'Imbalance Only',\n        added: 'FIX.4.4',\n        Value: 'IO',\n        Sort: 7,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'ImbalanceOnly',\n    },\n    {\n        Group: '',\n        Description: 'Immediate or Cancel',\n        added: 'FIX.4.4',\n        Value: 'IOC',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'ImmediateOrCancel',\n    },\n    {\n        Group: '',\n        Description: 'Limit On Open',\n        added: 'FIX.4.4',\n        Value: 'LOO',\n        Sort: 9,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'LimitOnOpen',\n    },\n    {\n        Group: '',\n        Description: 'Limit on Close',\n        added: 'FIX.4.4',\n        Value: 'LOC',\n        Sort: 10,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'LimitOnClose',\n    },\n    {\n        Group: '',\n        Description: 'Market at Open',\n        added: 'FIX.4.4',\n        Value: 'MAO',\n        Sort: 11,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'MarketAtOpen',\n    },\n    {\n        Group: '',\n        Description: 'Market at Close',\n        added: 'FIX.4.4',\n        Value: 'MAC',\n        Sort: 12,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'MarketAtClose',\n    },\n    {\n        Group: '',\n        Description: 'Market on Open',\n        added: 'FIX.4.4',\n        Value: 'MOO',\n        Sort: 13,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'MarketOnOpen',\n    },\n    {\n        Group: '',\n        Description: 'Market On Close',\n        added: 'FIX.4.4',\n        Value: 'MOC',\n        Sort: 14,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'MarketOnClose',\n    },\n    {\n        Group: '',\n        Description: 'Minimum Quantity',\n        added: 'FIX.4.4',\n        Value: 'MQT',\n        Sort: 15,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'MinimumQuantity',\n    },\n    {\n        Group: '',\n        Description: 'Not Held',\n        added: 'FIX.4.4',\n        Value: 'NH',\n        Sort: 16,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'NotHeld',\n    },\n    {\n        Group: '',\n        Description: 'Over the Day',\n        added: 'FIX.4.4',\n        Value: 'OVD',\n        Sort: 17,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'OverTheDay',\n    },\n    {\n        Group: '',\n        Description: 'Pegged',\n        added: 'FIX.4.4',\n        Value: 'PEG',\n        Sort: 18,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'Pegged',\n    },\n    {\n        Group: '',\n        Description: 'Reserve Size Order',\n        added: 'FIX.4.4',\n        Value: 'RSV',\n        Sort: 19,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'ReserveSizeOrder',\n    },\n    {\n        Group: '',\n        Description: 'Stop Stock Transaction',\n        added: 'FIX.4.4',\n        Value: 'S.W',\n        Sort: 20,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'StopStockTransaction',\n    },\n    {\n        Group: '',\n        Description: 'Scale',\n        added: 'FIX.4.4',\n        Value: 'SCL',\n        Sort: 21,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'Scale',\n    },\n    {\n        Group: '',\n        Description: 'Time Order',\n        added: 'FIX.4.4',\n        Value: 'TMO',\n        Sort: 22,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'TimeOrder',\n    },\n    {\n        Group: '',\n        Description: 'Trailing Stop',\n        added: 'FIX.4.4',\n        Value: 'TS',\n        Sort: 23,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'TrailingStop',\n    },\n    {\n        Group: '',\n        Description: 'Work',\n        added: 'FIX.4.4',\n        Value: 'WRK',\n        Sort: 24,\n        addedEP: -1,\n        Tag: 1035,\n        SymbolicName: 'Work',\n    },\n    {\n        Group: '',\n        Description: 'Received, not yet processed',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1036,\n        SymbolicName: 'Received',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1036,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: \"Don't know / Rejected\",\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1036,\n        SymbolicName: 'Don',\n    },\n    {\n        Group: '',\n        Description: 'Specific Deposit',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1043,\n        SymbolicName: 'SpecificDeposit',\n    },\n    {\n        Group: '',\n        Description: 'General',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1043,\n        SymbolicName: 'General',\n    },\n    {\n        Group: '',\n        Description: 'Divide',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 0,\n        addedEP: -1,\n        Tag: 1046,\n        SymbolicName: 'Divide',\n    },\n    {\n        Group: '',\n        Description: 'Multiply',\n        added: 'FIX.4.4',\n        Value: 'M',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1046,\n        SymbolicName: 'Multiply',\n    },\n    {\n        Group: '',\n        Description: 'Open',\n        added: 'FIX.4.4',\n        Value: 'O',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1047,\n        SymbolicName: 'Open',\n    },\n    {\n        Group: '',\n        Description: 'Close',\n        added: 'FIX.4.4',\n        Value: 'C',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1047,\n        SymbolicName: 'Close',\n    },\n    {\n        Group: '',\n        Description: 'Rolled',\n        added: 'FIX.4.4',\n        Value: 'R',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1047,\n        SymbolicName: 'Rolled',\n    },\n    {\n        Group: '',\n        Description: 'FIFO',\n        added: 'FIX.4.4',\n        Value: 'F',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1047,\n        SymbolicName: 'FIFO',\n    },\n    {\n        Group: '',\n        Description: 'Order initiator is aggressor',\n        added: 'FIX.4.4',\n        Value: 'Y',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1057,\n        SymbolicName: 'OrderInitiatorIsAggressor',\n    },\n    {\n        Group: '',\n        Description: 'Order initiator is passive',\n        added: 'FIX.4.4',\n        Value: 'N',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1057,\n        SymbolicName: 'OrderInitiatorIsPassive',\n    },\n    {\n        Group: '',\n        Description: 'Indicative',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: 32,\n        Tag: 1070,\n        SymbolicName: 'Indicative',\n    },\n    {\n        Group: '',\n        Description: 'Tradeable',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 3,\n        addedEP: 32,\n        Tag: 1070,\n        SymbolicName: 'Tradeable',\n    },\n    {\n        Group: '',\n        Description: 'Restricted Tradeable',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 4,\n        addedEP: 32,\n        Tag: 1070,\n        SymbolicName: 'RestrictedTradeable',\n    },\n    {\n        Group: '',\n        Description: 'Counter',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 5,\n        addedEP: 32,\n        Tag: 1070,\n        SymbolicName: 'Counter',\n    },\n    {\n        Group: '',\n        Description: 'Indicative and Tradeable',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 6,\n        addedEP: 32,\n        Tag: 1070,\n        SymbolicName: 'IndicativeAndTradeable',\n    },\n    {\n        Group: '',\n        Description: 'SecondaryOrderID(198)',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1081,\n        SymbolicName: 'SecondaryOrderID',\n    },\n    {\n        Group: '',\n        Description: 'OrderID(37)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1081,\n        SymbolicName: 'OrderID',\n    },\n    {\n        Group: '',\n        Description: 'MDEntryID(278)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1081,\n        SymbolicName: 'MDEntryID',\n    },\n    {\n        Group: '',\n        Description: 'QuoteEntryID(299)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1081,\n        SymbolicName: 'QuoteEntryID',\n    },\n    {\n        Group: '',\n        Description: 'Immediate (after each fill)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1083,\n        SymbolicName: 'Immediate',\n    },\n    {\n        Group: '',\n        Description: 'Exhaust (when DisplayQty = 0)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1083,\n        SymbolicName: 'Exhaust',\n    },\n    {\n        Group: '',\n        Description: 'Initial (use original DisplayQty)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1084,\n        SymbolicName: 'Initial',\n    },\n    {\n        Group: '',\n        Description: 'New (use RefreshQty)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1084,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Random (randomize value)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1084,\n        SymbolicName: 'Random',\n    },\n    {\n        Group: '',\n        Description: 'None',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1092,\n        SymbolicName: 'None',\n    },\n    {\n        Group: '',\n        Description: 'Local (Exchange, ECN, ATS)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1092,\n        SymbolicName: 'Local',\n    },\n    {\n        Group: '',\n        Description: 'National (Across all national markets)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1092,\n        SymbolicName: 'National',\n    },\n    {\n        Group: '',\n        Description: 'Global (Across all markets)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1092,\n        SymbolicName: 'Global',\n    },\n    {\n        Group: '',\n        Description: 'Odd Lot',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1093,\n        SymbolicName: 'OddLot',\n    },\n    {\n        Group: '',\n        Description: 'Round Lot',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1093,\n        SymbolicName: 'RoundLot',\n    },\n    {\n        Group: '',\n        Description: 'Block Lot',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1093,\n        SymbolicName: 'BlockLot',\n    },\n    {\n        Group: '',\n        Description: 'Last peg (last sale)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1094,\n        SymbolicName: 'LastPeg',\n    },\n    {\n        Group: '',\n        Description: 'Mid-price peg (midprice of inside quote)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1094,\n        SymbolicName: 'MidPricePeg',\n    },\n    {\n        Group: '',\n        Description: 'Opening peg',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1094,\n        SymbolicName: 'OpeningPeg',\n    },\n    {\n        Group: '',\n        Description: 'Market peg',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1094,\n        SymbolicName: 'MarketPeg',\n    },\n    {\n        Group: '',\n        Description: 'Primary peg (primary market - buy at bid or sell at offer)',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1094,\n        SymbolicName: 'PrimaryPeg',\n    },\n    {\n        Group: '',\n        Description: 'Peg to VWAP',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 7,\n        addedEP: -1,\n        Tag: 1094,\n        SymbolicName: 'PegToVWAP',\n    },\n    {\n        Group: '',\n        Description: 'Trailing Stop Peg',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 1094,\n        SymbolicName: 'TrailingStopPeg',\n    },\n    {\n        Group: '',\n        Description: 'Peg to Limit Price',\n        added: 'FIX.4.4',\n        Value: '9',\n        Sort: 9,\n        addedEP: -1,\n        Tag: 1094,\n        SymbolicName: 'PegToLimitPrice',\n    },\n    {\n        Group: '',\n        Description: 'Partial Execution',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1100,\n        SymbolicName: 'PartialExecution',\n    },\n    {\n        Group: '',\n        Description: 'Specified Trading Session',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1100,\n        SymbolicName: 'SpecifiedTradingSession',\n    },\n    {\n        Group: '',\n        Description: 'Next Auction',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1100,\n        SymbolicName: 'NextAuction',\n    },\n    {\n        Group: '',\n        Description: 'Price Movement',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1100,\n        SymbolicName: 'PriceMovement',\n    },\n    {\n        Group: '',\n        Description: 'Activate',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1101,\n        SymbolicName: 'Activate',\n    },\n    {\n        Group: '',\n        Description: 'Modify',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1101,\n        SymbolicName: 'Modify',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1101,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'Best Offer',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1107,\n        SymbolicName: 'BestOffer',\n    },\n    {\n        Group: '',\n        Description: 'Last Trade',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1107,\n        SymbolicName: 'LastTrade',\n    },\n    {\n        Group: '',\n        Description: 'Best Bid',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1107,\n        SymbolicName: 'BestBid',\n    },\n    {\n        Group: '',\n        Description: 'Best Bid or Last Trade',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1107,\n        SymbolicName: 'BestBidOrLastTrade',\n    },\n    {\n        Group: '',\n        Description: 'Best Offer or Last Trade',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1107,\n        SymbolicName: 'BestOfferOrLastTrade',\n    },\n    {\n        Group: '',\n        Description: 'Best Mid',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 1107,\n        SymbolicName: 'BestMid',\n    },\n    {\n        Group: '',\n        Description: 'None',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1108,\n        SymbolicName: 'None',\n    },\n    {\n        Group: '',\n        Description: 'Local (Exchange, ECN, ATS)',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1108,\n        SymbolicName: 'Local',\n    },\n    {\n        Group: '',\n        Description: 'National (Across all national markets)',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1108,\n        SymbolicName: 'National',\n    },\n    {\n        Group: '',\n        Description: 'Global (Across all markets)',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1108,\n        SymbolicName: 'Global',\n    },\n    {\n        Group: '',\n        Description: 'Trigger if the price of the specified type goes UP to or through the specified Trigger Price.',\n        added: 'FIX.4.4',\n        Value: 'U',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1109,\n        SymbolicName: 'Up',\n    },\n    {\n        Group: '',\n        Description: 'Trigger if the price of the specified type goes DOWN to or through the specified Trigger Price.',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1109,\n        SymbolicName: 'Down',\n    },\n    {\n        Group: '',\n        Description: 'Market',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: 35,\n        Tag: 1111,\n        SymbolicName: 'Market',\n    },\n    {\n        Group: '',\n        Description: 'Limit',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: 35,\n        Tag: 1111,\n        SymbolicName: 'Limit',\n    },\n    {\n        Group: '',\n        Description: 'Order',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'Order',\n    },\n    {\n        Group: '',\n        Description: 'Quote',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'Quote',\n    },\n    {\n        Group: '',\n        Description: 'Privately Negotiated Trade',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'PrivatelyNegotiatedTrade',\n    },\n];\n\nconst batch6: ISpecEnums[] = [\n    {\n        Group: '',\n        Description: 'Multileg order',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'MultilegOrder',\n    },\n    {\n        Group: '',\n        Description: 'Linked order',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'LinkedOrder',\n    },\n    {\n        Group: '',\n        Description: 'Quote Request',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'QuoteRequest',\n    },\n    {\n        Group: '',\n        Description: 'Implied Order',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 7,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'ImpliedOrder',\n    },\n    {\n        Group: '',\n        Description: 'Cross Order',\n        added: 'FIX.4.4',\n        Value: '8',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'CrossOrder',\n    },\n    {\n        Group: '',\n        Description: 'Streaming price (quote)',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 9,\n        addedEP: -1,\n        Tag: 1115,\n        SymbolicName: 'StreamingPrice',\n    },\n    {\n        Group: '',\n        Description: 'Trade Confirmation',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1123,\n        SymbolicName: 'TradeConfirmation',\n    },\n    {\n        Group: '',\n        Description: 'Two-Party Report',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1123,\n        SymbolicName: 'TwoPartyReport',\n    },\n    {\n        Group: '',\n        Description: 'One-Party Report for Matching',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1123,\n        SymbolicName: 'OnePartyReportForMatching',\n    },\n    {\n        Group: '',\n        Description: 'One-Party Report for Pass Through',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1123,\n        SymbolicName: 'OnePartyReportForPassThrough',\n    },\n    {\n        Group: '',\n        Description: 'Automated Floor Order Routing',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1123,\n        SymbolicName: 'AutomatedFloorOrderRouting',\n    },\n    {\n        Group: '',\n        Description: 'Two Party Report for Claim',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 6,\n        addedEP: 55,\n        Tag: 1123,\n        SymbolicName: 'TwoPartyReportForClaim',\n    },\n    {\n        Group: '',\n        Description: 'FIX27',\n        added: 'FIX.4.4',\n        Value: '0',\n        Sort: 0,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX27',\n    },\n    {\n        Group: '',\n        Description: 'FIX30',\n        added: 'FIX.4.4',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX30',\n    },\n    {\n        Group: '',\n        Description: 'FIX40',\n        added: 'FIX.4.4',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX40',\n    },\n    {\n        Group: '',\n        Description: 'FIX41',\n        added: 'FIX.4.4',\n        Value: '3',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX41',\n    },\n    {\n        Group: '',\n        Description: 'FIX42',\n        added: 'FIX.4.4',\n        Value: '4',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX42',\n    },\n    {\n        Group: '',\n        Description: 'FIX43',\n        added: 'FIX.4.4',\n        Value: '5',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX43',\n    },\n    {\n        Group: '',\n        Description: 'FIX44',\n        added: 'FIX.4.4',\n        Value: '6',\n        Sort: 6,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX44',\n    },\n    {\n        Group: '',\n        Description: 'FIX50',\n        added: 'FIX.4.4',\n        Value: '7',\n        Sort: 7,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX50',\n    },\n    {\n        Group: '',\n        Description: 'FIX50SP1',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 8,\n        addedEP: -1,\n        Tag: 1128,\n        SymbolicName: 'FIX50SP1',\n    },\n    {\n        Group: '',\n        Description: 'BIC (Bank Identification Code) (ISO 9362)',\n        added: 'FIX.4.4',\n        Value: 'B',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1133,\n        SymbolicName: 'BIC',\n    },\n    {\n        Group: '',\n        Description: 'Generally accepted market participant identifier (e.g. NASD mnemonic)',\n        added: 'FIX.4.4',\n        Value: 'C',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1133,\n        SymbolicName: 'GeneralIdentifier',\n    },\n    {\n        Group: '',\n        Description: 'Proprietary / Custom code',\n        added: 'FIX.4.4',\n        Value: 'D',\n        Sort: 3,\n        addedEP: -1,\n        Tag: 1133,\n        SymbolicName: 'Proprietary',\n    },\n    {\n        Group: '',\n        Description: 'ISO Country Code',\n        added: 'FIX.4.4',\n        Value: 'E',\n        Sort: 4,\n        addedEP: -1,\n        Tag: 1133,\n        SymbolicName: 'ISOCountryCode',\n    },\n    {\n        Group: '',\n        Description: 'MIC (ISO 10383 - Market Identifier Code)',\n        added: 'FIX.4.4',\n        Value: 'G',\n        Sort: 5,\n        addedEP: -1,\n        Tag: 1133,\n        SymbolicName: 'MIC',\n    },\n    {\n        Group: '',\n        Description: 'Not implied',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 42,\n        Tag: 1144,\n        SymbolicName: 'NotImplied',\n    },\n    {\n        Group: '',\n        Description: 'Implied-in - The existence of a multi-leg instrument is implied by the legs of that instrument',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 42,\n        Tag: 1144,\n        SymbolicName: 'ImpliedIn',\n    },\n    {\n        Group: '',\n        Description: 'Implied-out - The existence of the underlying legs are implied by the multi-leg instrument',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 42,\n        Tag: 1144,\n        SymbolicName: 'ImpliedOut',\n    },\n    {\n        Group: '',\n        Description: 'Both Implied-in and Implied-out',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 42,\n        Tag: 1144,\n        SymbolicName: 'BothImpliedInAndImpliedOut',\n    },\n    {\n        Group: '',\n        Description: 'Preliminary',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 44,\n        Tag: 1159,\n        SymbolicName: 'Preliminary',\n    },\n    {\n        Group: '',\n        Description: 'Final',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 44,\n        Tag: 1159,\n        SymbolicName: 'Final',\n    },\n    {\n        Group: '',\n        Description: 'Cancel',\n        added: 'FIX.5.0',\n        Value: 'C',\n        Sort: 1,\n        addedEP: 44,\n        Tag: 1162,\n        SymbolicName: 'Cancel',\n    },\n    {\n        Group: '',\n        Description: 'New',\n        added: 'FIX.5.0',\n        Value: 'N',\n        Sort: 2,\n        addedEP: 44,\n        Tag: 1162,\n        SymbolicName: 'New',\n    },\n    {\n        Group: '',\n        Description: 'Replace',\n        added: 'FIX.5.0',\n        Value: 'R',\n        Sort: 3,\n        addedEP: 44,\n        Tag: 1162,\n        SymbolicName: 'Replace',\n    },\n    {\n        Group: '',\n        Description: 'Restate',\n        added: 'FIX.5.0',\n        Value: 'T',\n        Sort: 4,\n        addedEP: 44,\n        Tag: 1162,\n        SymbolicName: 'Restate',\n    },\n    {\n        Group: '',\n        Description: 'Instructions of Broker',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 44,\n        Tag: 1164,\n        SymbolicName: 'InstructionsOfBroker',\n    },\n    {\n        Group: '',\n        Description: 'Instructions for Institution',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 44,\n        Tag: 1164,\n        SymbolicName: 'InstructionsForInstitution',\n    },\n    {\n        Group: '',\n        Description: 'Investor',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 44,\n        Tag: 1164,\n        SymbolicName: 'Investor',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Rejected',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 2,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Removed from Market',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 3,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'RemovedFromMarket',\n    },\n    {\n        Group: '',\n        Description: 'Expired',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 4,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'Expired',\n    },\n    {\n        Group: '',\n        Description: 'Locked Market Warning',\n        added: 'FIX.5.0',\n        Value: '12',\n        Sort: 5,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'LockedMarketWarning',\n    },\n    {\n        Group: '',\n        Description: 'Cross Market Warning',\n        added: 'FIX.5.0',\n        Value: '13',\n        Sort: 6,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'CrossMarketWarning',\n    },\n    {\n        Group: '',\n        Description: 'Canceled due to Lock Market',\n        added: 'FIX.5.0',\n        Value: '14',\n        Sort: 7,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'CanceledDueToLockMarket',\n    },\n    {\n        Group: '',\n        Description: 'Canceled due to Cross Market',\n        added: 'FIX.5.0',\n        Value: '15',\n        Sort: 8,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'CanceledDueToCrossMarket',\n    },\n    {\n        Group: '',\n        Description: 'Active',\n        added: 'FIX.5.0',\n        Value: '16',\n        Sort: 9,\n        addedEP: 45,\n        Tag: 1167,\n        SymbolicName: 'Active',\n    },\n    {\n        Group: '',\n        Description: 'Private Quote',\n        added: 'FIX.5.0',\n        Value: 'Y',\n        Sort: 1,\n        addedEP: 46,\n        Tag: 1171,\n        SymbolicName: 'PrivateQuote',\n    },\n    {\n        Group: '',\n        Description: 'Public Quote',\n        added: 'FIX.5.0',\n        Value: 'N',\n        Sort: 2,\n        addedEP: 46,\n        Tag: 1171,\n        SymbolicName: 'PublicQuote',\n    },\n    {\n        Group: '',\n        Description: 'All market participants',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 46,\n        Tag: 1172,\n        SymbolicName: 'AllMarketParticipants',\n    },\n    {\n        Group: '',\n        Description: 'Specified market participants',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 46,\n        Tag: 1172,\n        SymbolicName: 'SpecifiedMarketParticipants',\n    },\n    {\n        Group: '',\n        Description: 'All Market Makers',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 46,\n        Tag: 1172,\n        SymbolicName: 'AllMarketMakers',\n    },\n    {\n        Group: '',\n        Description: 'Primary Market Maker(s)',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 46,\n        Tag: 1172,\n        SymbolicName: 'PrimaryMarketMaker',\n    },\n    {\n        Group: '',\n        Description: 'Order imbalance, auction is extended',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 47,\n        Tag: 1174,\n        SymbolicName: 'OrderImbalance',\n    },\n    {\n        Group: '',\n        Description: 'Trading resumes (after Halt)',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 47,\n        Tag: 1174,\n        SymbolicName: 'TradingResumes',\n    },\n    {\n        Group: '',\n        Description: 'Price Volatility Interruption',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 47,\n        Tag: 1174,\n        SymbolicName: 'PriceVolatilityInterruption',\n    },\n    {\n        Group: '',\n        Description: 'Change of Trading Session',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 47,\n        Tag: 1174,\n        SymbolicName: 'ChangeOfTradingSession',\n    },\n    {\n        Group: '',\n        Description: 'Change of Trading Subsession',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 5,\n        addedEP: 47,\n        Tag: 1174,\n        SymbolicName: 'ChangeOfTradingSubsession',\n    },\n    {\n        Group: '',\n        Description: 'Change of Security Trading Status',\n        added: 'FIX.5.0',\n        updatedEP: 95,\n        Value: '6',\n        Sort: 6,\n        addedEP: 47,\n        Tag: 1174,\n        SymbolicName: 'ChangeOfSecurityTradingStatus',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Group: '',\n        Description: 'Change of Book Type',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 7,\n        addedEP: 47,\n        Tag: 1174,\n        SymbolicName: 'ChangeOfBookType',\n    },\n    {\n        Group: '',\n        Description: 'Change of Market Depth',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 8,\n        addedEP: 47,\n        Tag: 1174,\n        SymbolicName: 'ChangeOfMarketDepth',\n    },\n    {\n        Group: '',\n        Description: 'Exchange Last',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 47,\n        Tag: 1176,\n        SymbolicName: 'ExchangeLast',\n    },\n    {\n        Group: '',\n        Description: 'High / Low Price',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 47,\n        Tag: 1176,\n        SymbolicName: 'High',\n    },\n    {\n        Group: '',\n        Description: 'Average Price (VWAP, TWAP ... )',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 47,\n        Tag: 1176,\n        SymbolicName: 'AveragePrice',\n    },\n    {\n        Group: '',\n        Description: 'Turnover (Price * Qty)',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 47,\n        Tag: 1176,\n        SymbolicName: 'Turnover',\n    },\n    {\n        Group: '',\n        Description: 'Customer',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 47,\n        Tag: 1178,\n        SymbolicName: 'Customer',\n    },\n    {\n        Group: '',\n        Description: 'Cash settlement required',\n        added: 'FIX.5.0',\n        Value: 'C',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1193,\n        SymbolicName: 'CashSettlementRequired',\n    },\n    {\n        Group: '',\n        Description: 'Physical settlement required',\n        added: 'FIX.5.0',\n        Value: 'P',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1193,\n        SymbolicName: 'PhysicalSettlementRequired',\n    },\n    {\n        Group: '',\n        Description: 'European',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1194,\n        SymbolicName: 'European',\n    },\n    {\n        Group: '',\n        Description: 'American',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1194,\n        SymbolicName: 'American',\n    },\n    {\n        Group: '',\n        Description: 'Bermuda',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 52,\n        Tag: 1194,\n        SymbolicName: 'Bermuda',\n    },\n    {\n        Group: '',\n        Description: 'Standard, money per unit of a physical',\n        added: 'FIX.5.0',\n        Value: 'STD',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1196,\n        SymbolicName: 'Standard',\n    },\n    {\n        Group: '',\n        Description: 'Index',\n        added: 'FIX.5.0',\n        Value: 'INX',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1196,\n        SymbolicName: 'Index',\n    },\n    {\n        Group: '',\n        Description: 'Interest rate Index',\n        added: 'FIX.5.0',\n        Value: 'INT',\n        Sort: 3,\n        addedEP: 52,\n        Tag: 1196,\n        SymbolicName: 'InterestRateIndex',\n    },\n    {\n        Group: '',\n        Description: 'premium style',\n        added: 'FIX.5.0',\n        Value: 'EQTY',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1197,\n        SymbolicName: 'PremiumStyle',\n    },\n    {\n        Group: '',\n        Description: 'futures style mark-to-market',\n        added: 'FIX.5.0',\n        Value: 'FUT',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1197,\n        SymbolicName: 'FuturesStyleMarkToMarket',\n    },\n    {\n        Group: '',\n        Description: 'futures style with an attached cash adjustment',\n        added: 'FIX.5.0',\n        Value: 'FUTDA',\n        Sort: 3,\n        addedEP: 52,\n        Tag: 1197,\n        SymbolicName: 'FuturesStyleWithAnAttachedCashAdjustment',\n    },\n    {\n        Group: '',\n        Description: 'pre-listed only',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1198,\n        SymbolicName: 'PreListedOnly',\n    },\n    {\n        Group: '',\n        Description: 'user requested',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1198,\n        SymbolicName: 'UserRequested',\n    },\n    {\n        Group: '',\n        Description: 'Regular',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1209,\n        SymbolicName: 'Regular',\n    },\n    {\n        Group: '',\n        Description: 'Variable',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1209,\n        SymbolicName: 'Variable',\n    },\n    {\n        Group: '',\n        Description: 'Fixed',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 52,\n        Tag: 1209,\n        SymbolicName: 'Fixed',\n    },\n    {\n        Group: '',\n        Description: 'Traded as a spread leg',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 52,\n        Tag: 1209,\n        SymbolicName: 'TradedAsASpreadLeg',\n    },\n    {\n        Group: '',\n        Description: 'Settled as a spread leg',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 5,\n        addedEP: 52,\n        Tag: 1209,\n        SymbolicName: 'SettledAsASpreadLeg',\n    },\n    {\n        Group: '',\n        Description: 'Months',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1302,\n        SymbolicName: 'Months',\n    },\n    {\n        Group: '',\n        Description: 'Days',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1302,\n        SymbolicName: 'Days',\n    },\n    {\n        Group: '',\n        Description: 'Weeks',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 52,\n        Tag: 1302,\n        SymbolicName: 'Weeks',\n    },\n    {\n        Group: '',\n        Description: 'Years',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 52,\n        Tag: 1302,\n        SymbolicName: 'Years',\n    },\n    {\n        Group: '',\n        Description: 'YearMonth Only (default)',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1303,\n        SymbolicName: 'YearMonthOnly',\n    },\n    {\n        Group: '',\n        Description: 'YearMonthDay',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1303,\n        SymbolicName: 'YearMonthDay',\n    },\n    {\n        Group: '',\n        Description: 'YearMonthWeek',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 52,\n        Tag: 1303,\n        SymbolicName: 'YearMonthWeek',\n    },\n    {\n        Group: '',\n        Description: 'Price',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1306,\n        SymbolicName: 'Price',\n    },\n    {\n        Group: '',\n        Description: 'Ticks',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1306,\n        SymbolicName: 'Ticks',\n    },\n    {\n        Group: '',\n        Description: 'Percentage',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 52,\n        Tag: 1306,\n        SymbolicName: 'Percentage',\n    },\n    {\n        Group: '',\n        Description: 'Symbol',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'Symbol',\n    },\n    {\n        Group: '',\n        Description: 'SecurityType and or CFICode',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'SecurityTypeAndOrCFICode',\n    },\n    {\n        Group: '',\n        Description: 'Product',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'Product',\n    },\n    {\n        Group: '',\n        Description: 'TradingSessionID',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'TradingSessionID',\n    },\n    {\n        Group: '',\n        Description: 'All Securities',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 5,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'AllSecurities',\n    },\n    {\n        Group: '',\n        Description: 'UndelyingSymbol',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 6,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'UndelyingSymbol',\n    },\n    {\n        Group: '',\n        Description: 'Underlying SecurityType and or CFICode',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 7,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'UnderlyingSecurityTypeAndOrCFICode',\n    },\n    {\n        Group: '',\n        Description: 'Underlying Product',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 8,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'UnderlyingProduct',\n    },\n    {\n        Group: '',\n        Description: 'MarketID or MarketID + MarketSegmentID',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 9,\n        addedEP: 52,\n        Tag: 1307,\n        SymbolicName: 'MarketIDOrMarketID',\n    },\n    {\n        Group: '',\n        Description: 'Add',\n        added: 'FIX.5.0',\n        Value: 'A',\n        Sort: 1,\n        addedEP: 53,\n        Tag: 1395,\n        SymbolicName: 'Add',\n    },\n    {\n        Group: '',\n        Description: 'Delete',\n        added: 'FIX.5.0',\n        Value: 'D',\n        Sort: 2,\n        addedEP: 53,\n        Tag: 1395,\n        SymbolicName: 'Delete',\n    },\n    {\n        Group: '',\n        Description: 'Modify',\n        added: 'FIX.5.0',\n        Value: 'M',\n        Sort: 3,\n        addedEP: 53,\n        Tag: 1395,\n        SymbolicName: 'Modify',\n    },\n    {\n        Group: '',\n        Description: 'Session active',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'SessionActive',\n    },\n    {\n        Group: '',\n        Description: 'Session password changed',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'SessionPasswordChanged',\n    },\n    {\n        Group: '',\n        Description: 'Session password due to expire',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'SessionPasswordDueToExpire',\n    },\n    {\n        Group: '',\n        Description: 'New session password does not comply with policy',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'NewSessionPasswordDoesNotComplyWithPolicy',\n    },\n    {\n        Group: '',\n        Description: 'Session logout complete',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 5,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'SessionLogoutComplete',\n    },\n    {\n        Group: '',\n        Description: 'Invalid username or password',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 6,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'InvalidUsernameOrPassword',\n    },\n    {\n        Group: '',\n        Description: 'Account locked',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 7,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'AccountLocked',\n    },\n    {\n        Group: '',\n        Description: 'Logons are not allowed at this time',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 8,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'LogonsAreNotAllowedAtThisTime',\n    },\n    {\n        Group: '',\n        Description: 'Password expired',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 9,\n        addedEP: 56,\n        Tag: 1409,\n        SymbolicName: 'PasswordExpired',\n    },\n    {\n        Group: '',\n        Description: 'Trading resumes (after Halt)',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 58,\n        Tag: 1368,\n        SymbolicName: 'TradingResumes',\n    },\n    {\n        Group: '',\n        Description: 'Change of Trading Session',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 58,\n        Tag: 1368,\n        SymbolicName: 'ChangeOfTradingSession',\n    },\n    {\n        Group: '',\n        Description: 'Change of Trading Subsession',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 58,\n        Tag: 1368,\n        SymbolicName: 'ChangeOfTradingSubsession',\n    },\n    {\n        Group: '',\n        Description: 'Change of Trading Status',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 58,\n        Tag: 1368,\n        SymbolicName: 'ChangeOfTradingStatus',\n    },\n    {\n        Group: '',\n        Description: 'Suspend orders',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 58,\n        Tag: 1373,\n        SymbolicName: 'SuspendOrders',\n    },\n    {\n        Group: '',\n        Description: 'Release orders from suspension',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 58,\n        Tag: 1373,\n        SymbolicName: 'ReleaseOrdersFromSuspension',\n    },\n    {\n        Group: '',\n        Description: 'Cancel orders',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 58,\n        Tag: 1373,\n        SymbolicName: 'CancelOrders',\n    },\n    {\n        Group: '',\n        Description: 'All orders for a security',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForASecurity',\n    },\n    {\n        Group: '',\n        Description: 'All orders for an underlying security',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForAnUnderlyingSecurity',\n    },\n    {\n        Group: '',\n        Description: 'All orders for a Product',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForAProduct',\n    },\n    {\n        Group: '',\n        Description: 'All orders for a CFICode',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForACFICode',\n    },\n    {\n        Group: '',\n        Description: 'All orders for a SecurityType',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 5,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForASecurityType',\n    },\n    {\n        Group: '',\n        Description: 'All orders for a trading session',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 6,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForATradingSession',\n    },\n    {\n        Group: '',\n        Description: 'All orders',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 7,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrders',\n    },\n    {\n        Group: '',\n        Description: 'All orders for a Market',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 8,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForAMarket',\n    },\n    {\n        Group: '',\n        Description: 'All orders for a Market Segment',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 9,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForAMarketSegment',\n    },\n    {\n        Group: '',\n        Description: 'All orders for a Security Group',\n        added: 'FIX.5.0',\n        Value: '10',\n        Sort: 10,\n        addedEP: 58,\n        Tag: 1374,\n        SymbolicName: 'AllOrdersForASecurityGroup',\n    },\n    {\n        Group: '',\n        Description: 'Rejected - See MassActionRejectReason(1376)',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 0,\n        addedEP: 58,\n        Tag: 1375,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Group: '',\n        Description: 'Accepted',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 58,\n        Tag: 1375,\n        SymbolicName: 'Accepted',\n    },\n    {\n        Group: '',\n        Description: 'Mass Action Not Supported',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 0,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'MassActionNotSupported',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown security',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown underlying security',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownUnderlyingSecurity',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown Product',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownProduct',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown CFICode',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownCFICode',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown SecurityType',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 5,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownSecurityType',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown trading session',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 6,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownTradingSession',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown Market',\n        added: 'FIX.5.0',\n        Value: '7',\n        Sort: 7,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownMarket',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown Market Segment',\n        added: 'FIX.5.0',\n        Value: '8',\n        Sort: 8,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownMarketSegment',\n    },\n    {\n        Group: '',\n        Description: 'Invalid or unknown Security Group',\n        added: 'FIX.5.0',\n        Value: '9',\n        Sort: 9,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownSecurityGroup',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.5.0',\n        Value: '99',\n        Sort: 99,\n        addedEP: 58,\n        Tag: 1376,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Predefined Multileg Security',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 59,\n        Tag: 1377,\n        SymbolicName: 'PredefinedMultilegSecurity',\n    },\n    {\n        Group: '',\n        Description: 'User-defined Multleg Security',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 59,\n        Tag: 1377,\n        SymbolicName: 'UserDefinedMultilegSecurity',\n    },\n    {\n        Group: '',\n        Description: 'User-defined, Non-Securitized, Multileg',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 59,\n        Tag: 1377,\n        SymbolicName: 'UserDefined',\n    },\n    {\n        Group: '',\n        Description: 'Net Price',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 59,\n        Tag: 1378,\n        SymbolicName: 'NetPrice',\n    },\n    {\n        Group: '',\n        Description: 'Reversed Net Price',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 59,\n        Tag: 1378,\n        SymbolicName: 'ReversedNetPrice',\n    },\n    {\n        Group: '',\n        Description: 'Yield Difference',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 59,\n        Tag: 1378,\n        SymbolicName: 'YieldDifference',\n    },\n    {\n        Group: '',\n        Description: 'Individual',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 59,\n        Tag: 1378,\n        SymbolicName: 'Individual',\n    },\n    {\n        Group: '',\n        Description: 'Contract Weighted Average Price',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 5,\n        addedEP: 59,\n        Tag: 1378,\n        SymbolicName: 'ContractWeightedAveragePrice',\n    },\n    {\n        Group: '',\n        Description: 'Multiplied Price',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 6,\n        addedEP: 59,\n        Tag: 1378,\n        SymbolicName: 'MultipliedPrice',\n    },\n    {\n        Group: '',\n        Description: 'One Cancels the Other (OCO)',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: 60,\n        Tag: 1385,\n        SymbolicName: 'OneCancelsTheOther',\n    },\n    {\n        Group: '',\n        Description: 'One Triggers the Other (OTO)',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 60,\n        Tag: 1385,\n        SymbolicName: 'OneTriggersTheOther',\n    },\n    {\n        Group: '',\n        Description: 'One Updates the Other (OUO) - Absolute Quantity Reduction',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 3,\n        addedEP: 60,\n        Tag: 1385,\n        SymbolicName: 'OneUpdatesTheOtherAbsolute',\n    },\n    {\n        Group: '',\n        Description: 'One Updates the Other (OUO) - Proportional Quantity Reduction',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 4,\n        addedEP: 60,\n        Tag: 1385,\n        SymbolicName: 'OneUpdatesTheOtherProportional',\n    },\n    {\n        Group: '',\n        Description: 'Broker / Exchange option',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 60,\n        Tag: 1386,\n        SymbolicName: 'BrokerCredit',\n    },\n    {\n        Group: '',\n        Description: 'Exchange closed',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: 60,\n        Tag: 1386,\n        SymbolicName: 'ExchangeClosed',\n    },\n    {\n        Group: '',\n        Description: 'Too late to enter',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 3,\n        addedEP: 60,\n        Tag: 1386,\n        SymbolicName: 'TooLateToEnter',\n    },\n    {\n        Group: '',\n        Description: 'Unknown order',\n        added: 'FIX.5.0',\n        Value: '5',\n        Sort: 4,\n        addedEP: 60,\n        Tag: 1386,\n        SymbolicName: 'UnknownOrder',\n    },\n    {\n        Group: '',\n        Description: 'Duplicate Order (e.g. dupe ClOrdID)',\n        added: 'FIX.5.0',\n        Value: '6',\n        Sort: 5,\n        addedEP: 60,\n        Tag: 1386,\n        SymbolicName: 'DuplicateOrder',\n    },\n    {\n        Group: '',\n        Description: 'Unsupported order characteristic',\n        added: 'FIX.5.0',\n        Value: '11',\n        Sort: 6,\n        addedEP: 60,\n        Tag: 1386,\n        SymbolicName: 'UnsupportedOrderCharacteristic',\n    },\n    {\n        Group: '',\n        Description: 'Other',\n        added: 'FIX.5.0',\n        Value: '99',\n        Sort: 7,\n        addedEP: 60,\n        Tag: 1386,\n        SymbolicName: 'Other',\n    },\n    {\n        Group: '',\n        Description: 'Do Not Publish Trade',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 61,\n        Tag: 1390,\n        SymbolicName: 'DoNotPublishTrade',\n    },\n    {\n        Group: '',\n        Description: 'Publish Trade',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 61,\n        Tag: 1390,\n        SymbolicName: 'PublishTrade',\n    },\n    {\n        Group: '',\n        Description: 'Deferred Publication',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 61,\n        Tag: 1390,\n        SymbolicName: 'DeferredPublication',\n    },\n    {\n        Group: '',\n        Description: 'Retransmission of application messages for the specified Applications',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 63,\n        Tag: 1347,\n        SymbolicName: 'Retransmission',\n    },\n    {\n        Group: '',\n        Description: 'Subscription to the specified Applications',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 63,\n        Tag: 1347,\n        SymbolicName: 'Subscription',\n    },\n    {\n        Group: '',\n        Description: 'Request for the last ApplLastSeqNum published for the specified Applications',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 63,\n        Tag: 1347,\n        SymbolicName: 'RequestLastSeqNum',\n    },\n    {\n        Group: '',\n        Description: 'Request valid set of Applications',\n        added: 'FIX.5.0',\n        Value: '3',\n        Sort: 4,\n        addedEP: 63,\n        Tag: 1347,\n        SymbolicName: 'RequestApplications',\n    },\n    {\n        Group: '',\n        Description: 'Unsubscribe to the specified Applications',\n        added: 'FIX.5.0',\n        Value: '4',\n        Sort: 5,\n        addedEP: 63,\n        Tag: 1347,\n        SymbolicName: 'Unsubscribe',\n    },\n    {\n        Group: '',\n        Description: 'Request successfully processed',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 63,\n        Tag: 1348,\n        SymbolicName: 'RequestSuccessfullyProcessed',\n    },\n    {\n        Group: '',\n        Description: 'Application does not exist',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 63,\n        Tag: 1348,\n        SymbolicName: 'ApplicationDoesNotExist',\n    },\n    {\n        Group: '',\n        Description: 'Messages not available',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 63,\n        Tag: 1348,\n        SymbolicName: 'MessagesNotAvailable',\n    },\n    {\n        Group: '',\n        Description: 'Application does not exist',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 1,\n        addedEP: 63,\n        Tag: 1354,\n        SymbolicName: 'ApplicationDoesNotExist',\n    },\n    {\n        Group: '',\n        Description: 'Messages requested are not available',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 2,\n        addedEP: 63,\n        Tag: 1354,\n        SymbolicName: 'MessagesRequestedAreNotAvailable',\n    },\n    {\n        Group: '',\n        Description: 'User not authorized for application',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 3,\n        addedEP: 63,\n        Tag: 1354,\n        SymbolicName: 'UserNotAuthorizedForApplication',\n    },\n    {\n        Group: '',\n        Description: 'Reset ApplSeqNum to new value specified in ApplNewSeqNum(1399)',\n        added: 'FIX.5.0',\n        Value: '0',\n        Sort: 0,\n        addedEP: -1,\n        Tag: 1426,\n        SymbolicName: 'ApplSeqNumReset',\n    },\n    {\n        Group: '',\n        Description:\n            'Reports that the last message has been sent for the ApplIDs Refer to RefApplLastSeqNum(1357) for the application sequence number of the last message.',\n        added: 'FIX.5.0',\n        Value: '1',\n        Sort: 1,\n        addedEP: -1,\n        Tag: 1426,\n        SymbolicName: 'LastMessageSent',\n    },\n    {\n        Group: '',\n        Description:\n            'Heartbeat message indicating that Application identified by RefApplID(1355) is still alive. Refer to RefApplLastSeqNum(1357) for the application sequence number of the previous message.',\n        added: 'FIX.5.0',\n        Value: '2',\n        Sort: 2,\n        addedEP: -1,\n        Tag: 1426,\n        SymbolicName: 'ApplicationAlive',\n    },\n    {\n        Description: 'Seconds (default if not specified)',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Seconds',\n    },\n    {\n        Description: 'Tenths of a second',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'TenthsOfASecond',\n    },\n    {\n        Description: 'Hundredths of a second',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'HundredthsOfASecond',\n    },\n    {\n        Description: 'milliseconds',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Milliseconds',\n    },\n    {\n        Description: 'microseconds',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Microseconds',\n    },\n    {\n        Description: 'nanoseconds',\n        added: 'FIX.5.0SP1',\n        Value: '5',\n        Sort: 5,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Nanoseconds',\n    },\n    {\n        Description: 'minutes',\n        added: 'FIX.5.0SP1',\n        Value: '10',\n        Sort: 10,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Minutes',\n    },\n    {\n        Description: 'hours',\n        added: 'FIX.5.0SP1',\n        Value: '11',\n        Sort: 11,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Hours',\n    },\n    {\n        Description: 'days',\n        added: 'FIX.5.0SP1',\n        Value: '12',\n        Sort: 12,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Days',\n    },\n    {\n        Description: 'weeks',\n        added: 'FIX.5.0SP1',\n        Value: '13',\n        Sort: 13,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Weeks',\n    },\n    {\n        Description: 'months',\n        added: 'FIX.5.0SP1',\n        Value: '14',\n        Sort: 14,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Months',\n    },\n    {\n        Description: 'years',\n        added: 'FIX.5.0SP1',\n        Value: '15',\n        Sort: 15,\n        addedEP: 77,\n        Tag: 1429,\n        SymbolicName: 'Years',\n    },\n    {\n        Description: 'Electronic',\n        added: 'FIX.5.0SP1',\n        Value: 'E',\n        Sort: 0,\n        addedEP: 77,\n        Tag: 1430,\n        SymbolicName: 'Electronic',\n    },\n    {\n        Description: 'Pit',\n        added: 'FIX.5.0SP1',\n        Value: 'P',\n        Sort: 1,\n        addedEP: 77,\n        Tag: 1430,\n        SymbolicName: 'Pit',\n    },\n    {\n        Description: 'Ex-Pit',\n        added: 'FIX.5.0SP1',\n        Value: 'X',\n        Sort: 2,\n        addedEP: 77,\n        Tag: 1430,\n        SymbolicName: 'ExPit',\n    },\n    {\n        Description: 'GTC from previous day',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 77,\n        Tag: 1431,\n        SymbolicName: 'GTCFromPreviousDay',\n    },\n    {\n        Description: 'Partial Fill Remaining',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 77,\n        Tag: 1431,\n        SymbolicName: 'PartialFillRemaining',\n    },\n    {\n        Description: 'Order Changed',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 77,\n        Tag: 1431,\n        SymbolicName: 'OrderChanged',\n    },\n    {\n        Description: 'Member trading for their own account',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 77,\n        Tag: 1432,\n        SymbolicName: 'MemberTradingForTheirOwnAccount',\n    },\n    {\n        Description: 'Clearing Firm trading for its proprietary account',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 77,\n        Tag: 1432,\n        SymbolicName: 'ClearingFirmTradingForItsProprietaryAccount',\n    },\n    {\n        Description: 'Member trading for another member',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 77,\n        Tag: 1432,\n        SymbolicName: 'MemberTradingForAnotherMember',\n    },\n    {\n        Description: 'All other',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 77,\n        Tag: 1432,\n        SymbolicName: 'AllOther',\n    },\n    {\n        Description: 'Submission to Clearing',\n        added: 'FIX.5.0SP1',\n        Value: '7',\n        Sort: 7,\n        addedEP: 77,\n        Tag: 770,\n        SymbolicName: 'SubmissionToClearing',\n    },\n    {\n        Description: 'Original order ID',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 77,\n        Tag: 1081,\n        SymbolicName: 'OriginalOrderID',\n    },\n    {\n        Description: 'Cross',\n        added: 'FIX.5.0SP1',\n        Value: 'F',\n        Sort: 15,\n        addedEP: 78,\n        Tag: 529,\n        SymbolicName: 'Cross',\n    },\n    {\n        Description: 'Cancel retransmission',\n        issue: 'SPEC-674',\n        added: 'FIX.5.0SP1',\n        Value: '5',\n        Sort: 6,\n        addedEP: 78,\n        Tag: 1347,\n        SymbolicName: 'CancelRetransmission',\n    },\n    {\n        Description: 'Cancel retransmission and unsubscribe to the specified applications',\n        added: 'FIX.5.0SP1',\n        Value: '6',\n        Sort: 7,\n        addedEP: 78,\n        Tag: 1347,\n        SymbolicName: 'CancelRetransmissionUnsubscribe',\n    },\n    {\n        Description: 'Cancel by QuoteType(537)',\n        added: 'FIX.5.0SP1',\n        Value: '6',\n        Sort: 6,\n        addedEP: 78,\n        Tag: 298,\n        SymbolicName: 'CancelByQuoteType',\n    },\n    {\n        Description: 'Undisclosed (invisible order)',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 78,\n        Tag: 1084,\n        SymbolicName: 'Undisclosed',\n    },\n    {\n        Description: 'Delta Positions',\n        added: 'FIX.5.0SP1',\n        Value: '6',\n        Sort: 7,\n        addedEP: 79,\n        Tag: 724,\n        SymbolicName: 'DeltaPositions',\n    },\n    {\n        Description: 'Central Registration Depository (CRD)',\n        added: 'FIX.5.0SP1',\n        Value: '82',\n        Sort: 82,\n        addedEP: 79,\n        Tag: 452,\n        SymbolicName: 'CentralRegistrationDepository',\n    },\n    {\n        Description: 'Utility provided standard model',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 79,\n        Tag: 1434,\n        SymbolicName: 'UtilityProvidedStandardModel',\n    },\n    {\n        Description: 'Proprietary (user supplied) model',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 79,\n        Tag: 1434,\n        SymbolicName: 'ProprietaryModel',\n    },\n    {\n        Description: 'Net Delta Qty',\n        added: 'FIX.5.0SP1',\n        Value: 'DLT',\n        Sort: 25,\n        addedEP: 79,\n        Tag: 703,\n        SymbolicName: 'NetDeltaQty',\n    },\n    {\n        Group: '',\n        Description: 'Round lot based upon UnitOfMeasure(996)',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 80,\n        Tag: 1093,\n        SymbolicName: 'RoundLotBasedUpon',\n    },\n    {\n        Group: '',\n        Description: 'Shares',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 80,\n        Tag: 1435,\n        SymbolicName: 'Shares',\n    },\n    {\n        Group: '',\n        Description: 'Hours',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 80,\n        Tag: 1435,\n        SymbolicName: 'Hours',\n    },\n    {\n        Group: '',\n        Description: 'Days',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 80,\n        Tag: 1435,\n        SymbolicName: 'Days',\n    },\n    {\n        Group: '',\n        Description: 'NERC Eastern Off-Peak',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 80,\n        Tag: 1439,\n        SymbolicName: 'NERCEasternOffPeak',\n    },\n    {\n        Group: '',\n        Description: 'NERC Western Off-Peak',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 80,\n        Tag: 1439,\n        SymbolicName: 'NERCWesternOffPeak',\n    },\n    {\n        Group: '',\n        Description: 'NERC Calendar-All Days in month',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 80,\n        Tag: 1439,\n        SymbolicName: 'NERCCalendarAllDaysInMonth',\n    },\n    {\n        Group: '',\n        Description: 'NERC Eastern Peak',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 80,\n        Tag: 1439,\n        SymbolicName: 'NERCEasternPeak',\n    },\n    {\n        Group: '',\n        Description: 'NERC Western Peak',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 80,\n        Tag: 1439,\n        SymbolicName: 'NERCWesternPeak',\n    },\n    {\n        Description: 'Bloomberg',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 82,\n        Tag: 1446,\n        SymbolicName: 'Bloomberg',\n    },\n    {\n        Description: 'Reuters',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 82,\n        Tag: 1446,\n        SymbolicName: 'Reuters',\n    },\n    {\n        Description: 'Telerate',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 82,\n        Tag: 1446,\n        SymbolicName: 'Telerate',\n    },\n    {\n        Description: 'Other',\n        added: 'FIX.5.0SP1',\n        Value: '99',\n        Sort: 99,\n        addedEP: 82,\n        Tag: 1446,\n        SymbolicName: 'Other',\n    },\n    {\n        Description: 'Primary',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 82,\n        Tag: 1447,\n        SymbolicName: 'Primary',\n    },\n    {\n        Description: 'Secondary',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 82,\n        Tag: 1447,\n        SymbolicName: 'Secondary',\n    },\n    {\n        Group: 'Currency',\n        Description: 'Non-deliverable forward',\n        added: 'FIX.5.0SP1',\n        Value: 'FXNDF',\n        Sort: 1,\n        addedEP: 82,\n        Tag: 167,\n        SymbolicName: 'NonDeliverableForward',\n    },\n    {\n        Group: 'Currency',\n        Description: 'FX Spot',\n        added: 'FIX.5.0SP1',\n        Value: 'FXSPOT',\n        Sort: 2,\n        addedEP: 82,\n        Tag: 167,\n        SymbolicName: 'FXSpot',\n    },\n    {\n        Group: 'Currency',\n        Description: 'FX Forward',\n        added: 'FIX.5.0SP1',\n        Value: 'FXFWD',\n        Sort: 3,\n        addedEP: 82,\n        Tag: 167,\n        SymbolicName: 'FXForward',\n    },\n    {\n        Group: 'Currency',\n        Description: 'FX Swap',\n        added: 'FIX.5.0SP1',\n        Value: 'FXSWAP',\n        Sort: 4,\n        addedEP: 82,\n        Tag: 167,\n        SymbolicName: 'FXSwap',\n    },\n    {\n        Description: 'Full Restructuring',\n        added: 'FIX.5.0SP1',\n        Value: 'FR',\n        Sort: 0,\n        addedEP: 83,\n        Tag: 1449,\n        SymbolicName: 'FullRestructuring',\n    },\n    {\n        Description: 'Modified Restructuring',\n        added: 'FIX.5.0SP1',\n        Value: 'MR',\n        Sort: 1,\n        addedEP: 83,\n        Tag: 1449,\n        SymbolicName: 'ModifiedRestructuring',\n    },\n    {\n        Description: 'Modified Mod Restructuring',\n        added: 'FIX.5.0SP1',\n        Value: 'MM',\n        Sort: 2,\n        addedEP: 83,\n        Tag: 1449,\n        SymbolicName: 'ModifiedModRestructuring',\n    },\n    {\n        Description: 'No Restructuring specified',\n        added: 'FIX.5.0SP1',\n        Value: 'XR',\n        Sort: 3,\n        addedEP: 83,\n        Tag: 1449,\n        SymbolicName: 'NoRestructuringSpecified',\n    },\n    {\n        Description: 'Senior Secured',\n        added: 'FIX.5.0SP1',\n        Value: 'SD',\n        Sort: 0,\n        addedEP: 83,\n        Tag: 1450,\n        SymbolicName: 'SeniorSecured',\n    },\n    {\n        Description: 'Senior',\n        added: 'FIX.5.0SP1',\n        Value: 'SR',\n        Sort: 1,\n        addedEP: 83,\n        Tag: 1450,\n        SymbolicName: 'Senior',\n    },\n    {\n        Description: 'Subordinated',\n        added: 'FIX.5.0SP1',\n        Value: 'SB',\n        Sort: 2,\n        addedEP: 83,\n        Tag: 1450,\n        SymbolicName: 'Subordinated',\n    },\n    {\n        Description: 'Percent of Par',\n        added: 'FIX.5.0SP1',\n        Value: 'PCTPAR',\n        Sort: 4,\n        addedEP: 83,\n        Tag: 1196,\n        SymbolicName: 'PercentOfPar',\n    },\n    {\n        Description: 'CDS style collateralization of market to market and coupon',\n        added: 'FIX.5.0SP1',\n        Value: 'CDS',\n        Sort: 4,\n        addedEP: 83,\n        Tag: 1197,\n        SymbolicName: 'CDSStyleCollateralization',\n    },\n    {\n        Description: 'CDS in delivery - use recovery rate to calculate obligation',\n        added: 'FIX.5.0SP1',\n        Value: 'CDSD',\n        Sort: 5,\n        addedEP: 83,\n        Tag: 1197,\n        SymbolicName: 'CDSInDeliveryUseRecoveryRateToCalculate',\n    },\n    {\n        Description: 'Initial Trade Coupon Amount',\n        added: 'FIX.5.0SP1',\n        Value: 'ICPN',\n        Sort: 9,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'InitialTradeCouponAmount',\n    },\n    {\n        Description: 'Accrued Coupon Amount',\n        added: 'FIX.5.0SP1',\n        Value: 'ACPN',\n        Sort: 10,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'AccruedCouponAmount',\n    },\n    {\n        Description: 'Coupon Amount',\n        added: 'FIX.5.0SP1',\n        Value: 'CPN',\n        Sort: 11,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'CouponAmount',\n    },\n    {\n        Description: 'Incremental Accrued Coupon',\n        added: 'FIX.5.0SP1',\n        Value: 'IACPN',\n        Sort: 12,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'IncrementalAccruedCoupon',\n    },\n    {\n        Description: 'Collateralized Mark to Market',\n        added: 'FIX.5.0SP1',\n        Value: 'CMTM',\n        Sort: 13,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'CollateralizedMarkToMarket',\n    },\n    {\n        Description: 'Incremental Collateralized Mark to market',\n        added: 'FIX.5.0SP1',\n        Value: 'ICMTM',\n        Sort: 14,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'IncrementalCollateralizedMarkToMarket',\n    },\n    {\n        Description: 'Compensation Amount',\n        added: 'FIX.5.0SP1',\n        Value: 'DLV',\n        Sort: 15,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'CompensationAmount',\n    },\n    {\n        Description: 'Total Banked Amount',\n        added: 'FIX.5.0SP1',\n        Value: 'BANK',\n        Sort: 16,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'TotalBankedAmount',\n    },\n    {\n        Description: 'Total Collateralized Amount',\n        added: 'FIX.5.0SP1',\n        Value: 'COLAT',\n        Sort: 17,\n        addedEP: 83,\n        Tag: 707,\n        SymbolicName: 'TotalCollateralizedAmount',\n    },\n    {\n        Description: 'Credit Event Adjustment',\n        added: 'FIX.5.0SP1',\n        Value: 'CEA',\n        Sort: 25,\n        addedEP: 83,\n        Tag: 703,\n        SymbolicName: 'CreditEventAdjustment',\n    },\n    {\n        Description: 'Succession Event Adjustment',\n        added: 'FIX.5.0SP1',\n        Value: 'SEA',\n        Sort: 26,\n        addedEP: 83,\n        Tag: 703,\n        SymbolicName: 'SuccessionEventAdjustment',\n    },\n    {\n        Description: 'Recovery Rate',\n        added: 'FIX.5.0SP1',\n        Value: 'Y',\n        Sort: 34,\n        addedEP: 83,\n        Tag: 269,\n        SymbolicName: 'RecoveryRate',\n    },\n    {\n        Description: 'Recovery Rate for Long',\n        added: 'FIX.5.0SP1',\n        Value: 'Z',\n        Sort: 35,\n        addedEP: 83,\n        Tag: 269,\n        SymbolicName: 'RecoveryRateForLong',\n    },\n    {\n        Description: 'Recovery Rate for Short',\n        added: 'FIX.5.0SP1',\n        Value: 'a',\n        Sort: 36,\n        addedEP: 83,\n        Tag: 269,\n        SymbolicName: 'RecoveryRateForShort',\n    },\n    {\n        Description: 'Full Curve',\n        added: 'FIX.5.0SP1',\n        Value: '6',\n        Sort: 59,\n        addedEP: 83,\n        Tag: 276,\n        SymbolicName: 'FullCurve',\n    },\n    {\n        Description: 'Flat Curve',\n        added: 'FIX.5.0SP1',\n        Value: '7',\n        Sort: 60,\n        addedEP: 83,\n        Tag: 276,\n        SymbolicName: 'FlatCurve',\n    },\n    {\n        Description: 'Fixing Price',\n        added: 'FIX.5.0SP1',\n        Value: 'W',\n        Sort: 32,\n        addedEP: 84,\n        Tag: 269,\n        SymbolicName: 'FixingPrice',\n    },\n    {\n        Description: 'Cash Rate',\n        added: 'FIX.5.0SP1',\n        Value: 'X',\n        Sort: 33,\n        addedEP: 84,\n        Tag: 269,\n        SymbolicName: 'CashRate',\n    },\n    {\n        Description: 'Post-close',\n        added: 'FIX.5.0SP1',\n        Value: '26',\n        Sort: 100,\n        addedEP: 84,\n        Tag: 326,\n        SymbolicName: 'PostClose',\n    },\n    {\n        Description: 'Cancel for Security Issuer',\n        added: 'FIX.5.0SP1',\n        Value: '7',\n        Sort: 7,\n        addedEP: 85,\n        Tag: 298,\n        SymbolicName: 'CancelForSecurityIssuer',\n    },\n    {\n        Description: 'Cancel for Issuer of Underlying Security',\n        added: 'FIX.5.0SP1',\n        Value: '8',\n        Sort: 8,\n        addedEP: 85,\n        Tag: 298,\n        SymbolicName: 'CancelForIssuerOfUnderlyingSecurity',\n    },\n    {\n        Description: 'Invalid or unknown Security Issuer',\n        added: 'FIX.5.0SP1',\n        Value: '12',\n        Sort: 12,\n        addedEP: 85,\n        Tag: 300,\n        SymbolicName: 'InvalidOrUnknownSecurityIssuer',\n    },\n    {\n        Description: 'Invalid or unknown Issuer of Underlying Security',\n        added: 'FIX.5.0SP1',\n        Value: '13',\n        Sort: 13,\n        addedEP: 85,\n        Tag: 300,\n        SymbolicName: 'InvalidOrUnknownIssuerOfUnderlyingSecurity',\n    },\n    {\n        Description: 'Cancel for Security Issuer',\n        issue: 'SPEC-673',\n        added: 'FIX.5.0SP1',\n        Value: 'B',\n        Sort: 11,\n        addedEP: 85,\n        Tag: 530,\n        SymbolicName: 'CancelOrdersForSecurityIssuer',\n    },\n    {\n        Description: 'Cancel for Issuer of Underlying Security',\n        added: 'FIX.5.0SP1',\n        Value: 'C',\n        Sort: 12,\n        addedEP: 85,\n        Tag: 530,\n        SymbolicName: 'CancelForIssuerOfUnderlyingSecurity',\n    },\n    {\n        Description: 'Cancel Orders for a Securities Issuer',\n        added: 'FIX.5.0SP1',\n        Value: 'B',\n        Sort: 11,\n        addedEP: 85,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForASecuritiesIssuer',\n    },\n    {\n        Description: 'Cancel Orders for Issuer of Underlying Security',\n        added: 'FIX.5.0SP1',\n        Value: 'C',\n        Sort: 12,\n        addedEP: 85,\n        Tag: 531,\n        SymbolicName: 'CancelOrdersForIssuerOfUnderlyingSecurity',\n    },\n    {\n        Description: 'Invalid or unknown Security Issuer',\n        added: 'FIX.5.0SP1',\n        Value: '10',\n        Sort: 11,\n        addedEP: 85,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownSecurityIssuer',\n    },\n    {\n        Description: 'Invalid or unknown Issuer of Underlying Security',\n        added: 'FIX.5.0SP1',\n        Value: '11',\n        Sort: 12,\n        addedEP: 85,\n        Tag: 532,\n        SymbolicName: 'InvalidOrUnknownIssuerOfUnderlyingSecurity',\n    },\n    {\n        Description: 'Status for Security Issuer',\n        added: 'FIX.5.0SP1',\n        Value: '9',\n        Sort: 9,\n        addedEP: 85,\n        Tag: 585,\n        SymbolicName: 'StatusForSecurityIssuer',\n    },\n    {\n        Description: 'Status for Issuer of Underlying Security',\n        added: 'FIX.5.0SP1',\n        Value: '10',\n        Sort: 10,\n        addedEP: 85,\n        Tag: 585,\n        SymbolicName: 'StatusForIssuerOfUnderlyingSecurity',\n    },\n    {\n        Description: 'Cancel for Security Issuer',\n        added: 'FIX.5.0SP1',\n        Value: '11',\n        Sort: 11,\n        addedEP: 85,\n        Tag: 1374,\n        SymbolicName: 'CancelForSecurityIssuer',\n    },\n    {\n        Description: 'Cancel for Issuer of Underlying Security',\n        added: 'FIX.5.0SP1',\n        Value: '12',\n        Sort: 12,\n        addedEP: 85,\n        Tag: 1374,\n        SymbolicName: 'CancelForIssuerOfUnderlyingSecurity',\n    },\n    {\n        Description: 'Invalid or unknown Security Issuer',\n        added: 'FIX.5.0SP1',\n        Value: '10',\n        Sort: 10,\n        addedEP: 85,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownSecurityIssuer',\n    },\n    {\n        Description: 'Invalid or unknown Issuer of Underlying Security',\n        added: 'FIX.5.0SP1',\n        Value: '11',\n        Sort: 11,\n        addedEP: 85,\n        Tag: 1376,\n        SymbolicName: 'InvalidOrUnknownIssuerOfUnderlyingSecurity',\n    },\n    {\n        Description: 'News Dissemination',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 86,\n        Tag: 327,\n        SymbolicName: 'NewsDissemination',\n    },\n    {\n        Description: 'Order Influx',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 86,\n        Tag: 327,\n        SymbolicName: 'OrderInflux',\n    },\n    {\n        Description: 'Order Imbalance',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 86,\n        Tag: 327,\n        SymbolicName: 'OrderImbalance',\n    },\n    {\n        Description: 'Additional Information',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 86,\n        Tag: 327,\n        SymbolicName: 'AdditionalInformation',\n    },\n    {\n        Description: 'News Pending',\n        added: 'FIX.5.0SP1',\n        updatedEP: 95,\n        Value: '4',\n        Sort: 4,\n        addedEP: 86,\n        Tag: 327,\n        SymbolicName: 'NewsPending',\n        updated: 'FIX.5.0SP1',\n    },\n    {\n        Description: 'Equipment Changeover',\n        added: 'FIX.5.0SP1',\n        Value: '5',\n        Sort: 5,\n        addedEP: 86,\n        Tag: 327,\n        SymbolicName: 'EquipmentChangeover',\n    },\n    {\n        Description: 'Industry Classification',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 87,\n        Tag: 1470,\n        SymbolicName: 'IndustryClassification',\n    },\n    {\n        Description: 'Trading List',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 87,\n        Tag: 1470,\n        SymbolicName: 'TradingList',\n    },\n    {\n        Description: 'Market / Market Segment List',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 87,\n        Tag: 1470,\n        SymbolicName: 'Market',\n    },\n    {\n        Description: 'Newspaper List',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 87,\n        Tag: 1470,\n        SymbolicName: 'NewspaperList',\n    },\n    {\n        Description: 'ICB (Industry Classification Benchmark) published by Dow Jones and FTSE - www.icbenchmark.com',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 87,\n        Tag: 1471,\n        SymbolicName: 'ICB',\n    },\n    {\n        Description:\n            'NAICS (North American Industry Classification System). Replaced SIC (Standard Industry Classification) www.census.gov/naics or  www.naics.com.',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 87,\n        Tag: 1471,\n        SymbolicName: 'NAICS',\n    },\n    {\n        Description: 'GICS (Global Industry Classification Standard) published by Standards & Poor',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 87,\n        Tag: 1471,\n        SymbolicName: 'GICS',\n    },\n    {\n        Group: 'Variable Quantity UOM',\n        Description: 'Allowances',\n        added: 'FIX.5.0SP1',\n        Value: 'Alw',\n        Sort: 13,\n        addedEP: 89,\n        Tag: 996,\n        SymbolicName: 'Allowances',\n    },\n    {\n        Description: 'Company News',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 90,\n        Tag: 1473,\n        SymbolicName: 'CompanyNews',\n    },\n    {\n        Description: 'Marketplace News',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 90,\n        Tag: 1473,\n        SymbolicName: 'MarketplaceNews',\n    },\n    {\n        Description: 'Financial Market News',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 90,\n        Tag: 1473,\n        SymbolicName: 'FinancialMarketNews',\n    },\n    {\n        Description: 'Technical News',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 90,\n        Tag: 1473,\n        SymbolicName: 'TechnicalNews',\n    },\n    {\n        Description: 'Other News',\n        added: 'FIX.5.0SP1',\n        Value: '99',\n        Sort: 99,\n        addedEP: 90,\n        Tag: 1473,\n        SymbolicName: 'OtherNews',\n    },\n    {\n        Description: 'Replacement',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 90,\n        Tag: 1477,\n        SymbolicName: 'Replacement',\n    },\n    {\n        Description: 'Other Language',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 90,\n        Tag: 1477,\n        SymbolicName: 'OtherLanguage',\n    },\n    {\n        Description: 'Complimentary',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 90,\n        Tag: 1477,\n        SymbolicName: 'Complimentary',\n    },\n    {\n        Description: 'Application message re-send completed.',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 91,\n        Tag: 1426,\n        SymbolicName: 'ResendComplete',\n    },\n    {\n        Description: 'Fixed Strike',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 92,\n        Tag: 1478,\n        SymbolicName: 'FixedStrike',\n    },\n    {\n        Description: 'Strike set at expiration to underlying or other value (lookback floating)',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 92,\n        Tag: 1478,\n        SymbolicName: 'StrikeSetAtExpiration',\n    },\n    {\n        Description: 'Strike set to average of underlying settlement price across the life of the option',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 92,\n        Tag: 1478,\n        SymbolicName: 'StrikeSetToAverageAcrossLife',\n    },\n    {\n        Description: 'Strike set to optimal value',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 92,\n        Tag: 1478,\n        SymbolicName: 'StrikeSetToOptimalValue',\n    },\n    {\n        Description: 'Less than underlying price is in-the-money (ITM)',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 92,\n        Tag: 1479,\n        SymbolicName: 'LessThan',\n    },\n    {\n        Description: 'Less than or equal to the underlying price is in-the-money(ITM)',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 92,\n        Tag: 1479,\n        SymbolicName: 'LessThanOrEqual',\n    },\n    {\n        Description: 'Equal to the underlying price is in-the-money(ITM)',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 92,\n        Tag: 1479,\n        SymbolicName: 'Equal',\n    },\n    {\n        Description: 'Greater than or equal to underlying price is in-the-money(ITM)',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 92,\n        Tag: 1479,\n        SymbolicName: 'GreaterThanOrEqual',\n    },\n    {\n        Description: 'Greater than underlying is in-the-money(ITM)',\n        added: 'FIX.5.0SP1',\n        Value: '5',\n        Sort: 5,\n        addedEP: 92,\n        Tag: 1479,\n        SymbolicName: 'GreaterThan',\n    },\n    {\n        Description: 'Regular',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 92,\n        Tag: 1481,\n        SymbolicName: 'Regular',\n    },\n    {\n        Description: 'Special reference',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 92,\n        Tag: 1481,\n        SymbolicName: 'SpecialReference',\n    },\n    {\n        Description: 'Optimal value (Lookback)',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 92,\n        Tag: 1481,\n        SymbolicName: 'OptimalValue',\n    },\n    {\n        Description: 'Average value (Asian option)',\n        issue: 'SPEC-672',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 92,\n        Tag: 1481,\n        SymbolicName: 'AverageValue',\n    },\n    {\n        Description: 'Vanilla',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 92,\n        Tag: 1482,\n        SymbolicName: 'Vanilla',\n    },\n    {\n        Description: 'Capped',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 92,\n        Tag: 1482,\n        SymbolicName: 'Capped',\n    },\n    {\n        Description: 'Binary',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 92,\n        Tag: 1482,\n        SymbolicName: 'Binary',\n    },\n    {\n        Description: 'Capped',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'Capped',\n    },\n    {\n        Description: 'Trigger',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'Trigger',\n    },\n    {\n        Description: 'Knock-in up',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'KnockInUp',\n    },\n    {\n        Description: 'Kock-in down',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'KockInDown',\n    },\n    {\n        Description: 'Knock-out up',\n        added: 'FIX.5.0SP1',\n        Value: '5',\n        Sort: 5,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'KnockOutUp',\n    },\n    {\n        Description: 'Knock-out down',\n        added: 'FIX.5.0SP1',\n        Value: '6',\n        Sort: 6,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'KnockOutDown',\n    },\n    {\n        Description: 'Underlying',\n        added: 'FIX.5.0SP1',\n        Value: '7',\n        Sort: 7,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'Underlying',\n    },\n    {\n        Description: 'Reset Barrier',\n        added: 'FIX.5.0SP1',\n        Value: '8',\n        Sort: 8,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'ResetBarrier',\n    },\n    {\n        Description: 'Rolling Barrier',\n        added: 'FIX.5.0SP1',\n        Value: '9',\n        Sort: 9,\n        addedEP: 92,\n        Tag: 1484,\n        SymbolicName: 'RollingBarrier',\n    },\n    {\n        Description: 'Less than ComplexEventPrice(1486)',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 92,\n        Tag: 1487,\n        SymbolicName: 'LessThanComplexEventPrice',\n    },\n    {\n        Description: 'Less than or equal to ComplexEventPrice(1486)',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 92,\n        Tag: 1487,\n        SymbolicName: 'LessThanOrEqualToComplexEventPrice',\n    },\n    {\n        Description: 'Equal to ComplexEventPrice(1486)',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 92,\n        Tag: 1487,\n        SymbolicName: 'EqualToComplexEventPrice',\n    },\n    {\n        Description: 'Greater than or equal to ComplexEventPrice(1486)',\n        added: 'FIX.5.0SP1',\n        Value: '4',\n        Sort: 4,\n        addedEP: 92,\n        Tag: 1487,\n        SymbolicName: 'GreaterThanOrEqualToComplexEventPrice',\n    },\n    {\n        Description: 'Greater than ComplexEventPrice(1486)',\n        added: 'FIX.5.0SP1',\n        Value: '5',\n        Sort: 5,\n        addedEP: 92,\n        Tag: 1487,\n        SymbolicName: 'GreaterThanComplexEventPrice',\n    },\n    {\n        Description: 'Expiration',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 92,\n        Tag: 1489,\n        SymbolicName: 'Expiration',\n    },\n    {\n        Description: 'Immediate (At Any Time)',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 92,\n        Tag: 1489,\n        SymbolicName: 'Immediate',\n    },\n    {\n        Description: 'Specified Date/Time',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 92,\n        Tag: 1489,\n        SymbolicName: 'SpecifiedDate',\n    },\n    {\n        Description: 'And',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 92,\n        Tag: 1490,\n        SymbolicName: 'And',\n    },\n    {\n        Description: 'Or',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 92,\n        Tag: 1490,\n        SymbolicName: 'Or',\n    },\n    {\n        Description: 'Stream assignment for new customer(s)',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 93,\n        Tag: 1498,\n        SymbolicName: 'StreamAssignmentForNewCustomer',\n    },\n    {\n        Description: 'Stream assignment for existing customer(s)',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 93,\n        Tag: 1498,\n        SymbolicName: 'StreamAssignmentForExistingCustomer',\n    },\n    {\n        Description: 'Unknown client',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 93,\n        Tag: 1502,\n        SymbolicName: 'UnknownClient',\n    },\n    {\n        Description: 'Exceeds maximum size',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 93,\n        Tag: 1502,\n        SymbolicName: 'ExceedsMaximumSize',\n    },\n    {\n        Description: 'Unknown or Invalid currency pair',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 93,\n        Tag: 1502,\n        SymbolicName: 'UnknownOrInvalidCurrencyPair',\n    },\n    {\n        Description: 'No available stream',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 93,\n        Tag: 1502,\n        SymbolicName: 'NoAvailableStream',\n    },\n    {\n        Description: 'Other',\n        added: 'FIX.5.0SP1',\n        Value: '99',\n        Sort: 99,\n        addedEP: 93,\n        Tag: 1502,\n        SymbolicName: 'Other',\n    },\n    {\n        Description: 'Assignment Accepted',\n        added: 'FIX.5.0SP1',\n        Value: '0',\n        Sort: 0,\n        addedEP: 93,\n        Tag: 1503,\n        SymbolicName: 'AssignmentAccepted',\n    },\n    {\n        Description: 'Assignment Rejected',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 93,\n        Tag: 1503,\n        SymbolicName: 'AssignmentRejected',\n    },\n    {\n        Description: 'Assignment',\n        added: 'FIX.5.0SP1',\n        Value: '1',\n        Sort: 1,\n        addedEP: 93,\n        Tag: 1617,\n        SymbolicName: 'Assignment',\n    },\n    {\n        Description: 'Rejected',\n        added: 'FIX.5.0SP1',\n        Value: '2',\n        Sort: 2,\n        addedEP: 93,\n        Tag: 1617,\n        SymbolicName: 'Rejected',\n    },\n    {\n        Description: 'Terminate/Unassign',\n        added: 'FIX.5.0SP1',\n        Value: '3',\n        Sort: 3,\n        addedEP: 93,\n        Tag: 1617,\n        SymbolicName: 'Terminate',\n    },\n    {\n        Description: 'Agent',\n        added: 'FIX.5.0SP1',\n        Value: 'A',\n        Sort: 0,\n        addedEP: 95,\n        Tag: 1048,\n        SymbolicName: 'Agent',\n    },\n    {\n        Description: 'Principal',\n        added: 'FIX.5.0SP1',\n        Value: 'P',\n        Sort: 1,\n        addedEP: 95,\n        Tag: 1048,\n        SymbolicName: 'Principal',\n    },\n    {\n        Description: 'Riskless Principal',\n        added: 'FIX.5.0SP1',\n        Value: 'R',\n        Sort: 2,\n        addedEP: 95,\n        Tag: 1048,\n        SymbolicName: 'RisklessPrincipal',\n    },\n    {\n        Description: 'Pro rata',\n        issue: 'SPEC-384',\n        added: 'FIX.4.4',\n        Value: 'P',\n        Sort: 1,\n        addedEP: 4,\n        Tag: 1049,\n        SymbolicName: 'ProRata',\n    },\n    {\n        Description: 'Random',\n        issue: 'SPEC-384',\n        added: 'FIX.4.4',\n        Value: 'R',\n        Sort: 2,\n        addedEP: 4,\n        Tag: 1049,\n        SymbolicName: 'Random',\n    },\n    {\n        Description: 'Other',\n        added: 'FIX.5.0SP1',\n        Value: '99',\n        Sort: 99,\n        addedEP: 95,\n        Tag: 88,\n        SymbolicName: 'Other',\n    },\n    {\n        Description: 'Country',\n        added: 'FIX.5.0SP1',\n        Value: '25',\n        Sort: 25,\n        addedEP: 95,\n        Tag: 959,\n        SymbolicName: 'Country',\n    },\n    {\n        Description: 'Language',\n        added: 'FIX.5.0SP1',\n        Value: '26',\n        Sort: 26,\n        addedEP: 95,\n        Tag: 959,\n        SymbolicName: 'Language',\n    },\n    {\n        Description: 'TZTimeOnly',\n        added: 'FIX.5.0SP1',\n        Value: '27',\n        Sort: 27,\n        addedEP: 95,\n        Tag: 959,\n        SymbolicName: 'TZTimeOnly',\n    },\n    {\n        Description: 'TZTimestamp',\n        added: 'FIX.5.0SP1',\n        Value: '28',\n        Sort: 28,\n        addedEP: 95,\n        Tag: 959,\n        SymbolicName: 'TZTimestamp',\n    },\n    {\n        Description: 'Tenor',\n        added: 'FIX.5.0SP1',\n        Value: '29',\n        Sort: 29,\n        addedEP: 95,\n        Tag: 959,\n        SymbolicName: 'Tenor',\n    },\n    {\n        Description: 'Clearing Account',\n        added: 'FIX.5.0SP1',\n        Value: '83',\n        Sort: 83,\n        addedEP: 96,\n        Tag: 452,\n        SymbolicName: 'ClearingAccount',\n    },\n    {\n        Description: 'Acceptable Settling Counterparty',\n        added: 'FIX.5.0SP1',\n        Value: '84',\n        Sort: 84,\n        addedEP: 96,\n        Tag: 452,\n        SymbolicName: 'AcceptableSettlingCounterparty',\n    },\n    {\n        Description: 'Unacceptable Settling Counterparty',\n        added: 'FIX.5.0SP1',\n        Value: '85',\n        Sort: 85,\n        addedEP: 96,\n        Tag: 452,\n        SymbolicName: 'UnacceptableSettlingCounterparty',\n    },\n    {\n        Description: 'FIX50SP2',\n        added: 'FIX.5.0SP1',\n        Value: '9',\n        Sort: 9,\n        addedEP: 97,\n        Tag: 1128,\n        SymbolicName: 'FIX50SP2',\n    },\n    {\n        Elaboration:\n            'The Heartbeat monitors the status of the communication link and identifies when the last of a string of messages was not received.',\n        Group: '',\n        Description: 'Heartbeat',\n        Value: '0',\n        Sort: 0,\n        Tag: 35,\n        SymbolicName: 'Heartbeat',\n    },\n    {\n        Elaboration:\n            'The test request message forces a heartbeat from the opposing application. The test request message checks sequence numbers or verifies communication line status. The opposite application responds to the Test Request with a Heartbeat containing the TestReqID.',\n        Group: '',\n        Description: 'TestRequest',\n        Value: '1',\n        Sort: 1,\n        Tag: 35,\n        SymbolicName: 'TestRequest',\n    },\n    {\n        Elaboration:\n            'The resend request is sent by the receiving application to initiate the retransmission of messages. This function is utilized if a sequence number gap is detected, if the receiving application lost a message, or as a function of the initialization process.',\n        Group: '',\n        Description: 'ResendRequest',\n        Value: '2',\n        Sort: 2,\n        Tag: 35,\n        SymbolicName: 'ResendRequest',\n    },\n    {\n        Elaboration:\n            'The reject message should be issued when a message is received but cannot be properly processed due to a session-level rule violation. An example of when a reject may be appropriate would be the receipt of a message with invalid basic data which successfully passes de-encryption, CheckSum and BodyLength checks.',\n        Group: '',\n        Description: 'Reject',\n        Value: '3',\n        Sort: 3,\n        Tag: 35,\n        SymbolicName: 'Reject',\n    },\n    {\n        Elaboration:\n            'The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side.',\n        Group: '',\n        Description: 'SequenceReset',\n        Value: '4',\n        Sort: 4,\n        Tag: 35,\n        SymbolicName: 'SequenceReset',\n    },\n    {\n        Elaboration:\n            'The logout message initiates or confirms the termination of a FIX session. Disconnection without the exchange of logout messages should be interpreted as an abnormal condition.',\n        Group: '',\n        Description: 'Logout',\n        Value: '5',\n        Sort: 5,\n        Tag: 35,\n        SymbolicName: 'Logout',\n    },\n    {\n        Elaboration:\n            'Indication of interest messages are used to market merchandise which the broker is buying or selling in either a proprietary or agency capacity. The indications can be time bound with a specific expiration value. Indications are distributed with the understanding that other firms may react to the message first and that the merchandise may no longer be available due to prior trade.\\nIndication messages can be transmitted in various transaction types; NEW, CANCEL, and REPLACE. All message types other than NEW modify the state of the message identified in IOIRefID.',\n        Group: '',\n        Description: 'IOI',\n        Value: '6',\n        Sort: 6,\n        Tag: 35,\n        SymbolicName: 'IOI',\n    },\n    {\n        Elaboration:\n            'Advertisement messages are used to announce completed transactions. The advertisement message can be transmitted in various transaction types; NEW, CANCEL and REPLACE. All message types other than NEW modify the state of a previously transmitted advertisement identified in AdvRefID.',\n        Group: '',\n        Description: 'Advertisement',\n        Value: '7',\n        Sort: 7,\n        Tag: 35,\n        SymbolicName: 'Advertisement',\n    },\n    {\n        Elaboration:\n            'The execution report message is used to:\\n1. confirm the receipt of an order\\n2. confirm changes to an existing order (i.e. accept cancel and replace requests)\\n3. relay order status information\\n4. relay fill information on working orders\\n5. relay fill information on tradeable or restricted tradeable quotes\\n6. reject orders\\n7. report post-trade fees calculations associated with a trade',\n        Group: '',\n        Description: 'ExecutionReport',\n        Value: '8',\n        Sort: 8,\n        Tag: 35,\n        SymbolicName: 'ExecutionReport',\n    },\n    {\n        Elaboration:\n            'The order cancel reject message is issued by the broker upon receipt of a cancel request or cancel/replace request message which cannot be honored.',\n        Group: '',\n        Description: 'OrderCancelReject',\n        Value: '9',\n        Sort: 9,\n        Tag: 35,\n        SymbolicName: 'OrderCancelReject',\n    },\n    {\n        Elaboration:\n            'The logon message authenticates a user establishing a connection to a remote system. The logon message must be the first message sent by the application requesting to initiate a FIX session.',\n        Group: '',\n        Description: 'Logon',\n        Value: 'A',\n        Sort: 10,\n        Tag: 35,\n        SymbolicName: 'Logon',\n    },\n    {\n        Elaboration:\n            'The Derivative Security List message is used to return a list of securities that matches the criteria specified in a Derivative Security List Request.',\n        Group: '',\n        Description: 'DerivativeSecurityList',\n        Value: 'AA',\n        Sort: 11,\n        Tag: 35,\n        SymbolicName: 'DerivativeSecurityList',\n    },\n    {\n        Elaboration:\n            'The New Order - Multileg is provided to submit orders for securities that are made up of multiple securities, known as legs.',\n        Group: '',\n        Description: 'NewOrderMultileg',\n        Value: 'AB',\n        Sort: 12,\n        Tag: 35,\n        SymbolicName: 'NewOrderMultileg',\n    },\n    {\n        Elaboration:\n            'Used to modify a multileg order previously submitted using the New Order - Multileg message. See Order Cancel Replace Request for details concerning message usage.',\n        Group: '',\n        Description: 'MultilegOrderCancelReplace',\n        Value: 'AC',\n        Sort: 13,\n        Tag: 35,\n        SymbolicName: 'MultilegOrderCancelReplace',\n    },\n    {\n        Elaboration:\n            'The Trade Capture Report Request can be used to:\\n\u2022 Request one or more trade capture reports based upon selection criteria provided on the trade capture report request\\n\u2022 Subscribe for trade capture reports based upon selection criteria provided on the trade capture report request.',\n        Group: '',\n        Description: 'TradeCaptureReportRequest',\n        Value: 'AD',\n        Sort: 14,\n        Tag: 35,\n        SymbolicName: 'TradeCaptureReportRequest',\n    },\n    {\n        Elaboration:\n            'The Trade Capture Report message can be:\\n\u2022 Used to report trades between counterparties.\\n\u2022 Used to report trades to a trade matching system\\n\u2022 Can be sent unsolicited between counterparties.\\n\u2022 Sent as a reply to a Trade Capture Report Request.\\n\u2022 Can be used to report unmatched and matched trades.',\n        Group: '',\n        Description: 'TradeCaptureReport',\n        Value: 'AE',\n        Sort: 15,\n        Tag: 35,\n        SymbolicName: 'TradeCaptureReport',\n    },\n    {\n        Elaboration:\n            'The order mass status request message requests the status for orders matching criteria specified within the request.',\n        Group: '',\n        Description: 'OrderMassStatusRequest',\n        Value: 'AF',\n        Sort: 16,\n        Tag: 35,\n        SymbolicName: 'OrderMassStatusRequest',\n    },\n    {\n        Elaboration:\n            'The Quote Request Reject message is used to reject Quote Request messages for all quoting models.',\n        Group: '',\n        Description: 'QuoteRequestReject',\n        Value: 'AG',\n        Sort: 17,\n        Tag: 35,\n        SymbolicName: 'QuoteRequestReject',\n    },\n    {\n        Elaboration:\n            'In tradeable and restricted tradeable quoting markets \u2013 Quote Requests are issued by counterparties interested in ascertaining the market for an instrument. Quote Requests are then distributed by the market to liquidity providers who make markets in the instrument. The RFQ Request is used by liquidity providers to indicate to the market for which instruments they are interested in receiving Quote Requests. It can be used to register interest in receiving quote requests for a single instrument or for multiple instruments',\n        Group: '',\n        Description: 'RFQRequest',\n        Value: 'AH',\n        Sort: 18,\n        Tag: 35,\n        SymbolicName: 'RFQRequest',\n    },\n    {\n        Elaboration:\n            'The quote status report message is used:\\n\u2022 as the response to a Quote Status Request message\\n\u2022 as a response to a Quote Cancel message\\n\u2022 as a response to a Quote Response message in a negotiation dialog (see Volume 7 \u2013 PRODUCT: FIXED INCOME and USER GROUP: EXCHANGES AND MARKETS)',\n        Group: '',\n        Description: 'QuoteStatusReport',\n        Value: 'AI',\n        Sort: 19,\n        Tag: 35,\n        SymbolicName: 'QuoteStatusReport',\n    },\n    {\n        Elaboration:\n            'The Quote Response message is used to respond to a IOI message or Quote message. It is also used to counter a Quote or end a negotiation dialog.',\n        Group: '',\n        Description: 'QuoteResponse',\n        Value: 'AJ',\n        Sort: 20,\n        Tag: 35,\n        SymbolicName: 'QuoteResponse',\n    },\n    {\n        Elaboration:\n            'The Confirmation messages are used to provide individual trade level confirmations from the sell side to the buy side. In versions of FIX prior to version 4.4, this role was performed by the allocation message. Unlike the allocation message, the confirmation message operates at an allocation account (trade) level rather than block level, allowing for the affirmation or rejection of individual confirmations.',\n        Group: '',\n        Description: 'Confirmation',\n        Value: 'AK',\n        Sort: 21,\n        Tag: 35,\n        SymbolicName: 'Confirmation',\n    },\n    {\n        Elaboration:\n            'The Position Maintenance Request message allows the position owner to submit requests to the holder of a position which will result in a specific action being taken which will affect the position. Generally, the holder of the position is a central counter party or clearing organization but can also be a party providing investment services.',\n        Group: '',\n        Description: 'PositionMaintenanceRequest',\n        Value: 'AL',\n        Sort: 22,\n        Tag: 35,\n        SymbolicName: 'PositionMaintenanceRequest',\n    },\n    {\n        Elaboration:\n            'The Position Maintenance Report message is sent by the holder of a positon in response to a Position Maintenance Request and is used to confirm that a request has been successfully processed or rejected.',\n        Group: '',\n        Description: 'PositionMaintenanceReport',\n        Value: 'AM',\n        Sort: 23,\n        Tag: 35,\n        SymbolicName: 'PositionMaintenanceReport',\n    },\n    {\n        Elaboration:\n            'The Request For Positions message is used by the owner of a position to request a Position Report from the holder of the position, usually the central counter party or clearing organization. The request can be made at several levels of granularity.',\n        Group: '',\n        Description: 'RequestForPositions',\n        Value: 'AN',\n        Sort: 24,\n        Tag: 35,\n        SymbolicName: 'RequestForPositions',\n    },\n    {\n        Elaboration:\n            'The Request for Positions Ack message is returned by the holder of the position in response to a Request for Positions message. The purpose of the message is to acknowledge that a request has been received and is being processed.',\n        Group: '',\n        Description: 'RequestForPositionsAck',\n        Value: 'AO',\n        Sort: 25,\n        Tag: 35,\n        SymbolicName: 'RequestForPositionsAck',\n    },\n    {\n        Elaboration:\n            'The Position Report message is returned by the holder of a position in response to a Request for Position message. The purpose of the message is to report all aspects of a position and may be provided on a standing basis to report end of day positions to an owner.',\n        Group: '',\n        Description: 'PositionReport',\n        Value: 'AP',\n        Sort: 26,\n        Tag: 35,\n        SymbolicName: 'PositionReport',\n    },\n    {\n        Elaboration:\n            'The Trade Capture Request Ack message is used to:\\n\u2022 Provide an acknowledgement to a Trade Capture Report Request in the case where the Trade Capture Report Request is used to specify a subscription or delivery of reports via an out-of-band ResponseTransmissionMethod.\\n\u2022 Provide an acknowledgement to a Trade Capture Report Request in the case when the return of the Trade Capture Reports matching that request will be delayed or delivered asynchronously. This is useful in distributed trading system environments.\\n\u2022 Indicate that no trades were found that matched the selection criteria specified on the Trade Capture Report Request\\n\u2022 The Trade Capture Request was invalid for some business reason, such as request is not authorized, invalid or unknown instrument, party, trading session, etc.',\n        Group: '',\n        Description: 'TradeCaptureReportRequestAck',\n        Value: 'AQ',\n        Sort: 27,\n        Tag: 35,\n        SymbolicName: 'TradeCaptureReportRequestAck',\n    },\n    {\n        Elaboration:\n            'The Trade Capture Report Ack message can be:\\n\u2022 Used to acknowledge trade capture reports received from a counterparty\\n\u2022 Used to reject a trade capture report received from a counterparty',\n        Group: '',\n        Description: 'TradeCaptureReportAck',\n        Value: 'AR',\n        Sort: 28,\n        Tag: 35,\n        SymbolicName: 'TradeCaptureReportAck',\n    },\n    {\n        Elaboration:\n            'Sent from sell-side to buy-side, sell-side to 3rd-party or 3rd-party to buy-side, the Allocation Report (Claim) provides account breakdown of an order or set of orders plus any additional follow-up front-office information developed post-trade during the trade allocation, matching and calculation phase. In versions of FIX prior to version 4.4, this functionality was provided through the Allocation message. Depending on the needs of the market and the timing of \"confirmed\" status, the role of Allocation Report can be taken over in whole or in part by the Confirmation message.',\n        Group: '',\n        Description: 'AllocationReport',\n        Value: 'AS',\n        Sort: 29,\n        Tag: 35,\n        SymbolicName: 'AllocationReport',\n    },\n    {\n        Elaboration:\n            'The Allocation Report Ack message is used to acknowledge the receipt of and provide status for an Allocation Report message.',\n        Group: '',\n        Description: 'AllocationReportAck',\n        Value: 'AT',\n        Sort: 30,\n        Tag: 35,\n        SymbolicName: 'AllocationReportAck',\n    },\n    {\n        Elaboration: 'The Confirmation Ack (aka Affirmation) message is used to respond to a Confirmation message.',\n        Group: '',\n        Description: 'ConfirmationAck',\n        Value: 'AU',\n        Sort: 31,\n        Tag: 35,\n        SymbolicName: 'ConfirmationAck',\n    },\n    {\n        Elaboration:\n            'The Settlement Instruction Request message is used to request standing settlement instructions from another party.',\n        Group: '',\n        Description: 'SettlementInstructionRequest',\n        Value: 'AV',\n        Sort: 32,\n        Tag: 35,\n        SymbolicName: 'SettlementInstructionRequest',\n    },\n    {\n        Elaboration:\n            'Assignment Reports are sent from a clearing house to counterparties, such as a clearing firm as a result of the assignment process.',\n        Group: '',\n        Description: 'AssignmentReport',\n        Value: 'AW',\n        Sort: 33,\n        Tag: 35,\n        SymbolicName: 'AssignmentReport',\n    },\n    {\n        Elaboration:\n            'An initiator that requires collateral from a respondent sends a Collateral Request. The initiator can be either counterparty to a trade in a two party model or an intermediary such as an ATS or clearinghouse in a three party model. A Collateral Assignment is expected as a response to a request for collateral.',\n        Group: '',\n        Description: 'CollateralRequest',\n        Value: 'AX',\n        Sort: 34,\n        Tag: 35,\n        SymbolicName: 'CollateralRequest',\n    },\n    {\n        Elaboration:\n            'Used to assign collateral to cover a trading position. This message can be sent unsolicited or in reply to a Collateral Request message.',\n        Group: '',\n        Description: 'CollateralAssignment',\n        Value: 'AY',\n        Sort: 35,\n        Tag: 35,\n        SymbolicName: 'CollateralAssignment',\n    },\n    {\n        Elaboration: 'Used to respond to a Collateral Assignment message.',\n        Group: '',\n        Description: 'CollateralResponse',\n        Value: 'AZ',\n        Sort: 36,\n        Tag: 35,\n        SymbolicName: 'CollateralResponse',\n    },\n    {\n        Elaboration:\n            \"The news message is a general free format message between the broker and institution. The message contains flags to identify the news item's urgency and to allow sorting by subject company (symbol). The News message can be originated at either the broker or institution side, or exchanges and other marketplace venues.\",\n        Group: '',\n        Description: 'News',\n        Value: 'B',\n        Sort: 37,\n        Tag: 35,\n        SymbolicName: 'News',\n    },\n    {\n        Elaboration: 'Used to report collateral status when responding to a Collateral Inquiry message.',\n        Group: '',\n        Description: 'CollateralReport',\n        Value: 'BA',\n        Sort: 38,\n        Tag: 35,\n        SymbolicName: 'CollateralReport',\n    },\n    {\n        Elaboration: 'Used to inquire for collateral status.',\n        Group: '',\n        Description: 'CollateralInquiry',\n        Value: 'BB',\n        Sort: 39,\n        Tag: 35,\n        SymbolicName: 'CollateralInquiry',\n    },\n    {\n        Elaboration:\n            'This message is send either immediately after logging on to inform a network (counterparty system) of the type of updates required or to at any other time in the FIX conversation to change the nature of the types of status updates required. It can also be used with a NetworkRequestType of Snapshot to request a one-off report of the status of a network (or counterparty) system. Finally this message can also be used to cancel a request to receive updates into the status of the counterparties on a network by sending a NetworkRequestStatusMessage with a NetworkRequestType of StopSubscribing.',\n        Group: '',\n        Description: 'NetworkCounterpartySystemStatusRequest',\n        Value: 'BC',\n        Sort: 40,\n        Tag: 35,\n        SymbolicName: 'NetworkCounterpartySystemStatusRequest',\n    },\n    {\n        Elaboration: 'This message is sent in response to a Network (Counterparty System) Status Request Message.',\n        Group: '',\n        Description: 'NetworkCounterpartySystemStatusResponse',\n        Value: 'BD',\n        Sort: 41,\n        Tag: 35,\n        SymbolicName: 'NetworkCounterpartySystemStatusResponse',\n    },\n    {\n        Elaboration:\n            \"This message is used to initiate a user action, logon, logout or password change. It can also be used to request a report on a user's status.\",\n        Group: '',\n        Description: 'UserRequest',\n        Value: 'BE',\n        Sort: 42,\n        Tag: 35,\n        SymbolicName: 'UserRequest',\n    },\n    {\n        Elaboration:\n            'This message is used to respond to a user request message, it reports the status of the user after the completion of any action requested in the user request message.',\n        Group: '',\n        Description: 'UserResponse',\n        Value: 'BF',\n        Sort: 43,\n        Tag: 35,\n        SymbolicName: 'UserResponse',\n    },\n    {\n        Elaboration:\n            'Used to respond to a Collateral Inquiry in the following situations:\\n\u2022 When the CollateralInquiry will result in an out of band response (such as a file transfer).\\n\u2022 When the inquiry is otherwise valid but no collateral is found to match the criteria specified on the Collateral Inquiry message.\\n\u2022 When the Collateral Inquiry is invalid based upon the business rules of the counterparty.',\n        Group: '',\n        Description: 'CollateralInquiryAck',\n        Value: 'BG',\n        Sort: 44,\n        Tag: 35,\n        SymbolicName: 'CollateralInquiryAck',\n    },\n    {\n        Elaboration: 'The Confirmation Request message is used to request a Confirmation message.',\n        Group: '',\n        Description: 'ConfirmationRequest',\n        Value: 'BH',\n        Sort: 45,\n        Tag: 35,\n        SymbolicName: 'ConfirmationRequest',\n    },\n    {\n        Elaboration:\n            'The Trading Session List Request is used to request a list of trading sessions available in a market place and the state of those trading sessions. A successful request will result in a response from the counterparty of a Trading Session List (MsgType=BJ) message that contains a list of zero or more trading sessions.',\n        Group: '',\n        Description: 'TradingSessionListRequest',\n        Value: 'BI',\n        Sort: 46,\n        Tag: 35,\n        SymbolicName: 'TradingSessionListRequest',\n    },\n    {\n        Elaboration:\n            'The Trading Session List message is sent as a response to a Trading Session List Request. The Trading Session List should contain the characteristics of the trading session and the current state of the trading session.',\n        Group: '',\n        Description: 'TradingSessionList',\n        Value: 'BJ',\n        Sort: 47,\n        Tag: 35,\n        SymbolicName: 'TradingSessionList',\n    },\n    {\n        Elaboration:\n            'The Security List Update Report is used for reporting updates to a Contract Security Masterfile. Updates could be due to Corporate Actions or other business events. Update may include additions, modifications and deletions.',\n        Group: '',\n        Description: 'SecurityListUpdateReport',\n        Value: 'BK',\n        Sort: 48,\n        Tag: 35,\n        SymbolicName: 'SecurityListUpdateReport',\n    },\n    {\n        Elaboration:\n            'Used to report changes in position, primarily in equity options, due to modifications to the underlying due to corporate actions',\n        Group: '',\n        Description: 'AdjustedPositionReport',\n        Value: 'BL',\n        Sort: 49,\n        Tag: 35,\n        SymbolicName: 'AdjustedPositionReport',\n    },\n    {\n        Elaboration:\n            'This message is used in a 3-party allocation model where notification of group creation and group updates to counterparties is needed. The mssage will also carry trade information that comprised the group to the counterparties.',\n        Group: '',\n        Description: 'AllocationInstructionAlert',\n        Value: 'BM',\n        Sort: 50,\n        Tag: 35,\n        SymbolicName: 'AllocationInstructionAlert',\n    },\n    {\n        Elaboration:\n            \"The Execution Report Acknowledgement message is an optional message that provides dual functionality to notify a trading partner that an electronically received execution has either been accepted or rejected (DK'd).\",\n        Group: '',\n        Description: 'ExecutionAcknowledgement',\n        Value: 'BN',\n        Sort: 51,\n        Tag: 35,\n        SymbolicName: 'ExecutionAcknowledgement',\n    },\n    {\n        Elaboration:\n            'The Contrary Intention Report is used for reporting of contrary expiration quantities for Saturday expiring options. This information is required by options exchanges for regulatory purposes.',\n        Group: '',\n        Description: 'ContraryIntentionReport',\n        Value: 'BO',\n        Sort: 52,\n        Tag: 35,\n        SymbolicName: 'ContraryIntentionReport',\n    },\n    {\n        Elaboration:\n            'This message is used for reporting updates to a Product Security Masterfile. Updates could be the result of corporate actions or other business events. Updates may include additions, modifications or deletions.',\n        Group: '',\n        Description: 'SecurityDefinitionUpdateReport',\n        Value: 'BP',\n        Sort: 53,\n        Tag: 35,\n        SymbolicName: 'SecurityDefinitionUpdateReport',\n    },\n    {\n        Elaboration:\n            'The Settlement Obligation Report message provides a central counterparty, institution, or individual counterparty with a capacity for reporting the final details of a currency settlement obligation.',\n        Group: '',\n        Description: 'SettlementObligationReport',\n        Value: 'BQ',\n        Sort: 54,\n        Tag: 35,\n        SymbolicName: 'SettlementObligationReport',\n    },\n    {\n        Elaboration:\n            'The Derivative Security List Update Report message is used to send updates to an option family or the strikes that comprise an option family.',\n        Group: '',\n        Description: 'DerivativeSecurityListUpdateReport',\n        Value: 'BR',\n        Sort: 55,\n        Tag: 35,\n        SymbolicName: 'DerivativeSecurityListUpdateReport',\n    },\n    {\n        Elaboration:\n            'The Trading Session List Update Report is used by marketplaces to provide intra-day updates of trading sessions when there are changes to one or more trading sessions.',\n        Group: '',\n        Description: 'TradingSessionListUpdateReport',\n        Value: 'BS',\n        Sort: 56,\n        Tag: 35,\n        SymbolicName: 'TradingSessionListUpdateReport',\n    },\n    {\n        Elaboration:\n            'The Market Definition Request message is used to request for market structure information from the Respondent that receives this request.',\n        Group: '',\n        Description: 'MarketDefinitionRequest',\n        Value: 'BT',\n        Sort: 57,\n        Tag: 35,\n        SymbolicName: 'MarketDefinitionRequest',\n    },\n    {\n        Elaboration:\n            'The Market Definition message is used to respond to Market Definition Request. In a subscription, it will be used to provide the initial snapshot of the information requested. Subsequent updates are provided by the Market Definition Update Report.',\n        Group: '',\n        Description: 'MarketDefinition',\n        Value: 'BU',\n        Sort: 58,\n        Tag: 35,\n        SymbolicName: 'MarketDefinition',\n    },\n    {\n        Elaboration:\n            'In a subscription for market structure information, this message is used once the initial snapshot of the information has been sent using the Market Definition message.',\n        Group: '',\n        Description: 'MarketDefinitionUpdateReport',\n        Value: 'BV',\n        Sort: 59,\n        Tag: 35,\n        SymbolicName: 'MarketDefinitionUpdateReport',\n    },\n    {\n        Elaboration:\n            'This message is used to request a retransmission of a set of one or more messages generated by the application specified in RefApplID (1355).',\n        Group: '',\n        Description: 'ApplicationMessageRequest',\n        Value: 'BW',\n        Sort: 60,\n        Tag: 35,\n        SymbolicName: 'ApplicationMessageRequest',\n    },\n    {\n        Elaboration:\n            'This message is used to acknowledge an Application Message Request providing a status on the request (i.e. whether successful or not). This message does not provide the actual content of the messages to be resent.',\n        Group: '',\n        Description: 'ApplicationMessageRequestAck',\n        Value: 'BX',\n        Sort: 61,\n        Tag: 35,\n        SymbolicName: 'ApplicationMessageRequestAck',\n    },\n    {\n        Elaboration:\n            'This message is used for three difference purposes: to reset the ApplSeqNum (1181) of a specified ApplID (1180). to indicate that the last message has been sent for a particular ApplID, or as a keep-alive mechanism for ApplIDs with infrequent message traffic.',\n        Group: '',\n        Description: 'ApplicationMessageReport',\n        Value: 'BY',\n        Sort: 62,\n        Tag: 35,\n        SymbolicName: 'ApplicationMessageReport',\n    },\n    {\n        Elaboration:\n            'The Order Mass Action Report is used to acknowledge an Order Mass Action Request. Note that each affected order that is suspended or released or canceled is acknowledged with a separate Execution Report for each order.',\n        Group: '',\n        Description: 'OrderMassActionReport',\n        Value: 'BZ',\n        Sort: 63,\n        Tag: 35,\n        SymbolicName: 'OrderMassActionReport',\n    },\n    {\n        Elaboration:\n            'The email message is similar to the format and purpose of the News message, however, it is intended for private use between two parties.',\n        Group: '',\n        Description: 'Email',\n        Value: 'C',\n        Sort: 64,\n        Tag: 35,\n        SymbolicName: 'Email',\n    },\n    {\n        Elaboration:\n            'The Order Mass Action Request message can be used to request the suspension or release of a group of orders that match the criteria specified within the request. This is equivalent to individual Order Cancel Replace Requests for each order with or without adding \"S\" to the ExecInst values. It can also be used for mass order cancellation.',\n        Group: '',\n        Description: 'OrderMassActionRequest',\n        Value: 'CA',\n        Sort: 65,\n        Tag: 35,\n        SymbolicName: 'OrderMassActionRequest',\n    },\n    {\n        Elaboration:\n            'The User Notification message is used to notify one or more users of an event or information from the sender of the message. This message is usually sent unsolicited from a marketplace (e.g. Exchange, ECN) to a market participant.',\n        Group: '',\n        Description: 'UserNotification',\n        Value: 'CB',\n        Sort: 66,\n        Tag: 35,\n        SymbolicName: 'UserNotification',\n    },\n    {\n        Elaboration:\n            'In certain markets where market data aggregators fan out to end clients the pricing streams provided by the price makers, the price maker may assign the clients to certain pricing streams that the price maker publishes via the aggregator. An example of this use is in the FX markets where clients may be assigned to different pricing streams based on volume bands and currency pairs.',\n        Group: '',\n        Description: 'StreamAssignmentRequest',\n        Value: 'CC',\n        Sort: 67,\n        Tag: 35,\n        SymbolicName: 'StreamAssignmentRequest',\n    },\n    {\n        Elaboration:\n            'he StreamAssignmentReport message is in response to the StreamAssignmentRequest message. It provides information back to the aggregator as to which clients to assign to receive which price stream based on requested CCY pair. This message can be sent unsolicited to the Aggregator from the Price Maker.',\n        Group: '',\n        Description: 'StreamAssignmentReport',\n        Value: 'CD',\n        Sort: 68,\n        Tag: 35,\n        SymbolicName: 'StreamAssignmentReport',\n    },\n    {\n        Elaboration:\n            'This message is used to respond to the Stream Assignment Report, to either accept or reject an unsolicited assingment.',\n        Group: '',\n        Description: 'StreamAssignmentReportACK',\n        Value: 'CE',\n        Sort: 69,\n        Tag: 35,\n        SymbolicName: 'StreamAssignmentReportACK',\n    },\n    {\n        Elaboration:\n            'The new order message type is used by institutions wishing to electronically submit securities and forex orders to a broker for execution.\\nThe New Order message type may also be used by institutions or retail intermediaries wishing to electronically submit Collective Investment Vehicle (CIV) orders to a broker or fund manager for execution.',\n        Group: '',\n        Description: 'NewOrderSingle',\n        Value: 'D',\n        Sort: 70,\n        Tag: 35,\n        SymbolicName: 'NewOrderSingle',\n    },\n    {\n        Elaboration:\n            'The NewOrderList Message can be used in one of two ways depending on which market conventions are being followed.',\n        Group: '',\n        Description: 'NewOrderList',\n        Value: 'E',\n        Sort: 71,\n        Tag: 35,\n        SymbolicName: 'NewOrderList',\n    },\n    {\n        Elaboration:\n            'The order cancel request message requests the cancellation of all of the remaining quantity of an existing order. Note that the Order Cancel/Replace Request should be used to partially cancel (reduce) an order).',\n        Group: '',\n        Description: 'OrderCancelRequest',\n        Value: 'F',\n        Sort: 72,\n        Tag: 35,\n        SymbolicName: 'OrderCancelRequest',\n    },\n    {\n        Elaboration:\n            'The order cancel/replace request is used to change the parameters of an existing order.\\nDo not use this message to cancel the remaining quantity of an outstanding order, use the Order Cancel Request message for this purpose.',\n        Group: '',\n        Description: 'OrderCancelReplaceRequest',\n        Value: 'G',\n        Sort: 73,\n        Tag: 35,\n        SymbolicName: 'OrderCancelReplaceRequest',\n    },\n    {\n        Elaboration:\n            'The order status request message is used by the institution to generate an order status message back from the broker.',\n        Group: '',\n        Description: 'OrderStatusRequest',\n        Value: 'H',\n        Sort: 74,\n        Tag: 35,\n        SymbolicName: 'OrderStatusRequest',\n    },\n    {\n        Elaboration:\n            'The Allocation Instruction message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts. In versions of FIX prior to version 4.4, this same message was known as the Allocation message. Note in versions of FIX prior to version 4.4, the allocation message was also used to communicate fee and expense details from the Sellside to the Buyside. This role has now been removed from the Allocation Instruction and is now performed by the new (to version 4.4) Allocation Report and Confirmation messages.,The Allocation Report message should be used for the Sell-side Initiated Allocation role as defined in previous versions of the protocol.',\n        Group: '',\n        Description: 'AllocationInstruction',\n        Value: 'J',\n        Sort: 75,\n        Tag: 35,\n        SymbolicName: 'AllocationInstruction',\n    },\n    {\n        Elaboration:\n            'The List Cancel Request message type is used by institutions wishing to cancel previously submitted lists either before or during execution.',\n        Group: '',\n        Description: 'ListCancelRequest',\n        Value: 'K',\n        Sort: 76,\n        Tag: 35,\n        SymbolicName: 'ListCancelRequest',\n    },\n    {\n        Elaboration:\n            'The List Execute message type is used by institutions to instruct the broker to begin execution of a previously submitted list. This message may or may not be used, as it may be mirroring a phone conversation.',\n        Group: '',\n        Description: 'ListExecute',\n        Value: 'L',\n        Sort: 77,\n        Tag: 35,\n        SymbolicName: 'ListExecute',\n    },\n    {\n        Elaboration:\n            'The list status request message type is used by institutions to instruct the broker to generate status messages for a list.',\n        Group: '',\n        Description: 'ListStatusRequest',\n        Value: 'M',\n        Sort: 78,\n        Tag: 35,\n        SymbolicName: 'ListStatusRequest',\n    },\n    {\n        Elaboration:\n            \"The list status message is issued as the response to a List Status Request message sent in an unsolicited fashion by the sell-side. It indicates the current state of the orders within the list as they exist at the broker's site. This message may also be used to respond to the List Cancel Request.\",\n        Group: '',\n        Description: 'ListStatus',\n        Value: 'N',\n        Sort: 79,\n        Tag: 35,\n        SymbolicName: 'ListStatus',\n    },\n    {\n        Elaboration:\n            'In versions of FIX prior to version 4.4, this message was known as the Allocation ACK message.\\nThe Allocation Instruction Ack message is used to acknowledge the receipt of and provide status for an Allocation Instruction message.',\n        Group: '',\n        Description: 'AllocationInstructionAck',\n        Value: 'P',\n        Sort: 80,\n        Tag: 35,\n        SymbolicName: 'AllocationInstructionAck',\n    },\n    {\n        Elaboration:\n            'The Don\u2019t Know Trade (DK) message notifies a trading partner that an electronically received execution has been rejected. This message can be thought of as an execution reject message.',\n        Group: '',\n        Description: 'DontKnowTrade',\n        Value: 'Q',\n        Sort: 81,\n        Tag: 35,\n        SymbolicName: 'DontKnowTrade',\n    },\n    {\n        Elaboration:\n            'In some markets it is the practice to request quotes from brokers prior to placement of an order. The quote request message is used for this purpose. This message is commonly referred to as an Request For Quote (RFQ)',\n        Group: '',\n        Description: 'QuoteRequest',\n        Value: 'R',\n        Sort: 82,\n        Tag: 35,\n        SymbolicName: 'QuoteRequest',\n    },\n    {\n        Elaboration:\n            'The Quote message is used as the response to a Quote Request or a Quote Response message in both indicative, tradeable, and restricted tradeable quoting markets.',\n        Group: '',\n        Description: 'Quote',\n        Value: 'S',\n        Sort: 83,\n        Tag: 35,\n        SymbolicName: 'Quote',\n    },\n    {\n        Elaboration:\n            'The Settlement Instructions message provides the broker\u2019s, the institution\u2019s, or the intermediary\u2019s instructions for trade settlement. This message has been designed so that it can be sent from the broker to the institution, from the institution to the broker, or from either to an independent \"standing instructions\" database or matching system or, for CIV, from an intermediary to a fund manager.',\n        Group: '',\n        Description: 'SettlementInstructions',\n        Value: 'T',\n        Sort: 84,\n        Tag: 35,\n        SymbolicName: 'SettlementInstructions',\n    },\n    {\n        Elaboration:\n            'Some systems allow the transmission of real-time quote, order, trade, trade volume, open interest, and/or other price information on a subscription basis. A Market Data Request is a general request for market data on specific securities or forex quotes.',\n        Group: '',\n        Description: 'MarketDataRequest',\n        Value: 'V',\n        Sort: 85,\n        Tag: 35,\n        SymbolicName: 'MarketDataRequest',\n    },\n    {\n        Elaboration:\n            'The Market Data messages are used as the response to a Market Data Request message. In all cases, one Market Data message refers only to one Market Data Request. It can be used to transmit a 2-sided book of orders or list of quotes, a list of trades, index values, opening, closing, settlement, high, low, or VWAP prices, the trade volume or open interest for a security, or any combination of these.',\n        Group: '',\n        Description: 'MarketDataSnapshotFullRefresh',\n        Value: 'W',\n        Sort: 86,\n        Tag: 35,\n        SymbolicName: 'MarketDataSnapshotFullRefresh',\n    },\n    {\n        Elaboration:\n            'The Market Data message for incremental updates may contain any combination of new, changed, or deleted Market Data Entries, for any combination of instruments, with any combination of trades, imbalances, quotes, index values, open, close, settlement, high, low, and VWAP prices, trade volume and open interest so long as the maximum FIX message size is not exceeded. All of these types of Market Data Entries can be changed and deleted.',\n        Group: '',\n        Description: 'MarketDataIncrementalRefresh',\n        Value: 'X',\n        Sort: 87,\n        Tag: 35,\n        SymbolicName: 'MarketDataIncrementalRefresh',\n    },\n    {\n        Elaboration:\n            'The Market Data Request Reject is used when the broker cannot honor the Market Data Request, due to business or technical reasons. Brokers may choose to limit various parameters, such as the size of requests, whether just the top of book or the entire book may be displayed, and whether Full or Incremental updates must be used.',\n        Group: '',\n        Description: 'MarketDataRequestReject',\n        Value: 'Y',\n        Sort: 88,\n        Tag: 35,\n        SymbolicName: 'MarketDataRequestReject',\n    },\n    {\n        Elaboration:\n            'The Quote Cancel message is used by an originator of quotes to cancel quotes.\\nThe Quote Cancel message supports cancellation of:\\n\u2022 All quotes\\n\u2022 Quotes for a specific symbol or security ID\\n\u2022 All quotes for a security type\\n\u2022 All quotes for an underlying',\n        Group: '',\n        Description: 'QuoteCancel',\n        Value: 'Z',\n        Sort: 89,\n        Tag: 35,\n        SymbolicName: 'QuoteCancel',\n    },\n    {\n        Elaboration:\n            'The quote status request message is used for the following purposes in markets that employ tradeable or restricted tradeable quotes:\\n\u2022 For the issuer of a quote in a market to query the status of that quote (using the QuoteID to specify the target quote).\\n\u2022 To subscribe and unsubscribe for Quote Status Report messages for one or more securities.',\n        Group: '',\n        Description: 'QuoteStatusRequest',\n        Value: 'a',\n        Sort: 90,\n        Tag: 35,\n        SymbolicName: 'QuoteStatusRequest',\n    },\n    {\n        Elaboration: 'Mass Quote Acknowledgement is used as the application level response to a Mass Quote message.',\n        Group: '',\n        Description: 'MassQuoteAcknowledgement',\n        Value: 'b',\n        Sort: 91,\n        Tag: 35,\n        SymbolicName: 'MassQuoteAcknowledgement',\n    },\n    {\n        Elaboration:\n            'The Security Definition Request message is used for the following:\\n1. Request a specific Security to be traded with the second party. The request security can be defined as a multileg security made up of one or more instrument legs.\\n2. Request a set of individual securities for a single market segment.\\n3. Request all securities, independent of market segment.',\n        Group: '',\n        Description: 'SecurityDefinitionRequest',\n        Value: 'c',\n        Sort: 92,\n        Tag: 35,\n        SymbolicName: 'SecurityDefinitionRequest',\n    },\n    {\n        Elaboration:\n            \"The Security Definition message is used for the following:\\n1. Accept the security defined in a Security Definition message.\\n2. Accept the security defined in a Security Definition message with changes to the definition and/or identity of the security.\\n3. Reject the security requested in a Security Definition message.\\n4. Respond to a request for securities within a specified market segment.\\n5. Convey comprehensive security definition for all market segments that the security participates in.\\n6. Convey the security's trading rules that differ from default rules for the market segment.\",\n        Group: '',\n        Description: 'SecurityDefinition',\n        Value: 'd',\n        Sort: 93,\n        Tag: 35,\n        SymbolicName: 'SecurityDefinition',\n    },\n    {\n        Elaboration:\n            'The Security Status Request message provides for the ability to request the status of a security. One or more Security Status messages are returned as a result of a Security Status Request message.',\n        Group: '',\n        Description: 'SecurityStatusRequest',\n        Value: 'e',\n        Sort: 94,\n        Tag: 35,\n        SymbolicName: 'SecurityStatusRequest',\n    },\n    {\n        Elaboration:\n            'The Security Status message provides for the ability to report changes in status to a security. The Security Status message contains fields to indicate trading status, corporate actions, financial status of the company. The Security Status message is used by one trading entity (for instance an exchange) to report changes in the state of a security.',\n        Group: '',\n        Description: 'SecurityStatus',\n        Value: 'f',\n        Sort: 95,\n        Tag: 35,\n        SymbolicName: 'SecurityStatus',\n    },\n    {\n        Elaboration:\n            'The Trading Session Status Request is used to request information on the status of a market. With the move to multiple sessions occurring for a given trading party (morning and evening sessions for instance) there is a need to be able to provide information on what product is trading on what market.',\n        Group: '',\n        Description: 'TradingSessionStatusRequest',\n        Value: 'g',\n        Sort: 96,\n        Tag: 35,\n        SymbolicName: 'TradingSessionStatusRequest',\n    },\n    {\n        Elaboration:\n            'The Trading Session Status provides information on the status of a market. For markets multiple trading sessions on multiple-markets occurring (morning and evening sessions for instance), this message is able to provide information on what products are trading on what market during what trading session.',\n        Group: '',\n        Description: 'TradingSessionStatus',\n        Value: 'h',\n        Sort: 97,\n        Tag: 35,\n        SymbolicName: 'TradingSessionStatus',\n    },\n    {\n        Elaboration:\n            'The Mass Quote message can contain quotes for multiple securities to support applications that allow for the mass quoting of an option series. Two levels of repeating groups have been provided to minimize the amount of data required to submit a set of quotes for a class of options (e.g. all option series for IBM).',\n        Group: '',\n        Description: 'MassQuote',\n        Value: 'i',\n        Sort: 98,\n        Tag: 35,\n        SymbolicName: 'MassQuote',\n    },\n    {\n        Elaboration:\n            'The Business Message Reject message can reject an application-level message which fulfills session-level rules and cannot be rejected via any other means. Note if the message fails a session-level rule (e.g. body length is incorrect), a session-level Reject message should be issued.',\n        Group: '',\n        Description: 'BusinessMessageReject',\n        Value: 'j',\n        Sort: 99,\n        Tag: 35,\n        SymbolicName: 'BusinessMessageReject',\n    },\n    {\n        Elaboration:\n            'The BidRequest Message can be used in one of two ways depending on which market conventions are being followed.\\n      In the \"Non disclosed\" convention (e.g. US/European model) the BidRequest message can be used to request a bid based on the sector, country, index and liquidity information contained within the message itself. In the \"Non disclosed\" convention the entry repeating group is used to define liquidity of the program. See \" Program/Basket/List Trading\"  for an example.\\n      In the \"Disclosed\" convention (e.g. Japanese model) the BidRequest message can be used to request bids based on the ListOrderDetail messages sent in advance of BidRequest message. In the \"Disclosed\" convention the list repeating group is used to define which ListOrderDetail messages a bid is being sort for and the directions of the required bids.',\n        Group: '',\n        Description: 'BidRequest',\n        Value: 'k',\n        Sort: 100,\n        Tag: 35,\n        SymbolicName: 'BidRequest',\n    },\n    {\n        Elaboration:\n            'The Bid Response message can be used in one of two ways depending on which market conventions are being followed.\\n      In the \"Non disclosed\" convention the Bid Response message can be used to supply a bid based on the sector, country, index and liquidity information contained within the corresponding bid request message. See \"Program/Basket/List Trading\"  for an example.\\n      In the \"Disclosed\" convention the Bid Response message can be used to supply bids based on the List Order Detail messages sent in advance of the corresponding Bid Request message.',\n        Group: '',\n        Description: 'BidResponse',\n        Value: 'l',\n        Sort: 101,\n        Tag: 35,\n        SymbolicName: 'BidResponse',\n    },\n    {\n        Elaboration:\n            'The strike price message is used to exchange strike price information for principal trades. It can also be used to exchange reference prices for agency trades.',\n        Group: '',\n        Description: 'ListStrikePrice',\n        Value: 'm',\n        Sort: 102,\n        Tag: 35,\n        SymbolicName: 'ListStrikePrice',\n    },\n    {\n        Elaboration: '',\n        Group: '',\n        Description: 'XMLnonFIX',\n        Value: 'n',\n        Sort: 103,\n        Tag: 35,\n        SymbolicName: 'XMLnonFIX',\n    },\n    {\n        Elaboration:\n            'The Registration Instructions message type may be used by institutions or retail intermediaries wishing to electronically submit registration information to a broker or fund manager (for CIV) for an order or for an allocation.',\n        Group: '',\n        Description: 'RegistrationInstructions',\n        Value: 'o',\n        Sort: 104,\n        Tag: 35,\n        SymbolicName: 'RegistrationInstructions',\n    },\n    {\n        Elaboration:\n            'The Registration Instructions Response message type may be used by broker or fund manager (for CIV) in response to a Registration Instructions message submitted by an institution or retail intermediary for an order or for an allocation.',\n        Group: '',\n        Description: 'RegistrationInstructionsResponse',\n        Value: 'p',\n        Sort: 105,\n        Tag: 35,\n        SymbolicName: 'RegistrationInstructionsResponse',\n    },\n    {\n        Elaboration:\n            'The order mass cancel request message requests the cancellation of all of the remaining quantity of a group of orders matching criteria specified within the request. NOTE: This message can only be used to cancel order messages (reduce the full quantity).',\n        Group: '',\n        Description: 'OrderMassCancelRequest',\n        Value: 'q',\n        Sort: 106,\n        Tag: 35,\n        SymbolicName: 'OrderMassCancelRequest',\n    },\n    {\n        Elaboration:\n            'The Order Mass Cancel Report is used to acknowledge an Order Mass Cancel Request. Note that each affected order that is canceled is acknowledged with a separate Execution Report or Order Cancel Reject message.',\n        Group: '',\n        Description: 'OrderMassCancelReport',\n        Value: 'r',\n        Sort: 107,\n        Tag: 35,\n        SymbolicName: 'OrderMassCancelReport',\n    },\n    {\n        Elaboration:\n            'Used to submit a cross order into a market. The cross order contains two order sides (a buy and a sell). The cross order is identified by its CrossID.',\n        Group: '',\n        Description: 'NewOrderCross',\n        Value: 's',\n        Sort: 108,\n        Tag: 35,\n        SymbolicName: 'NewOrderCross',\n    },\n    {\n        Elaboration:\n            'Used to modify a cross order previously submitted using the New Order - Cross message. See Order Cancel Replace Request for details concerning message usage.',\n        Group: '',\n        Description: 'CrossOrderCancelReplaceRequest',\n        Value: 't',\n        Sort: 109,\n        Tag: 35,\n        SymbolicName: 'CrossOrderCancelReplaceRequest',\n    },\n    {\n        Elaboration: 'Used to fully cancel the remaining open quantity of a cross order.',\n        Group: '',\n        Description: 'CrossOrderCancelRequest',\n        Value: 'u',\n        Sort: 110,\n        Tag: 35,\n        SymbolicName: 'CrossOrderCancelRequest',\n    },\n    {\n        Elaboration:\n            'The Security Type Request message is used to return a list of security types available from a counterparty or market.',\n        Group: '',\n        Description: 'SecurityTypeRequest',\n        Value: 'v',\n        Sort: 111,\n        Tag: 35,\n        SymbolicName: 'SecurityTypeRequest',\n    },\n    {\n        Elaboration:\n            'The Security Type Request message is used to return a list of security types available from a counterparty or market.',\n        Group: '',\n        Description: 'SecurityTypes',\n        Value: 'w',\n        Sort: 112,\n        Tag: 35,\n        SymbolicName: 'SecurityTypes',\n    },\n    {\n        Elaboration:\n            'The Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request',\n        Group: '',\n        Description: 'SecurityListRequest',\n        Value: 'x',\n        Sort: 113,\n        Tag: 35,\n        SymbolicName: 'SecurityListRequest',\n    },\n    {\n        Elaboration:\n            'The Security List message is used to return a list of securities that matches the criteria specified in a Security List Request.',\n        Group: '',\n        Description: 'SecurityList',\n        Value: 'y',\n        Sort: 114,\n        Tag: 35,\n        SymbolicName: 'SecurityList',\n    },\n    {\n        Elaboration:\n            'The Derivative Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request',\n        Group: '',\n        Description: 'DerivativeSecurityListRequest',\n        Value: 'z',\n        Sort: 115,\n        Tag: 35,\n        SymbolicName: 'DerivativeSecurityListRequest',\n    },\n];\n\nexport const ENUMS: ISpecEnums[] = batch1.concat(batch2).concat(batch3).concat(batch4).concat(batch5).concat(batch6);\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { ISpecEnums } from './../../spec/SpecEnums';\n\nexport class EnumType {\n    public tag: number | null = null;\n    public value: string | number | null = null;\n    public symbolicName: string | null = null;\n    public group: string | null = null;\n    public sort: number | null = null;\n    public description: string | null = null;\n    public elaboration: string | null = null;\n    public added: string | null = null;\n\n    public setEnumeration(enumType: ISpecEnums): void {\n        this.tag = enumType.Tag;\n        this.value = enumType.Value;\n        this.symbolicName = enumType.SymbolicName ? enumType.SymbolicName : null;\n        this.group = enumType.Group ? enumType.Group : null;\n        this.sort = enumType.Sort ? enumType.Sort : null;\n        this.description = enumType.Description ? enumType.Description : null;\n        this.elaboration = enumType.Elaboration ? enumType.Elaboration : null;\n        this.added = enumType.added ? enumType.added : null;\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { ENUMS, ISpecEnums } from '../../spec/SpecEnums';\nimport { Field } from '../fields/Field';\nimport { EnumType } from './EnumType';\n\nexport class Enums {\n    public enums: ISpecEnums[] = ENUMS;\n    public cacheMap: Map<string, ISpecEnums> = new Map<string, ISpecEnums>();\n\n    constructor() {\n        this.enums.forEach((enumType: ISpecEnums) => {\n            this.cacheMap.set(`${enumType.Tag}|${enumType.Value}`, enumType);\n        });\n    }\n\n    public getEnum(tag: string, value: number | string | boolean | null): ISpecEnums | undefined {\n        return this.cacheMap.get(`${tag}|${value}`);\n    }\n\n    public processEnum(field: Field): void {\n        const enumTypes: EnumType = new EnumType();\n        const foundEnum: ISpecEnums | undefined = this.cacheMap.get(`${field.tag}|${field.value}`);\n        if (foundEnum) {\n            enumTypes.setEnumeration(foundEnum);\n            field.setEnumeration(enumTypes);\n        }\n    }\n}\n", "export interface ISpecFields {\n    Tag: number;\n    Name: string;\n    Type: string;\n    AssociatedDataTag?: number;\n    AbbrName?: string;\n    BaseCategory?: string;\n    BaseCategoryAbbrName?: string;\n    NotReqXML: number;\n    UnionDataType?: string;\n    EnumDatatype?: number;\n    Description: string;\n    updated?: string;\n    updatedEP?: number;\n    added: string;\n    addedEP?: number;\n    deprecated?: string;\n    issue?: string;\n}\n\nconst batch1: ISpecFields[] = [\n    {\n        Type: 'String',\n        Description:\n            'Account mnemonic as agreed between buy and sell sides, e.g. broker and institution or investor/intermediary and fund manager.',\n        added: 'FIX.2.7',\n        AbbrName: 'Acct',\n        Tag: 1,\n        NotReqXML: 0,\n        Name: 'Account',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier of advertisement message.\\n(Prior to FIX 4.1 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'AdvId',\n        Tag: 2,\n        NotReqXML: 0,\n        Name: 'AdvId',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Reference identifier used with CANCEL and REPLACE transaction types.\\n(Prior to FIX 4.1 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'AdvRefID',\n        Tag: 3,\n        NotReqXML: 0,\n        Name: 'AdvRefID',\n    },\n    {\n        Type: 'char',\n        Description: \"Broker's side of advertised trade\",\n        added: 'FIX.2.7',\n        AbbrName: 'AdvSide',\n        Tag: 4,\n        NotReqXML: 0,\n        Name: 'AdvSide',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifies advertisement message transaction type',\n        added: 'FIX.2.7',\n        AbbrName: 'AdvTransTyp',\n        Tag: 5,\n        NotReqXML: 0,\n        Name: 'AdvTransType',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Calculated average price of all fills on this order.\\nFor Fixed Income trades AvgPx is always expressed as percent-of-par, regardless of the PriceType (423) of LastPx (31). I.e., AvgPx will contain an average of percent-of-par values (see LastParPx (669)) for issues traded in Yield, Spread or Discount.',\n        added: 'FIX.2.7',\n        AbbrName: 'AvgPx',\n        Tag: 6,\n        NotReqXML: 0,\n        Name: 'AvgPx',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Message sequence number of first message in range to be resent',\n        added: 'FIX.2.7',\n        AbbrName: 'BeginSeqNo',\n        Tag: 7,\n        NotReqXML: 1,\n        Name: 'BeginSeqNo',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifies beginning of new message and protocol version. ALWAYS FIRST FIELD IN MESSAGE. (Always unencrypted)\\nValid values:\\nFIXT.1.1',\n        issue: 'SPEC-376',\n        added: 'FIX.2.7',\n        AbbrName: 'BeginString',\n        Tag: 8,\n        NotReqXML: 1,\n        Name: 'BeginString',\n    },\n    {\n        Type: 'Length',\n        Description:\n            'Message length, in bytes, forward to the CheckSum field. ALWAYS SECOND FIELD IN MESSAGE. (Always unencrypted)',\n        added: 'FIX.2.7',\n        AbbrName: 'BodyLength',\n        Tag: 9,\n        NotReqXML: 1,\n        Name: 'BodyLength',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Three byte, simple checksum (see Volume 2: \"Checksum Calculation\" for description). ALWAYS LAST FIELD IN MESSAGE; i.e. serves, with the trailing <SOH>, as the end-of-message delimiter. Always defined as three characters. (Always unencrypted)',\n        added: 'FIX.2.7',\n        AbbrName: 'CheckSum',\n        Tag: 10,\n        NotReqXML: 1,\n        Name: 'CheckSum',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'String',\n        Description:\n            'Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc.) (identified by SenderCompID (49) or OnBehalfOfCompID (5) as appropriate). Uniqueness must be guaranteed within a single trading day. Firms, particularly those which electronically submit multi-day orders, trade globally or throughout market close periods, should ensure uniqueness across days, for example by embedding a date within the ClOrdID field.',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'ID',\n        AbbrName: 'ClOrdID',\n        Tag: 11,\n        NotReqXML: 0,\n        Name: 'ClOrdID',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Commission. Note if CommType (13) is percentage, Commission of 5% should be represented as .05.',\n        added: 'FIX.2.7',\n        AbbrName: 'Comm',\n        Tag: 12,\n        NotReqXML: 0,\n        Name: 'Commission',\n    },\n    {\n        Type: 'char',\n        Description: 'Commission type',\n        added: 'FIX.2.7',\n        AbbrName: 'CommTyp',\n        Tag: 13,\n        NotReqXML: 0,\n        Name: 'CommType',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Total quantity (e.g. number of shares) filled.\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'CumQty',\n        Tag: 14,\n        NotReqXML: 0,\n        Name: 'CumQty',\n    },\n    {\n        Type: 'Currency',\n        Description:\n            'Identifies currency used for price. Absence of this field is interpreted as the default for the security. It is recommended that systems provide the currency value whenever possible. See \"Appendix 6-A: Valid Currency Codes\" for information on obtaining valid values.',\n        added: 'FIX.2.7',\n        AbbrName: 'Ccy',\n        Tag: 15,\n        NotReqXML: 0,\n        Name: 'Currency',\n    },\n    {\n        Type: 'SeqNum',\n        Description:\n            'Message sequence number of last message in range to be resent. If request is for a single message BeginSeqNo (7) = EndSeqNo. If request is for all messages subsequent to a particular message, EndSeqNo = \"0\" (representing infinity).',\n        added: 'FIX.2.7',\n        AbbrName: 'EndSeqNo',\n        Tag: 16,\n        NotReqXML: 1,\n        Name: 'EndSeqNo',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unique identifier of execution message as assigned by sell-side (broker, exchange, ECN) (will be 0 (zero) for ExecType (150)=I (Order Status)).\\nUniqueness must be guaranteed within a single trading day or the life of a multi-day order. Firms which accept multi-day orders should consider embedding a date within the ExecID field to assure uniqueness across days.\\n(Prior to FIX 4.1 this field was of type int).',\n        added: 'FIX.2.7',\n        updatedEP: 95,\n        AbbrName: 'ExecID',\n        Tag: 17,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'ExecID',\n    },\n    {\n        Type: 'MultipleCharValue',\n        Description:\n            'Instructions for order handling on exchange trading floor. If more than one instruction is applicable to an order, this field can contain multiple instructions separated by space. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.2.7',\n        AbbrName: 'ExecInst',\n        Tag: 18,\n        NotReqXML: 0,\n        Name: 'ExecInst',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Reference identifier used with Trade, Trade Cancel and Trade Correct execution types.\\n(Prior to FIX 4.1 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'ExecRefID',\n        Tag: 19,\n        NotReqXML: 0,\n        Name: 'ExecRefID',\n    },\n    {\n        Type: 'char',\n        Description: 'Instructions for order handling on Broker trading floor',\n        added: 'FIX.2.7',\n        AbbrName: 'HandlInst',\n        Tag: 21,\n        NotReqXML: 0,\n        Name: 'HandlInst',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifies class or source of the SecurityID (48) value. Required if SecurityID is specified.\\n100+ are reserved for private security identifications',\n        added: 'FIX.2.7',\n        AbbrName: 'Src',\n        Tag: 22,\n        NotReqXML: 0,\n        Name: 'SecurityIDSource',\n    },\n    {\n        BaseCategory: 'Indication',\n        Type: 'String',\n        Description: 'Unique identifier of IOI message.\\n(Prior to FIX 4.1 this field was of type int)',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'ID',\n        AbbrName: 'IOIID',\n        Tag: 23,\n        NotReqXML: 0,\n        Name: 'IOIID',\n    },\n    {\n        Type: 'char',\n        Description: 'Relative quality of indication',\n        added: 'FIX.2.7',\n        AbbrName: 'QltyInd',\n        Tag: 25,\n        NotReqXML: 0,\n        Name: 'IOIQltyInd',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Reference identifier used with CANCEL and REPLACE, transaction types.\\n(Prior to FIX 4.1 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'RefID',\n        Tag: 26,\n        NotReqXML: 0,\n        Name: 'IOIRefID',\n    },\n    {\n        Type: 'String',\n        UnionDataType: 'Qty',\n        Description: 'Quantity (e.g. number of shares) in numeric form or relative size.',\n        added: 'FIX.2.7',\n        AbbrName: 'Qty',\n        Tag: 27,\n        NotReqXML: 0,\n        Name: 'IOIQty',\n    },\n    {\n        Type: 'char',\n        Description: 'Identifies IOI message transaction type',\n        added: 'FIX.2.7',\n        AbbrName: 'TransTyp',\n        Tag: 28,\n        NotReqXML: 0,\n        Name: 'IOITransType',\n    },\n    {\n        Type: 'char',\n        Description: 'Broker capacity in order execution',\n        added: 'FIX.2.7',\n        AbbrName: 'LastCpcty',\n        Tag: 29,\n        NotReqXML: 0,\n        Name: 'LastCapacity',\n    },\n    {\n        Type: 'Exchange',\n        Description:\n            'Market of execution for last fill, or an indication of the market where an order was routed\\nValid values:\\nSee \"Appendix 6-C\"',\n        added: 'FIX.2.7',\n        AbbrName: 'LastMkt',\n        Tag: 30,\n        NotReqXML: 0,\n        Name: 'LastMkt',\n    },\n    {\n        Type: 'Price',\n        Description: 'Price of this (last) fill.',\n        added: 'FIX.2.7',\n        AbbrName: 'LastPx',\n        Tag: 31,\n        NotReqXML: 0,\n        Name: 'LastPx',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Quantity (e.g. shares) bought/sold on this (last) fill.\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'LastQty',\n        Tag: 32,\n        NotReqXML: 0,\n        Name: 'LastQty',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Identifies number of lines of text body',\n        added: 'FIX.2.7',\n        AbbrName: 'NoLinesOfText',\n        Tag: 33,\n        NotReqXML: 1,\n        Name: 'NoLinesOfText',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Integer message sequence number.',\n        added: 'FIX.2.7',\n        AbbrName: 'SeqNum',\n        Tag: 34,\n        NotReqXML: 0,\n        Name: 'MsgSeqNum',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Defines message type ALWAYS THIRD FIELD IN MESSAGE. (Always unencrypted)\\nNote: A \"U\" as the first character in the MsgType field (i.e. U, U2, etc) indicates that the message format is privately defined between the sender and receiver.\\n*** Note the use of lower case letters ***',\n        added: 'FIX.2.7',\n        AbbrName: 'MsgTyp',\n        Tag: 35,\n        NotReqXML: 0,\n        Name: 'MsgType',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'New sequence number',\n        added: 'FIX.2.7',\n        AbbrName: 'NewSeqNo',\n        Tag: 36,\n        NotReqXML: 1,\n        Name: 'NewSeqNo',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unique identifier for Order as assigned by sell-side (broker, exchange, ECN). Uniqueness must be guaranteed within a single trading day. Firms which accept multi-day orders should consider embedding a date within the OrderID field to assure uniqueness across days.',\n        added: 'FIX.2.7',\n        AbbrName: 'OrdID',\n        Tag: 37,\n        NotReqXML: 0,\n        Name: 'OrderID',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Quantity ordered. This represents the number of shares for equities or par, face or nominal value for FI instruments.\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'Qty',\n        Tag: 38,\n        NotReqXML: 0,\n        Name: 'OrderQty',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'char',\n        Description:\n            'Identifies current status of order. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'Stat',\n        AbbrName: 'OrdStat',\n        Tag: 39,\n        NotReqXML: 0,\n        Name: 'OrdStatus',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'char',\n        Description:\n            'Order type. *** SOME VALUES ARE NO LONGER USED - See \"Deprecated (Phased-out) Features and Supported Approach\" *** (see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'Typ',\n        AbbrName: 'OrdTyp',\n        Tag: 40,\n        NotReqXML: 0,\n        Name: 'OrdType',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'String',\n        Description:\n            'ClOrdID (11) of the previous order (NOT the initial order of the day) as assigned by the institution, used to identify the previous order in cancel and cancel/replace requests.',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'OrigID',\n        AbbrName: 'OrigClOrdID',\n        Tag: 41,\n        NotReqXML: 0,\n        Name: 'OrigClOrdID',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Time of message origination (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\"))',\n        added: 'FIX.2.7',\n        AbbrName: 'OrigTm',\n        Tag: 42,\n        NotReqXML: 0,\n        Name: 'OrigTime',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates possible retransmission of message with this sequence number',\n        added: 'FIX.2.7',\n        AbbrName: 'PosDup',\n        Tag: 43,\n        NotReqXML: 0,\n        Name: 'PossDupFlag',\n    },\n    {\n        Type: 'Price',\n        Description: 'Price per unit of quantity (e.g. per share)',\n        added: 'FIX.2.7',\n        AbbrName: 'Px',\n        Tag: 44,\n        NotReqXML: 0,\n        Name: 'Price',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Reference message sequence number',\n        added: 'FIX.2.7',\n        AbbrName: 'RefSeqNum',\n        Tag: 45,\n        NotReqXML: 0,\n        Name: 'RefSeqNum',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Security identifier value of SecurityIDSource (22) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires SecurityIDSource.',\n        added: 'FIX.2.7',\n        AbbrName: 'ID',\n        Tag: 48,\n        NotReqXML: 0,\n        Name: 'SecurityID',\n    },\n    {\n        Type: 'String',\n        Description: 'Assigned value used to identify firm sending message.',\n        added: 'FIX.2.7',\n        AbbrName: 'SID',\n        Tag: 49,\n        NotReqXML: 0,\n        Name: 'SenderCompID',\n    },\n    {\n        Type: 'String',\n        Description: 'Assigned value used to identify specific message originator (desk, trader, etc.)',\n        added: 'FIX.2.7',\n        AbbrName: 'SSub',\n        Tag: 50,\n        NotReqXML: 0,\n        Name: 'SenderSubID',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Time of message transmission (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n        added: 'FIX.2.7',\n        AbbrName: 'Snt',\n        Tag: 52,\n        NotReqXML: 0,\n        Name: 'SendingTime',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Overall/total quantity (e.g. number of shares)\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'Qty',\n        Tag: 53,\n        NotReqXML: 0,\n        Name: 'Quantity',\n    },\n    {\n        Type: 'char',\n        Description: 'Side of order (see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.2.7',\n        AbbrName: 'Side',\n        Tag: 54,\n        NotReqXML: 0,\n        Name: 'Side',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Ticker symbol. Common, \"human understood\" representation of the security. SecurityID (48) value can be specified if no symbol exists (e.g. non-exchange traded Collective Investment Vehicles)\\nUse \"[N/A]\" for products which do not have a symbol.',\n        added: 'FIX.2.7',\n        AbbrName: 'Sym',\n        Tag: 55,\n        NotReqXML: 0,\n        Name: 'Symbol',\n    },\n    {\n        Type: 'String',\n        Description: 'Assigned value used to identify receiving firm.',\n        added: 'FIX.2.7',\n        AbbrName: 'TID',\n        Tag: 56,\n        NotReqXML: 0,\n        Name: 'TargetCompID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Assigned value used to identify specific individual or unit intended to receive message. \"ADMIN\" reserved for administrative messages not intended for a specific user.',\n        added: 'FIX.2.7',\n        AbbrName: 'TSub',\n        Tag: 57,\n        NotReqXML: 0,\n        Name: 'TargetSubID',\n    },\n    {\n        Type: 'String',\n        Description: 'Free format text string\\n(Note: this field does not have a specified maximum length)',\n        added: 'FIX.2.7',\n        AbbrName: 'Txt',\n        Tag: 58,\n        NotReqXML: 0,\n        Name: 'Text',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Specifies how long the order remains in effect. Absence of this field is interpreted as DAY. NOTE not applicable to CIV Orders. (see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.2.7',\n        AbbrName: 'TmInForce',\n        Tag: 59,\n        NotReqXML: 0,\n        Name: 'TimeInForce',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'Timestamp when the business transaction represented by the message occurred.',\n        added: 'FIX.2.7',\n        updatedEP: 94,\n        AbbrName: 'TxnTm',\n        Tag: 60,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'TransactTime',\n    },\n    {\n        Type: 'char',\n        Description: 'Urgency flag',\n        added: 'FIX.2.7',\n        AbbrName: 'Urgency',\n        Tag: 61,\n        NotReqXML: 0,\n        Name: 'Urgency',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Indicates expiration time of indication message (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n        added: 'FIX.2.7',\n        AbbrName: 'ValidUntilTm',\n        Tag: 62,\n        NotReqXML: 0,\n        Name: 'ValidUntilTime',\n    },\n    {\n        Type: 'String',\n        UnionDataType: 'Tenor',\n        Description:\n            'Indicates order settlement period. If present, SettlDate (64) overrides this field. If both SettlType (63) and SettDate (64) are omitted, the default for SettlType (63) is 0 (Regular)\\nRegular is defined as the default settlement period for the particular security on the exchange of execution.\\nIn Fixed Income the contents of this field may influence the instrument definition if the SecurityID (48) is ambiguous. In the US an active Treasury offering may be re-opened, and for a time one CUSIP will apply to both the current and \"when-issued\" securities. Supplying a value of \"7\" clarifies the instrument description; any other value or the absence of this field should cause the respondent to default to the active issue.\\nAdditionally the following patterns may be uses as well as enum values\\nDx = FX tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer > 0\\nMx = FX tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer > 0\\nWx = FX tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer > 0\\nYx = FX tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer > 0\\nNoted that for FX the tenors expressed using Dx, Mx, Wx, and Yx values do not denote business days, but calendar days.',\n        added: 'FIX.2.7',\n        AbbrName: 'SettlTyp',\n        Tag: 63,\n        NotReqXML: 0,\n        Name: 'SettlType',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Specific date of trade settlement (SettlementDate) in YYYYMMDD format.\\nIf present, this field overrides SettlType (63). This field is required if the value of SettlType (63) is 6 (Future) or 8 (Sellers Option). This field must be omitted if the value of SettlType (63) is 7 (When and If Issued)\\n(expressed in local time at place of settlement)',\n        added: 'FIX.2.7',\n        AbbrName: 'SettlDt',\n        Tag: 64,\n        NotReqXML: 0,\n        Name: 'SettlDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Additional information about the security (e.g. preferred, warrants, etc.). Note also see SecurityType (167).\\nAs defined in the NYSE Stock and bond Symbol Directory and in the AMEX Fitch Directory.',\n        added: 'FIX.2.7',\n        AbbrName: 'Sfx',\n        Tag: 65,\n        NotReqXML: 0,\n        Name: 'SymbolSfx',\n    },\n    {\n        BaseCategory: 'ProgramTrading',\n        Type: 'String',\n        Description:\n            'Unique identifier for list as assigned by institution, used to associate multiple individual orders. Uniqueness must be guaranteed within a single trading day. Firms which generate multi-day orders should consider embedding a date within the ListID field to assure uniqueness across days.',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'ID',\n        AbbrName: 'ListID',\n        Tag: 66,\n        NotReqXML: 0,\n        Name: 'ListID',\n    },\n    {\n        BaseCategory: 'ProgramTrading',\n        Type: 'int',\n        Description:\n            'Sequence of individual order within list (i.e. ListSeqNo of TotNoOrders (68), 2 of 25, 3 of 25, . . . )',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'SeqNo',\n        AbbrName: 'ListSeqNo',\n        Tag: 67,\n        NotReqXML: 0,\n        Name: 'ListSeqNo',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Total number of list order entries across all messages. Should be the sum of all NoOrders (73) in each message that has repeating list order entries related to the same ListID (66). Used to support fragmentation.\\n(Prior to FIX 4.2 this field was named \"ListNoOrds\")',\n        added: 'FIX.2.7',\n        AbbrName: 'TotNoOrds',\n        Tag: 68,\n        NotReqXML: 0,\n        Name: 'TotNoOrders',\n    },\n    {\n        Type: 'String',\n        Description: 'Free format text message containing list handling and execution instructions.',\n        added: 'FIX.2.7',\n        AbbrName: 'ListExecInst',\n        Tag: 69,\n        NotReqXML: 0,\n        Name: 'ListExecInst',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'String',\n        Description: 'Unique identifier for allocation message.\\n(Prior to FIX 4.1 this field was of type int)',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'ID',\n        AbbrName: 'AllocID',\n        Tag: 70,\n        NotReqXML: 0,\n        Name: 'AllocID',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Identifies allocation transaction type *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***',\n        added: 'FIX.2.7',\n        AbbrName: 'TransTyp',\n        Tag: 71,\n        NotReqXML: 0,\n        Name: 'AllocTransType',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'String',\n        Description:\n            'Reference identifier to be used with AllocTransType (71) = Replace or Cancel.\\n(Prior to FIX 4.1 this field was of type int)',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'RefID',\n        AbbrName: 'RefAllocID',\n        Tag: 72,\n        NotReqXML: 0,\n        Name: 'RefAllocID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Indicates number of orders to be combined for average pricing and allocation.',\n        added: 'FIX.2.7',\n        AbbrName: 'NoOrds',\n        Tag: 73,\n        NotReqXML: 1,\n        Name: 'NoOrders',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Indicates number of decimal places to be used for average pricing. Absence of this field indicates that default precision arranged by the broker/institution is to be used.',\n        added: 'FIX.2.7',\n        AbbrName: 'AvgPxPrcsn',\n        Tag: 74,\n        NotReqXML: 0,\n        Name: 'AvgPxPrecision',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Indicates date of trade referenced in this message in YYYYMMDD format. Absence of this field indicates current day (expressed in local time at place of trade).',\n        added: 'FIX.2.7',\n        AbbrName: 'TrdDt',\n        Tag: 75,\n        NotReqXML: 0,\n        Name: 'TradeDate',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together.',\n        added: 'FIX.2.7',\n        AbbrName: 'PosEfct',\n        Tag: 77,\n        NotReqXML: 0,\n        Name: 'PositionEffect',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of repeating AllocAccount (79)/AllocPrice (366) entries.',\n        added: 'FIX.2.7',\n        AbbrName: 'NoAllocs',\n        Tag: 78,\n        NotReqXML: 1,\n        Name: 'NoAllocs',\n    },\n    {\n        Type: 'String',\n        Description: 'Sub-account mnemonic',\n        added: 'FIX.2.7',\n        AbbrName: 'Acct',\n        Tag: 79,\n        NotReqXML: 0,\n        Name: 'AllocAccount',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity to be allocated to specific sub-account\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'Qty',\n        Tag: 80,\n        NotReqXML: 0,\n        Name: 'AllocQty',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Processing code for sub-account. Absence of this field in AllocAccount (79) / AllocPrice (366) /AllocQty (80) / ProcessCode instance indicates regular trade.',\n        added: 'FIX.2.7',\n        AbbrName: 'ProcCode',\n        Tag: 81,\n        NotReqXML: 0,\n        Name: 'ProcessCode',\n    },\n    {\n        Type: 'int',\n        Description: 'Total number of reports within series.',\n        added: 'FIX.2.7',\n        AbbrName: 'NoRpts',\n        Tag: 82,\n        NotReqXML: 0,\n        Name: 'NoRpts',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Sequence number of message within report series. Used to carry reporting sequence number of the fill as represented on the Trade Report Side.',\n        added: 'FIX.2.7',\n        AbbrName: 'RptSeq',\n        Tag: 83,\n        NotReqXML: 0,\n        Name: 'RptSeq',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Total quantity canceled for this order.\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.2.7',\n        AbbrName: 'CxlQty',\n        Tag: 84,\n        NotReqXML: 0,\n        Name: 'CxlQty',\n    },\n    {\n        Type: 'NumInGroup',\n        Description:\n            'Number of delivery instruction fields in repeating group.\\nNote this field was removed in FIX 4.1 and reinstated in FIX 4.4.',\n        issue: 'SPEC-394',\n        added: 'FIX.2.7',\n        AbbrName: 'NoDlvyInst',\n        Tag: 85,\n        NotReqXML: 1,\n        Name: 'NoDlvyInst',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'int',\n        Description: 'Identifies status of allocation.',\n        added: 'FIX.2.7',\n        BaseCategoryAbbrName: 'Stat',\n        AbbrName: 'Stat',\n        Tag: 87,\n        NotReqXML: 0,\n        Name: 'AllocStatus',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Identifies reason for rejection.',\n        added: 'FIX.2.7',\n        updatedEP: 95,\n        AbbrName: 'RejCode',\n        Tag: 88,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'AllocRejCode',\n    },\n    {\n        Type: 'data',\n        Description: 'Electronic signature',\n        added: 'FIX.2.7',\n        deprecated: 'FIXT.1.1',\n        AbbrName: 'Signature',\n        Tag: 89,\n        NotReqXML: 1,\n        Name: 'Signature',\n    },\n    {\n        Type: 'Length',\n        Description: 'Length of encrypted message',\n        added: 'FIX.2.7',\n        deprecated: 'FIXT.1.1',\n        AssociatedDataTag: 91,\n        AbbrName: 'SecureDataLen',\n        Tag: 90,\n        NotReqXML: 1,\n        Name: 'SecureDataLen',\n    },\n    {\n        Type: 'data',\n        Description: 'Actual encrypted data stream',\n        added: 'FIX.2.7',\n        deprecated: 'FIXT.1.1',\n        AbbrName: 'SecureData',\n        Tag: 91,\n        NotReqXML: 1,\n        Name: 'SecureData',\n    },\n    {\n        Type: 'Length',\n        Description: 'Number of bytes in signature field',\n        added: 'FIX.2.7',\n        deprecated: 'FIXT.1.1',\n        AssociatedDataTag: 89,\n        AbbrName: 'SignatureLength',\n        Tag: 93,\n        NotReqXML: 1,\n        Name: 'SignatureLength',\n    },\n    {\n        Type: 'char',\n        Description: 'Email message type.',\n        added: 'FIX.2.7',\n        AbbrName: 'EmailTyp',\n        Tag: 94,\n        NotReqXML: 0,\n        Name: 'EmailType',\n    },\n    {\n        Type: 'Length',\n        Description: 'Number of bytes in raw data field.',\n        added: 'FIX.2.7',\n        AssociatedDataTag: 96,\n        AbbrName: 'RawDataLength',\n        Tag: 95,\n        NotReqXML: 0,\n        Name: 'RawDataLength',\n    },\n    {\n        Type: 'data',\n        Description: 'Unformatted raw data, can include bitmaps, word processor documents, etc.',\n        added: 'FIX.2.7',\n        AbbrName: 'RawData',\n        Tag: 96,\n        NotReqXML: 0,\n        Name: 'RawData',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates that message may contain information that has been sent under another sequence number.',\n        added: 'FIX.2.7',\n        AbbrName: 'PosRsnd',\n        Tag: 97,\n        NotReqXML: 0,\n        Name: 'PossResend',\n    },\n    {\n        Type: 'int',\n        Description: 'Method of encryption.',\n        added: 'FIX.2.7',\n        AbbrName: 'EncryptMethod',\n        Tag: 98,\n        NotReqXML: 1,\n        Name: 'EncryptMethod',\n    },\n    {\n        Type: 'Price',\n        Description: 'Price per unit of quantity (e.g. per share)',\n        added: 'FIX.2.7',\n        AbbrName: 'StopPx',\n        Tag: 99,\n        NotReqXML: 0,\n        Name: 'StopPx',\n    },\n    {\n        Type: 'Exchange',\n        Description:\n            'Execution destination as defined by institution when order is entered.\\nValid values:\\nSee \"Appendix 6-C\"',\n        added: 'FIX.2.7',\n        AbbrName: 'ExDest',\n        Tag: 100,\n        NotReqXML: 0,\n        Name: 'ExDestination',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Code to identify reason for cancel rejection.',\n        added: 'FIX.2.7',\n        AbbrName: 'CxlRejRsn',\n        Tag: 102,\n        NotReqXML: 0,\n        Name: 'CxlRejReason',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Code to identify reason for order rejection. Note: Values 3, 4, and 5 will be used when rejecting an order due to pre-allocation information errors.',\n        added: 'FIX.2.7',\n        AbbrName: 'RejRsn',\n        Tag: 103,\n        NotReqXML: 0,\n        Name: 'OrdRejReason',\n    },\n    {\n        Type: 'char',\n        Description: 'Code to qualify IOI use. (see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.3.0',\n        AbbrName: 'Qual',\n        Tag: 104,\n        NotReqXML: 0,\n        Name: 'IOIQualifier',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Name of security issuer (e.g. International Business Machines, GNMA).\\nsee also Volume 7: \"PRODUCT: FIXED INCOME - Euro Issuer Values\"',\n        added: 'FIX.3.0',\n        AbbrName: 'Issr',\n        Tag: 106,\n        NotReqXML: 0,\n        Name: 'Issuer',\n    },\n    {\n        Type: 'String',\n        Description: 'Can be used to provide an optional textual description for a financial instrument.',\n        added: 'FIX.3.0',\n        AbbrName: 'Desc',\n        Tag: 107,\n        NotReqXML: 0,\n        Name: 'SecurityDesc',\n    },\n    {\n        Type: 'int',\n        Description: 'Heartbeat interval (seconds)',\n        added: 'FIX.3.0',\n        AbbrName: 'HeartBtInt',\n        Tag: 108,\n        NotReqXML: 1,\n        Name: 'HeartBtInt',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Minimum quantity of an order to be executed.\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.3.0',\n        AbbrName: 'MinQty',\n        Tag: 110,\n        NotReqXML: 0,\n        Name: 'MinQty',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'The quantity to be displayed . Required for reserve orders. On orders specifies the qty to be displayed, on execution reports the currently displayed quantity.',\n        added: 'FIX.3.0',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'MaxFloor',\n        Tag: 111,\n        NotReqXML: 0,\n        Name: 'MaxFloor',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifier included in Test Request message to be returned in resulting Heartbeat',\n        added: 'FIX.3.0',\n        AbbrName: 'TestReqID',\n        Tag: 112,\n        NotReqXML: 1,\n        Name: 'TestReqID',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Identifies party of trade responsible for exchange reporting.',\n        added: 'FIX.3.0',\n        AbbrName: 'RptToExch',\n        Tag: 113,\n        NotReqXML: 0,\n        Name: 'ReportToExch',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates whether the broker is to locate the stock in conjunction with a short sell order.',\n        added: 'FIX.4.0',\n        AbbrName: 'LocReqd',\n        Tag: 114,\n        NotReqXML: 0,\n        Name: 'LocateReqd',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Assigned value used to identify firm originating message if the message was delivered by a third party i.e. the third party firm identifier would be delivered in the SenderCompID field and the firm originating the message in this field.',\n        added: 'FIX.4.0',\n        AbbrName: 'OBID',\n        Tag: 115,\n        NotReqXML: 0,\n        Name: 'OnBehalfOfCompID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Assigned value used to identify specific message originator (i.e. trader) if the message was delivered by a third party',\n        added: 'FIX.4.0',\n        AbbrName: 'OBSub',\n        Tag: 116,\n        NotReqXML: 0,\n        Name: 'OnBehalfOfSubID',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for quote',\n        added: 'FIX.4.0',\n        AbbrName: 'QID',\n        Tag: 117,\n        NotReqXML: 0,\n        Name: 'QuoteID',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Total amount due as the result of the transaction (e.g. for Buy order - principal + commission + fees) reported in currency of execution.',\n        added: 'FIX.4.0',\n        AbbrName: 'NetMny',\n        Tag: 118,\n        NotReqXML: 0,\n        Name: 'NetMoney',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Total amount due expressed in settlement currency (includes the effect of the forex transaction)',\n        added: 'FIX.4.0',\n        AbbrName: 'SettlCurrAmt',\n        Tag: 119,\n        NotReqXML: 0,\n        Name: 'SettlCurrAmt',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Currency code of settlement denomination.',\n        added: 'FIX.4.0',\n        AbbrName: 'SettlCcy',\n        Tag: 120,\n        NotReqXML: 0,\n        Name: 'SettlCurrency',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates request for forex accommodation trade to be executed along with security transaction.',\n        added: 'FIX.4.0',\n        AbbrName: 'ForexReq',\n        Tag: 121,\n        NotReqXML: 0,\n        Name: 'ForexReq',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Original time of message transmission (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\") when transmitting orders as the result of a resend request.',\n        added: 'FIX.4.0',\n        AbbrName: 'OrigSnt',\n        Tag: 122,\n        NotReqXML: 0,\n        Name: 'OrigSendingTime',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Indicates that the Sequence Reset message is replacing administrative or application messages which will not be resent.',\n        added: 'FIX.4.0',\n        AbbrName: 'GapFillFlag',\n        Tag: 123,\n        NotReqXML: 1,\n        Name: 'GapFillFlag',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'No of execution repeating group entries to follow.',\n        added: 'FIX.4.0',\n        AbbrName: 'NoExecs',\n        Tag: 124,\n        NotReqXML: 1,\n        Name: 'NoExecs',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Time/Date of order expiration (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")\\nThe meaning of expiration is specific to the context where the field is used.\\nFor orders, this is the expiration time of a Good Til Date TimeInForce.\\nFor Quotes - this is the expiration of the quote.\\nExpiration time is provided across the quote message dialog to control the length of time of the overall quoting process.\\nFor collateral requests, this is the time by which collateral must be assigned.\\nFor collateral assignments, this is the time by which a response to the assignment is expected.',\n        added: 'FIX.4.0',\n        AbbrName: 'ExpireTm',\n        Tag: 126,\n        NotReqXML: 0,\n        Name: 'ExpireTime',\n    },\n    {\n        Type: 'char',\n        Description: 'Reason for execution rejection.',\n        added: 'FIX.4.0',\n        AbbrName: 'DkRsn',\n        Tag: 127,\n        NotReqXML: 0,\n        Name: 'DKReason',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Assigned value used to identify the firm targeted to receive the message if the message is delivered by a third party i.e. the third party firm identifier would be delivered in the TargetCompID (56) field and the ultimate receiver firm ID in this field.',\n        added: 'FIX.4.0',\n        AbbrName: 'D2ID',\n        Tag: 128,\n        NotReqXML: 0,\n        Name: 'DeliverToCompID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Assigned value used to identify specific message recipient (i.e. trader) if the message is delivered by a third party',\n        added: 'FIX.4.0',\n        AbbrName: 'D2Sub',\n        Tag: 129,\n        NotReqXML: 0,\n        Name: 'DeliverToSubID',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Indicates that IOI is the result of an existing agency order or a facilitation position resulting from an agency order, not from principal trading or order solicitation activity.',\n        added: 'FIX.4.0',\n        AbbrName: 'NatFlag',\n        Tag: 130,\n        NotReqXML: 0,\n        Name: 'IOINaturalFlag',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for quote request',\n        added: 'FIX.4.0',\n        AbbrName: 'ReqID',\n        Tag: 131,\n        NotReqXML: 0,\n        Name: 'QuoteReqID',\n    },\n    {\n        Type: 'Price',\n        Description: 'Bid price/rate',\n        added: 'FIX.4.0',\n        AbbrName: 'BidPx',\n        Tag: 132,\n        NotReqXML: 0,\n        Name: 'BidPx',\n    },\n    {\n        Type: 'Price',\n        Description: 'Offer price/rate',\n        added: 'FIX.4.0',\n        AbbrName: 'OfrPx',\n        Tag: 133,\n        NotReqXML: 0,\n        Name: 'OfferPx',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity of bid\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.4.0',\n        AbbrName: 'BidSz',\n        Tag: 134,\n        NotReqXML: 0,\n        Name: 'BidSize',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity of offer\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.4.0',\n        AbbrName: 'OfrSz',\n        Tag: 135,\n        NotReqXML: 0,\n        Name: 'OfferSize',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of repeating groups of miscellaneous fees',\n        added: 'FIX.4.0',\n        AbbrName: 'NoMiscFees',\n        Tag: 136,\n        NotReqXML: 1,\n        Name: 'NoMiscFees',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Miscellaneous fee value',\n        added: 'FIX.4.0',\n        AbbrName: 'Amt',\n        Tag: 137,\n        NotReqXML: 0,\n        Name: 'MiscFeeAmt',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Currency of miscellaneous fee',\n        added: 'FIX.4.0',\n        AbbrName: 'Curr',\n        Tag: 138,\n        NotReqXML: 0,\n        Name: 'MiscFeeCurr',\n    },\n    {\n        Type: 'String',\n        Description: 'Indicates type of miscellaneous fee.',\n        added: 'FIX.4.0',\n        AbbrName: 'Typ',\n        Tag: 139,\n        NotReqXML: 0,\n        Name: 'MiscFeeType',\n    },\n    {\n        Type: 'Price',\n        Description: 'Previous closing price of security.',\n        added: 'FIX.4.0',\n        AbbrName: 'PrevClsPx',\n        Tag: 140,\n        NotReqXML: 0,\n        Name: 'PrevClosePx',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates that the both sides of the FIX session should reset sequence numbers.',\n        added: 'FIX.4.1',\n        AbbrName: 'ResetSeqNumFlag',\n        Tag: 141,\n        NotReqXML: 1,\n        Name: 'ResetSeqNumFlag',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader)\",\n        added: 'FIX.4.1',\n        AbbrName: 'SLoc',\n        Tag: 142,\n        NotReqXML: 0,\n        Name: 'SenderLocationID',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Assigned value used to identify specific message destination's location (i.e. geographic location and/or desk, trader)\",\n        added: 'FIX.4.1',\n        AbbrName: 'TLoc',\n        Tag: 143,\n        NotReqXML: 0,\n        Name: 'TargetLocationID',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Assigned value used to identify specific message originator's location (i.e. geographic location and/or desk, trader) if the message was delivered by a third party\",\n        added: 'FIX.4.1',\n        AbbrName: 'OBLoc',\n        Tag: 144,\n        NotReqXML: 0,\n        Name: 'OnBehalfOfLocationID',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Assigned value used to identify specific message recipient's location (i.e. geographic location and/or desk, trader) if the message was delivered by a third party\",\n        added: 'FIX.4.1',\n        AbbrName: 'D2Loc',\n        Tag: 145,\n        NotReqXML: 0,\n        Name: 'DeliverToLocationID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Specifies the number of repeating symbols specified.',\n        added: 'FIX.4.1',\n        AbbrName: 'NoReltdSym',\n        Tag: 146,\n        NotReqXML: 1,\n        Name: 'NoRelatedSym',\n    },\n    {\n        Type: 'String',\n        Description: 'The subject of an Email message',\n        added: 'FIX.4.1',\n        AbbrName: 'Subject',\n        Tag: 147,\n        NotReqXML: 0,\n        Name: 'Subject',\n    },\n    {\n        Type: 'String',\n        Description: 'The headline of a News message',\n        added: 'FIX.4.1',\n        AbbrName: 'Headline',\n        Tag: 148,\n        NotReqXML: 0,\n        Name: 'Headline',\n    },\n    {\n        Type: 'String',\n        Description:\n            'A URI (Uniform Resource Identifier) or URL (Uniform Resource Locator) link to additional information (i.e. http://www.XYZ.com/research.html)\\nSee \"Appendix 6-B FIX Fields Based Upon Other Standards\"',\n        added: 'FIX.4.1',\n        AbbrName: 'URL',\n        Tag: 149,\n        NotReqXML: 0,\n        Name: 'URLLink',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Describes the specific ExecutionRpt (i.e. Pending Cancel) while OrdStatus (39) will always identify the current order status (i.e. Partially Filled) *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***',\n        added: 'FIX.4.1',\n        AbbrName: 'ExecTyp',\n        Tag: 150,\n        NotReqXML: 0,\n        Name: 'ExecType',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Quantity open for further execution. If the OrdStatus (39) is Canceled, DoneForTheDay, Expired, Calculated, or Rejected (in which case the order is no longer active) then LeavesQty could be 0, otherwise LeavesQty = OrderQty (38) - CumQty (14).\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.4.1',\n        AbbrName: 'LeavesQty',\n        Tag: 151,\n        NotReqXML: 0,\n        Name: 'LeavesQty',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Specifies the approximate order quantity desired in total monetary units vs. as tradeable units (e.g. number of shares). The broker or fund manager (for CIV orders) would be responsible for converting and calculating a tradeable unit (e.g. share) quantity (OrderQty (38)) based upon this amount to be used for the actual order and subsequent messages.',\n        added: 'FIX.4.1',\n        AbbrName: 'Cash',\n        Tag: 152,\n        NotReqXML: 0,\n        Name: 'CashOrderQty',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'AvgPx (6) for a specific AllocAccount (79)\\nFor Fixed Income this is always expressed as \"percent of par\" price type.',\n        added: 'FIX.4.1',\n        AbbrName: 'AvgPx',\n        Tag: 153,\n        NotReqXML: 0,\n        Name: 'AllocAvgPx',\n    },\n    {\n        Type: 'Amt',\n        Description: 'NetMoney (8) for a specific AllocAccount (79)',\n        added: 'FIX.4.1',\n        AbbrName: 'NetMny',\n        Tag: 154,\n        NotReqXML: 0,\n        Name: 'AllocNetMoney',\n    },\n    {\n        Type: 'float',\n        Description: 'Foreign exchange rate used to compute SettlCurrAmt (9) from Currency (5) to SettlCurrency (20)',\n        added: 'FIX.4.1',\n        AbbrName: 'SettlCurrFxRt',\n        Tag: 155,\n        NotReqXML: 0,\n        Name: 'SettlCurrFxRate',\n    },\n    {\n        Type: 'char',\n        Description: 'Specifies whether or not SettlCurrFxRate (55) should be multiplied or divided.',\n        added: 'FIX.4.1',\n        AbbrName: 'SettlCurrFxRtCalc',\n        Tag: 156,\n        NotReqXML: 0,\n        Name: 'SettlCurrFxRateCalc',\n    },\n    {\n        Type: 'int',\n        Description: 'Number of Days of Interest for convertible bonds and fixed income. Note value may be negative.',\n        added: 'FIX.4.1',\n        AbbrName: 'NumDaysInt',\n        Tag: 157,\n        NotReqXML: 0,\n        Name: 'NumDaysInterest',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'The amount the buyer compensates the seller for the portion of the next coupon interest payment the seller has earned but will not receive from the issuer because the issuer will send the next coupon payment to the buyer. Accrued Interest Rate is the annualized Accrued Interest amount divided by the purchase price of the bond.',\n        added: 'FIX.4.1',\n        AbbrName: 'AcrdIntRt',\n        Tag: 158,\n        NotReqXML: 0,\n        Name: 'AccruedInterestRate',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Amount of Accrued Interest for convertible bonds and fixed income',\n        added: 'FIX.4.1',\n        AbbrName: 'AcrdIntAmt',\n        Tag: 159,\n        NotReqXML: 0,\n        Name: 'AccruedInterestAmt',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Indicates mode used for Settlement Instructions message. *** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***',\n        added: 'FIX.4.1',\n        AbbrName: 'SettlInstMode',\n        Tag: 160,\n        NotReqXML: 0,\n        Name: 'SettlInstMode',\n    },\n    {\n        Type: 'String',\n        Description: 'Free format text related to a specific AllocAccount (79).',\n        added: 'FIX.4.1',\n        AbbrName: 'Txt',\n        Tag: 161,\n        NotReqXML: 0,\n        Name: 'AllocText',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for Settlement Instruction.',\n        added: 'FIX.4.1',\n        AbbrName: 'SettlInstID',\n        Tag: 162,\n        NotReqXML: 0,\n        Name: 'SettlInstID',\n    },\n    {\n        Type: 'char',\n        Description: 'Settlement Instructions message transaction type',\n        added: 'FIX.4.1',\n        AbbrName: 'SettlInstTransTyp',\n        Tag: 163,\n        NotReqXML: 0,\n        Name: 'SettlInstTransType',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for an email thread (new and chain of replies)',\n        added: 'FIX.4.1',\n        AbbrName: 'EmailThreadID',\n        Tag: 164,\n        NotReqXML: 0,\n        Name: 'EmailThreadID',\n    },\n    {\n        Type: 'char',\n        Description: 'Indicates source of Settlement Instructions',\n        added: 'FIX.4.1',\n        AbbrName: 'InstSrc',\n        Tag: 165,\n        NotReqXML: 0,\n        Name: 'SettlInstSource',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Indicates type of security. Security type enumerations are grouped by Product(460) field value. NOTE: Additional values may be used by mutual agreement of the counterparties.',\n        added: 'FIX.4.1',\n        AbbrName: 'SecTyp',\n        Tag: 167,\n        NotReqXML: 0,\n        Name: 'SecurityType',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Time the details within the message should take effect (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n        added: 'FIX.4.1',\n        AbbrName: 'EfctvTm',\n        Tag: 168,\n        NotReqXML: 0,\n        Name: 'EffectiveTime',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the Standing Instruction database used',\n        added: 'FIX.4.1',\n        AbbrName: 'StandInstDbTyp',\n        Tag: 169,\n        NotReqXML: 0,\n        Name: 'StandInstDbType',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Name of the Standing Instruction database represented with StandInstDbType (169) (i.e. the Global Custodian's name).\",\n        added: 'FIX.4.1',\n        AbbrName: 'StandInstDbName',\n        Tag: 170,\n        NotReqXML: 0,\n        Name: 'StandInstDbName',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unique identifier used on the Standing Instructions database for the Standing Instructions to be referenced.',\n        added: 'FIX.4.1',\n        AbbrName: 'StandInstDbID',\n        Tag: 171,\n        NotReqXML: 0,\n        Name: 'StandInstDbID',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies type of settlement',\n        added: 'FIX.4.1',\n        AbbrName: 'DlvryTyp',\n        Tag: 172,\n        NotReqXML: 0,\n        Name: 'SettlDeliveryType',\n    },\n    {\n        Type: 'Price',\n        Description: 'Bid F/X spot rate.',\n        added: 'FIX.4.1',\n        AbbrName: 'BidSpotRt',\n        Tag: 188,\n        NotReqXML: 0,\n        Name: 'BidSpotRate',\n    },\n    {\n        Type: 'PriceOffset',\n        Description: 'Bid F/X forward points added to spot rate. May be a negative value.',\n        added: 'FIX.4.1',\n        AbbrName: 'BidFwdPnts',\n        Tag: 189,\n        NotReqXML: 0,\n        Name: 'BidForwardPoints',\n    },\n    {\n        Type: 'Price',\n        Description: 'Offer F/X spot rate.',\n        added: 'FIX.4.1',\n        AbbrName: 'OfrSpotRt',\n        Tag: 190,\n        NotReqXML: 0,\n        Name: 'OfferSpotRate',\n    },\n    {\n        Type: 'PriceOffset',\n        Description: 'Offer F/X forward points added to spot rate. May be a negative value.',\n        added: 'FIX.4.1',\n        AbbrName: 'OfrFwdPnts',\n        Tag: 191,\n        NotReqXML: 0,\n        Name: 'OfferForwardPoints',\n    },\n    {\n        Type: 'Qty',\n        Description: 'OrderQty (38) of the future part of a F/X swap order.',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'Qty2',\n        Tag: 192,\n        NotReqXML: 0,\n        Name: 'OrderQty2',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'SettDate (64) of the future part of a F/X swap order.',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'SettlDt2',\n        Tag: 193,\n        NotReqXML: 0,\n        Name: 'SettlDate2',\n    },\n    {\n        Type: 'Price',\n        Description: 'F/X spot rate.',\n        added: 'FIX.4.1',\n        AbbrName: 'LastSpotRt',\n        Tag: 194,\n        NotReqXML: 0,\n        Name: 'LastSpotRate',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'F/X forward points added to LastSpotRate (94). May be a negative value. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n        added: 'FIX.4.1',\n        AbbrName: 'LastFwdPnts',\n        Tag: 195,\n        NotReqXML: 0,\n        Name: 'LastForwardPoints',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'String',\n        Description:\n            'Can be used to link two different Allocation messages (each with unique AllocID (70)) together, i.e. for F/X \"Netting\" or \"Swaps\". Should be unique.',\n        added: 'FIX.4.1',\n        BaseCategoryAbbrName: 'LinkID',\n        AbbrName: 'LinkID',\n        Tag: 196,\n        NotReqXML: 0,\n        Name: 'AllocLinkID',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the type of Allocation linkage when AllocLinkID (96) is used.',\n        added: 'FIX.4.1',\n        AbbrName: 'LinkTyp',\n        Tag: 197,\n        NotReqXML: 0,\n        Name: 'AllocLinkType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Assigned by the party which accepts the order. Can be used to provide the OrderID (37) used by an exchange or executing system.',\n        added: 'FIX.4.1',\n        AbbrName: 'OrdID2',\n        Tag: 198,\n        NotReqXML: 0,\n        Name: 'SecondaryOrderID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of repeating groups of IOIQualifiers (04).',\n        added: 'FIX.4.1',\n        AbbrName: 'NoIOIQuals',\n        Tag: 199,\n        NotReqXML: 1,\n        Name: 'NoIOIQualifiers',\n    },\n    {\n        Type: 'MonthYear',\n        Description:\n            'Can be used with standardized derivatives vs. the MaturityDate (54) field.  Month and Year of the maturity (used for standardized futures and options).\\nFormat:\\nYYYYMM (e.g. 199903)\\nYYYYMMDD (e.g. 20030323)\\nYYYYMMwN (e.g. 200303w) for week\\nA specific date or can be appended to the MaturityMonthYear. For instance, if multiple standard products exist that mature in the same Year and Month, but actually mature at a different time, a value can be appended, such as \"w\" or \"w2\" to indicate week  as opposed to week 2 expiration. Likewise, the date (0-3) can be appended to indicate a specific expiration (maturity date).',\n        added: 'FIX.4.1',\n        updatedEP: 95,\n        AbbrName: 'MMY',\n        Tag: 200,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'MaturityMonthYear',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates whether an option contract is a put or call',\n        added: 'FIX.4.1',\n        AbbrName: 'PutCall',\n        Tag: 201,\n        NotReqXML: 0,\n        Name: 'PutOrCall',\n    },\n    {\n        Type: 'Price',\n        Description: 'Strike Price for an Option.',\n        added: 'FIX.4.1',\n        AbbrName: 'StrkPx',\n        Tag: 202,\n        NotReqXML: 0,\n        Name: 'StrikePrice',\n    },\n    {\n        Type: 'int',\n        Description: 'Used for derivative products, such as options',\n        added: 'FIX.4.1',\n        AbbrName: 'Covered',\n        Tag: 203,\n        NotReqXML: 0,\n        Name: 'CoveredOrUncovered',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Provided to support versioning of option contracts as a result of corporate actions or events. Use of this field is defined by counterparty agreement or market conventions.',\n        added: 'FIX.4.1',\n        AbbrName: 'OptAt',\n        Tag: 206,\n        NotReqXML: 0,\n        Name: 'OptAttribute',\n    },\n    {\n        Type: 'Exchange',\n        Description: 'Market used to help identify a security.\\nValid values:\\nSee \"Appendix 6-C\"',\n        added: 'FIX.4.1',\n        AbbrName: 'Exch',\n        Tag: 207,\n        NotReqXML: 0,\n        Name: 'SecurityExchange',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates whether or not details should be communicated to BrokerOfCredit (i.e. step-in broker).',\n        added: 'FIX.4.1',\n        AbbrName: 'NotifyBrkrOfCredit',\n        Tag: 208,\n        NotReqXML: 0,\n        Name: 'NotifyBrokerOfCredit',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'int',\n        Description:\n            'Indicates how the receiver (i.e. third party) of Allocation message should handle/process the account details.',\n        added: 'FIX.4.1',\n        BaseCategoryAbbrName: 'HndInst',\n        AbbrName: 'HandlInst',\n        Tag: 209,\n        NotReqXML: 0,\n        Name: 'AllocHandlInst',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Maximum quantity (e.g. number of shares) within an order to be shown to other customers (i.e. sent via an IOI).\\n(Prior to FIX 4.2 this field was of type int)',\n        added: 'FIX.4.1',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'MaxShow',\n        Tag: 210,\n        NotReqXML: 0,\n        Name: 'MaxShow',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Amount (signed) added to the peg for a pegged order in the context of the PegOffsetType (836)\\n(Prior to FIX 4.4 this field was of type PriceOffset)',\n        added: 'FIX.4.1',\n        AbbrName: 'OfstVal',\n        Tag: 211,\n        NotReqXML: 0,\n        Name: 'PegOffsetValue',\n    },\n    {\n        Type: 'Length',\n        Description: 'Length of the XmlData data block.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 213,\n        AbbrName: 'XmlDataLen',\n        Tag: 212,\n        NotReqXML: 1,\n        Name: 'XmlDataLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Actual XML data stream (e.g. FIXML). See approriate XML reference (e.g. FIXML). Note: may contain embedded SOH characters.',\n        added: 'FIX.4.2',\n        AbbrName: 'XmlData',\n        Tag: 213,\n        NotReqXML: 1,\n        Name: 'XmlData',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Reference identifier for the SettlInstID (162) with Cancel and Replace SettlInstTransType (163) transaction types.',\n        added: 'FIX.4.2',\n        AbbrName: 'SettlInstRefID',\n        Tag: 214,\n        NotReqXML: 0,\n        Name: 'SettlInstRefID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description:\n            'Number of repeating groups of RoutingID (217) and RoutingType (216) values.\\nSee Volume 3: \"Pre-Trade Message Targeting/Routing\"',\n        added: 'FIX.4.2',\n        AbbrName: 'NoRtgIDs',\n        Tag: 215,\n        NotReqXML: 1,\n        Name: 'NoRoutingIDs',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the type of RoutingID (217) specified.',\n        added: 'FIX.4.2',\n        AbbrName: 'RtgTyp',\n        Tag: 216,\n        NotReqXML: 0,\n        Name: 'RoutingType',\n    },\n    {\n        Type: 'String',\n        Description: 'Assigned value used to identify a specific routing destination.',\n        added: 'FIX.4.2',\n        AbbrName: 'RtgID',\n        Tag: 217,\n        NotReqXML: 0,\n        Name: 'RoutingID',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'For Fixed Income. Either Swap Spread or Spread to Benchmark depending upon the order type.\\nSpread to Benchmark: Basis points relative to a benchmark. To be expressed as \"count of basis points\" (vs. an absolute value). E.g. High Grade Corporate Bonds may express price as basis points relative to benchmark (the BenchmarkCurveName (22) field). Note: Basis points can be negative.\\nSwap Spread: Target spread for a swap.',\n        added: 'FIX.4.2',\n        AbbrName: 'Spread',\n        Tag: 218,\n        NotReqXML: 0,\n        Name: 'Spread',\n    },\n    {\n        Type: 'Currency',\n        Description:\n            'Identifies currency used for benchmark curve. See \"Appendix 6-A: Valid Currency Codes\" for information on obtaining valid values.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Ccy',\n        Tag: 220,\n        NotReqXML: 0,\n        Name: 'BenchmarkCurveCurrency',\n    },\n    {\n        Type: 'String',\n        Description: 'Name of benchmark curve.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Name',\n        Tag: 221,\n        NotReqXML: 0,\n        Name: 'BenchmarkCurveName',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Point on benchmark curve. Free form values: e.g. \"Y\", \"7Y\", \"INTERPOLATED\".\\nSample values:\\nM = combination of a number between 1-12 and a \"M\" for month\\nY = combination of number between 1-100 and a \"Y\" for year}\\n10Y-OLD = see above, then add \"-OLD\" when appropriate\\nINTERPOLATED = the point is mathematically derived\\n2/2031 5 3/8 = the point is stated via a combination of maturity month / year and coupon\\nSee Fixed Income-specific documentation at http://www.fixprotocol.org for additional values.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Point',\n        Tag: 222,\n        NotReqXML: 0,\n        Name: 'BenchmarkCurvePoint',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            \"The rate of interest that, when multiplied by the principal, par value, or face value of a bond, provides the currency amount of the periodic interest payment. The coupon is always cited, along with maturity, in any quotation of a bond's price.\",\n        added: 'FIX.4.2',\n        AbbrName: 'CpnRt',\n        Tag: 223,\n        NotReqXML: 0,\n        Name: 'CouponRate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Date interest is to be paid. Used in identifying Corporate Bond issues.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)',\n        added: 'FIX.4.2',\n        AbbrName: 'CpnPmt',\n        Tag: 224,\n        NotReqXML: 0,\n        Name: 'CouponPaymentDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'The date on which a bond or stock offering is issued. It may or may not be the same as the effective date (\"Dated Date\") or the date on which interest begins to accrue (\"Interest Accrual Date\")\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)',\n        added: 'FIX.4.2',\n        AbbrName: 'Issued',\n        Tag: 225,\n        NotReqXML: 0,\n        Name: 'IssueDate',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Number of business days before repurchase of a repo. (Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'RepoTrm',\n        Tag: 226,\n        NotReqXML: 0,\n        Name: 'RepurchaseTerm',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'Percent of par at which a Repo will be repaid. Represented as a percent, e.g. .9525 represents 95-/4 percent of par. (Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'RepoRt',\n        Tag: 227,\n        NotReqXML: 0,\n        Name: 'RepurchaseRate',\n    },\n    {\n        Type: 'float',\n        Description:\n            'For Fixed Income: Amorization Factor for deriving Current face from Original face for ABS or MBS securities, note the fraction may be greater than, equal to or less than . In TIPS securities this is the Inflation index.\\nQty * Factor * Price = Gross Trade Amount\\nFor Derivatives: Contract Value Factor by which price must be adjusted to determine the true nominal value of one futures/options contract.\\n(Qty * Price) * Factor = Nominal Value\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Fctr',\n        Tag: 228,\n        NotReqXML: 0,\n        Name: 'Factor',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Used with Fixed Income for Muncipal New Issue Market. Agreement in principal between counter-parties prior to actual trade date.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)',\n        added: 'FIX.4.2',\n        AbbrName: 'OrignDt',\n        Tag: 229,\n        NotReqXML: 0,\n        Name: 'TradeOriginationDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'The date when a distribution of interest is deducted from a securities assets or set aside for payment to bondholders. On the ex-date, the securities price drops by the amount of the distribution (plus or minus any market activity).\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)',\n        added: 'FIX.4.2',\n        AbbrName: 'ExDt',\n        Tag: 230,\n        NotReqXML: 0,\n        Name: 'ExDate',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Specifies the ratio or multiply factor to convert from \"nominal\" units (e.g. contracts) to total units (e.g. shares) (e.g. 1.0, 100, 1000, etc). Applicable For Fixed Income, Convertible Bonds, Derivatives, etc.\\nIn general quantities for all calsses should be expressed in the basic unit of the instrument, e.g. shares for equities, norminal or par amount for bonds, currency for foreign exchange. When quantity is expressed in contracts, e.g. financing transactions and bond trade reporting, ContractMutliplier should contain the number of units in one contract and can be omitted if the multiplier is the default amount for the instrument, i.e. 1,000 par of bonds, 1,000,000 par for financing transactions.',\n        added: 'FIX.4.2',\n        AbbrName: 'Mult',\n        Tag: 231,\n        NotReqXML: 0,\n        Name: 'ContractMultiplier',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of stipulation entries\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3).',\n        added: 'FIX.4.2',\n        AbbrName: 'NoStips',\n        Tag: 232,\n        NotReqXML: 1,\n        Name: 'NoStipulations',\n    },\n    {\n        Type: 'String',\n        Description:\n            'For Fixed Income.\\nType of Stipulation.\\nOther types may be used by mutual agreement of the counterparties.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Typ',\n        Tag: 233,\n        NotReqXML: 0,\n        Name: 'StipulationType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'For Fixed Income. Value of stipulation.\\nThe expression can be an absolute single value or a combination of values and logical operators:\\n< value\\n> value\\n<= value\\n>= value\\nvalue\\nvalue - value2\\nvalue OR value2\\nvalue AND value2\\nYES\\nNO\\nBargain conditions recognized by the London Stock Exchange - to be used when StipulationType is \"BGNCON\".\\nCD = Special cum Dividend\\nXD = Special ex Dividend\\nCC = Special cum Coupon\\nXC = Special ex Coupon\\nCB = Special cum Bonus\\nXB = Special ex Bonus\\nCR = Special cum Rights\\nXR = Special ex Rights\\nCP = Special cum Capital Repayments\\nXP = Special ex Capital Repayments\\nCS = Cash Settlement\\nSP = Special Price\\nTR = Report for European Equity Market Securities in accordance with Chapter 8 of the Rules.\\nGD = Guaranteed Delivery\\nValues for StipulationType = \"PXSOURCE\":\\nBB GENERIC\\nBB FAIRVALUE\\nBROKERTEC\\nESPEED\\nGOVPX\\nHILLIARD FARBER\\nICAP\\nTRADEWEB\\nTULLETT LIBERTY\\nIf a particular side of the market is wanted append /BID /OFFER or /MID.\\nplus appropriate combinations of the above and other expressions by mutual agreement of the counterparties.\\nExamples: \">=60\", \".25\", \"ORANGE OR CONTRACOSTA\", etc.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Val',\n        Tag: 234,\n        NotReqXML: 0,\n        Name: 'StipulationValue',\n    },\n    {\n        Type: 'String',\n        Description: 'Type of yield. (Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Typ',\n        Tag: 235,\n        NotReqXML: 0,\n        Name: 'YieldType',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Yield percentage.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Yld',\n        Tag: 236,\n        NotReqXML: 0,\n        Name: 'Yield',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            \"The price at which the securities are distributed to the different members of an underwriting group for the primary market in Municipals, total gross underwriter's spread.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        AbbrName: 'TotTakedown',\n        Tag: 237,\n        NotReqXML: 0,\n        Name: 'TotalTakedown',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Provides the reduction in price for the secondary market in Muncipals.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'Concession',\n        Tag: 238,\n        NotReqXML: 0,\n        Name: 'Concession',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifies the collateral used in the transaction.\\nValid values: see SecurityType (167) field (Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        AssociatedDataTag: 167,\n        AbbrName: 'RepoCollSecTyp',\n        Tag: 239,\n        NotReqXML: 0,\n        Name: 'RepoCollateralSecurityType',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Return of investor's principal in a security. Bond redemption can occur before maturity date.(Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate)\",\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'Redeem',\n        Tag: 240,\n        NotReqXML: 0,\n        Name: 'RedemptionDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Underlying security's CouponPaymentDate.\\nSee CouponPaymentDate (224) field for description\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)\",\n        added: 'FIX.4.2',\n        AbbrName: 'CpnPmt',\n        Tag: 241,\n        NotReqXML: 0,\n        Name: 'UnderlyingCouponPaymentDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Underlying security's IssueDate.\\nSee IssueDate (225) field for description\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)\",\n        added: 'FIX.4.2',\n        AbbrName: 'Issued',\n        Tag: 242,\n        NotReqXML: 0,\n        Name: 'UnderlyingIssueDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Underlying security's RepoCollateralSecurityType. See RepoCollateralSecurityType (239) field for description.(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        AssociatedDataTag: 167,\n        AbbrName: 'RepoCollSecTyp',\n        Tag: 243,\n        NotReqXML: 0,\n        Name: 'UnderlyingRepoCollateralSecurityType',\n    },\n    {\n        Type: 'int',\n        Description:\n            \"Underlying security's RepurchaseTerm. See RepurchaseTerm (226) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'RepoTrm',\n        Tag: 244,\n        NotReqXML: 0,\n        Name: 'UnderlyingRepurchaseTerm',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            \"Underlying security's RepurchaseRate. See RepurchaseRate (227) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'RepoRt',\n        Tag: 245,\n        NotReqXML: 0,\n        Name: 'UnderlyingRepurchaseRate',\n    },\n    {\n        Type: 'float',\n        Description:\n            \"Underlying security's Factor.\\nSee Factor (228) field for description\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        AbbrName: 'Fctr',\n        Tag: 246,\n        NotReqXML: 0,\n        Name: 'UnderlyingFactor',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Underlying security's RedemptionDate. See RedemptionDate (240) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate)\",\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'Redeem',\n        Tag: 247,\n        NotReqXML: 0,\n        Name: 'UnderlyingRedemptionDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Multileg instrument's individual leg security's CouponPaymentDate.\\nSee CouponPaymentDate (224) field for description\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)\",\n        added: 'FIX.4.2',\n        AbbrName: 'CpnPmt',\n        Tag: 248,\n        NotReqXML: 0,\n        Name: 'LegCouponPaymentDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Multileg instrument's individual leg security's IssueDate.\\nSee IssueDate (225) field for description\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)\",\n        added: 'FIX.4.2',\n        AbbrName: 'Issued',\n        Tag: 249,\n        NotReqXML: 0,\n        Name: 'LegIssueDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Multileg instrument's individual leg security's RepoCollateralSecurityType. See RepoCollateralSecurityType (239) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        AssociatedDataTag: 167,\n        AbbrName: 'RepoCollSecTyp',\n        Tag: 250,\n        NotReqXML: 0,\n        Name: 'LegRepoCollateralSecurityType',\n    },\n    {\n        Type: 'int',\n        Description:\n            \"Multileg instrument's individual leg security's RepurchaseTerm. See RepurchaseTerm (226) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'RepoTrm',\n        Tag: 251,\n        NotReqXML: 0,\n        Name: 'LegRepurchaseTerm',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            \"Multileg instrument's individual leg security's RepurchaseRate. See RepurchaseRate (227) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'RepoRt',\n        Tag: 252,\n        NotReqXML: 0,\n        Name: 'LegRepurchaseRate',\n    },\n    {\n        Type: 'float',\n        Description:\n            \"Multileg instrument's individual leg security's Factor.\\nSee Factor (228) field for description\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        AbbrName: 'Fctr',\n        Tag: 253,\n        NotReqXML: 0,\n        Name: 'LegFactor',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Multileg instrument's individual leg security's RedemptionDate. See RedemptionDate (240) field for description (Note tag # was reserved in FIX 4.1, added in FIX 4.3) (prior to FIX 4.4 field was of type UTCDate)\",\n        added: 'FIX.4.2',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'Redeem',\n        Tag: 254,\n        NotReqXML: 0,\n        Name: 'LegRedemptionDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"An evaluation of a company's ability to repay obligations or its likelihood of not defaulting. These evaluation are provided by Credit Rating Agencies, i.e. S&P, Moody's.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        AbbrName: 'CrdRtg',\n        Tag: 255,\n        NotReqXML: 0,\n        Name: 'CreditRating',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Underlying security's CreditRating.\\nSee CreditRating (255) field for description\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        AbbrName: 'CrdRtg',\n        Tag: 256,\n        NotReqXML: 0,\n        Name: 'UnderlyingCreditRating',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Multileg instrument's individual leg security's CreditRating.\\nSee CreditRating (255) field for description\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\",\n        added: 'FIX.4.2',\n        AbbrName: 'CrdRtg',\n        Tag: 257,\n        NotReqXML: 0,\n        Name: 'LegCreditRating',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Driver and part of trade in the event that the Security Master file was wrong at the point of entry(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'TrddFlatSwitch',\n        Tag: 258,\n        NotReqXML: 0,\n        Name: 'TradedFlatSwitch',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'BasisFeatureDate allows requesting firms within fixed income the ability to request an alternative yield-to-worst, -maturity, -extended or other call. This flows through the confirm process.\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)\\n(prior to FIX 4.4 field was of type UTCDate)',\n        added: 'FIX.4.2',\n        AbbrName: 'BasisFeatureDt',\n        Tag: 259,\n        NotReqXML: 0,\n        Name: 'BasisFeatureDate',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Price for BasisFeatureDate.\\nSee BasisFeatureDate (259)\\n(Note tag # was reserved in FIX 4.1, added in FIX 4.3)',\n        added: 'FIX.4.2',\n        AbbrName: 'BasisFeaturePx',\n        Tag: 260,\n        NotReqXML: 0,\n        Name: 'BasisFeaturePrice',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for Market Data Request',\n        added: 'FIX.4.2',\n        AbbrName: 'ReqID',\n        Tag: 262,\n        NotReqXML: 0,\n        Name: 'MDReqID',\n    },\n    {\n        Type: 'char',\n        Description: 'Subscription Request Type',\n        added: 'FIX.4.2',\n        AbbrName: 'SubReqTyp',\n        Tag: 263,\n        NotReqXML: 0,\n        Name: 'SubscriptionRequestType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Depth of market for Book Snapshot / Incremental updates\\n0 - full book depth\\n1 - top of book\\n2 and above - book depth (number of levels)',\n        added: 'FIX.4.2',\n        AbbrName: 'MktDepth',\n        Tag: 264,\n        NotReqXML: 0,\n        Name: 'MarketDepth',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the type of Market Data update.',\n        added: 'FIX.4.2',\n        AbbrName: 'UpdtTyp',\n        Tag: 265,\n        NotReqXML: 0,\n        Name: 'MDUpdateType',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Specifies whether or not book entries should be aggregated. (Not specified) = broker option',\n        added: 'FIX.4.2',\n        AbbrName: 'AggBook',\n        Tag: 266,\n        NotReqXML: 0,\n        Name: 'AggregatedBook',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of MDEntryType (269) fields requested.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoMDEntryTyps',\n        Tag: 267,\n        NotReqXML: 1,\n        Name: 'NoMDEntryTypes',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of entries in Market Data message.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoMDEntries',\n        Tag: 268,\n        NotReqXML: 1,\n        Name: 'NoMDEntries',\n    },\n    {\n        Type: 'char',\n        Description: 'Type Market Data entry.',\n        added: 'FIX.4.2',\n        AbbrName: 'Typ',\n        Tag: 269,\n        NotReqXML: 0,\n        Name: 'MDEntryType',\n    },\n    {\n        Type: 'Price',\n        Description: 'Price of the Market Data Entry.',\n        added: 'FIX.4.2',\n        AbbrName: 'Px',\n        Tag: 270,\n        NotReqXML: 0,\n        Name: 'MDEntryPx',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity or volume represented by the Market Data Entry.',\n        added: 'FIX.4.2',\n        AbbrName: 'Sz',\n        Tag: 271,\n        NotReqXML: 0,\n        Name: 'MDEntrySize',\n    },\n    {\n        Type: 'UTCDateOnly',\n        Description: 'Date of Market Data Entry.\\n(prior to FIX 4.4 field was of type UTCDate)',\n        added: 'FIX.4.2',\n        AbbrName: 'Dt',\n        Tag: 272,\n        NotReqXML: 0,\n        Name: 'MDEntryDate',\n    },\n    {\n        Type: 'UTCTimeOnly',\n        Description: 'Time of Market Data Entry.',\n        added: 'FIX.4.2',\n        AbbrName: 'Tm',\n        Tag: 273,\n        NotReqXML: 0,\n        Name: 'MDEntryTime',\n    },\n    {\n        Type: 'char',\n        Description: 'Direction of the \"tick\".',\n        added: 'FIX.4.2',\n        AbbrName: 'TickDirctn',\n        Tag: 274,\n        NotReqXML: 0,\n        Name: 'TickDirection',\n    },\n    {\n        Type: 'Exchange',\n        Description: 'Market posting quote / trade.\\nValid values:\\nSee \"Appendix 6-C\"',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'Mkt',\n        Tag: 275,\n        NotReqXML: 0,\n        Name: 'MDMkt',\n    },\n    {\n        Type: 'MultipleStringValue',\n        Description: 'Space-delimited list of conditions describing a quote.',\n        added: 'FIX.4.2',\n        AbbrName: 'QCond',\n        Tag: 276,\n        NotReqXML: 0,\n        Name: 'QuoteCondition',\n    },\n    {\n        Type: 'MultipleStringValue',\n        Description: 'Space-delimited list of conditions describing a trade',\n        added: 'FIX.4.2',\n        AbbrName: 'TrdCond',\n        Tag: 277,\n        NotReqXML: 0,\n        Name: 'TradeCondition',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique Market Data Entry identifier.',\n        added: 'FIX.4.2',\n        AbbrName: 'ID',\n        Tag: 278,\n        NotReqXML: 0,\n        Name: 'MDEntryID',\n    },\n    {\n        Type: 'char',\n        Description: 'Type of Market Data update action.',\n        added: 'FIX.4.2',\n        AbbrName: 'UpdtAct',\n        Tag: 279,\n        NotReqXML: 0,\n        Name: 'MDUpdateAction',\n    },\n    {\n        Type: 'String',\n        Description: 'Refers to a previous MDEntryID (278).',\n        added: 'FIX.4.2',\n        AbbrName: 'RefID',\n        Tag: 280,\n        NotReqXML: 0,\n        Name: 'MDEntryRefID',\n    },\n    {\n        Type: 'char',\n        Description: 'Reason for the rejection of a Market Data request.',\n        added: 'FIX.4.2',\n        AbbrName: 'ReqRejResn',\n        Tag: 281,\n        NotReqXML: 0,\n        Name: 'MDReqRejReason',\n    },\n    {\n        Type: 'String',\n        Description: 'Originator of a Market Data Entry',\n        added: 'FIX.4.2',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'Orig',\n        Tag: 282,\n        NotReqXML: 0,\n        Name: 'MDEntryOriginator',\n    },\n    {\n        Type: 'String',\n        Description: \"Identification of a Market Maker's location\",\n        added: 'FIX.4.2',\n        AbbrName: 'LctnID',\n        Tag: 283,\n        NotReqXML: 0,\n        Name: 'LocationID',\n    },\n    {\n        Type: 'String',\n        Description: \"Identification of a Market Maker's desk\",\n        added: 'FIX.4.2',\n        AbbrName: 'DeskID',\n        Tag: 284,\n        NotReqXML: 0,\n        Name: 'DeskID',\n    },\n    {\n        Type: 'char',\n        Description: 'Reason for deletion.',\n        added: 'FIX.4.2',\n        AbbrName: 'DelRsn',\n        Tag: 285,\n        NotReqXML: 0,\n        Name: 'DeleteReason',\n    },\n    {\n        Type: 'MultipleCharValue',\n        Description: 'Flag that identifies a market data entry. (Prior to FIX 4.3 this field was of type char)',\n        added: 'FIX.4.2',\n        AbbrName: 'OpenClsSettlFlag',\n        Tag: 286,\n        NotReqXML: 0,\n        Name: 'OpenCloseSettlFlag',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the number of days that may elapse before delivery of the security',\n        added: 'FIX.4.2',\n        AbbrName: 'SellerDays',\n        Tag: 287,\n        NotReqXML: 0,\n        Name: 'SellerDays',\n    },\n    {\n        Type: 'String',\n        Description: 'Buying party in a trade',\n        added: 'FIX.4.2',\n        AbbrName: 'Buyer',\n        Tag: 288,\n        NotReqXML: 0,\n        Name: 'MDEntryBuyer',\n    },\n    {\n        Type: 'String',\n        Description: 'Selling party in a trade',\n        added: 'FIX.4.2',\n        AbbrName: 'Seller',\n        Tag: 289,\n        NotReqXML: 0,\n        Name: 'MDEntrySeller',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with .',\n        added: 'FIX.4.2',\n        AbbrName: 'PosNo',\n        Tag: 290,\n        NotReqXML: 0,\n        Name: 'MDEntryPositionNo',\n    },\n    {\n        Type: 'MultipleCharValue',\n        Description: \"Identifies a firm's or a security's financial status\",\n        added: 'FIX.4.2',\n        AbbrName: 'FinclStat',\n        Tag: 291,\n        NotReqXML: 0,\n        Name: 'FinancialStatus',\n    },\n    {\n        Type: 'MultipleCharValue',\n        Description: 'Identifies the type of Corporate Action.',\n        added: 'FIX.4.2',\n        AbbrName: 'CorpActn',\n        Tag: 292,\n        NotReqXML: 0,\n        Name: 'CorporateAction',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Default Bid Size.',\n        added: 'FIX.4.2',\n        AbbrName: 'DefBidSz',\n        Tag: 293,\n        NotReqXML: 0,\n        Name: 'DefBidSize',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Default Offer Size.',\n        added: 'FIX.4.2',\n        AbbrName: 'DefOfrSz',\n        Tag: 294,\n        NotReqXML: 0,\n        Name: 'DefOfferSize',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'The number of quote entries for a QuoteSet.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoQuotEntries',\n        Tag: 295,\n        NotReqXML: 1,\n        Name: 'NoQuoteEntries',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'The number of sets of quotes in the message.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoQuotSets',\n        Tag: 296,\n        NotReqXML: 1,\n        Name: 'NoQuoteSets',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the status of the quote acknowledgement.',\n        added: 'FIX.4.2',\n        AbbrName: 'Stat',\n        Tag: 297,\n        NotReqXML: 0,\n        Name: 'QuoteStatus',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Identifies the type of quote cancel.',\n        added: 'FIX.4.2',\n        updatedEP: 85,\n        AbbrName: 'CxlTyp',\n        Tag: 298,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'QuoteCancelType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unique identifier for a quote. The QuoteEntryID stays with the quote as a static identifier even if the quote is updated.',\n        added: 'FIX.4.2',\n        AbbrName: 'EntryID',\n        Tag: 299,\n        NotReqXML: 0,\n        Name: 'QuoteEntryID',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Reason Quote was rejected:',\n        added: 'FIX.4.2',\n        AbbrName: 'RejRsn',\n        Tag: 300,\n        NotReqXML: 0,\n        Name: 'QuoteRejectReason',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Level of Response requested from receiver of quote messages. A default value should be bilaterally agreed.',\n        added: 'FIX.4.2',\n        AbbrName: 'RspLvl',\n        Tag: 301,\n        NotReqXML: 0,\n        Name: 'QuoteResponseLevel',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique id for the Quote Set.',\n        added: 'FIX.4.2',\n        AbbrName: 'SetID',\n        Tag: 302,\n        NotReqXML: 0,\n        Name: 'QuoteSetID',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the type of Quote Request being generated',\n        added: 'FIX.4.2',\n        AbbrName: 'ReqTyp',\n        Tag: 303,\n        NotReqXML: 0,\n        Name: 'QuoteRequestType',\n    },\n    {\n        Type: 'int',\n        Description: 'Total number of quotes for the quote set.',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        AbbrName: 'TotNoQuotEntries',\n        Tag: 304,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'TotNoQuoteEntries',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description: \"Underlying security's SecurityIDSource.\\nValid values: see SecurityIDSource (22) field\",\n        added: 'FIX.4.2',\n        AbbrName: 'Src',\n        Tag: 305,\n        NotReqXML: 0,\n        Name: 'UnderlyingSecurityIDSource',\n    },\n    {\n        Type: 'String',\n        Description: \"Underlying security's Issuer.\\nSee Issuer (06) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'Issr',\n        Tag: 306,\n        NotReqXML: 0,\n        Name: 'UnderlyingIssuer',\n    },\n    {\n        Type: 'String',\n        Description: 'Description of the Underlying security.\\nSee SecurityDesc(107).',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        AbbrName: 'Desc',\n        Tag: 307,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'UnderlyingSecurityDesc',\n    },\n    {\n        Type: 'Exchange',\n        Description:\n            \"Underlying security's SecurityExchange. Can be used to identify the underlying security.\\nValid values: see SecurityExchange (207)\",\n        added: 'FIX.4.2',\n        AbbrName: 'Exch',\n        Tag: 308,\n        NotReqXML: 0,\n        Name: 'UnderlyingSecurityExchange',\n    },\n    {\n        Type: 'String',\n        Description: \"Underlying security's SecurityID.\\nSee SecurityID (48) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'ID',\n        Tag: 309,\n        NotReqXML: 0,\n        Name: 'UnderlyingSecurityID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 167,\n        Description:\n            \"Underlying security's SecurityType.\\nValid values: see SecurityType (167) field\\n(see below for details concerning this fields use in conjunction with SecurityType=REPO)\\nThe following applies when used in conjunction with SecurityType=REPO\\nRepresents the general or specific type of security that underlies a financing agreement\\nValid values for SecurityType=REPO:\\nIf bonds of a particular issuer or country are wanted in an Order or are in the basket of an Execution and the SecurityType is not granular enough, include the UnderlyingIssuer (306), UnderlyingCountryOfIssue (592), UnderlyingProgram, UnderlyingRegType and/or < UnderlyingStipulations > block e.g.:\",\n        added: 'FIX.4.2',\n        AbbrName: 'SecTyp',\n        Tag: 310,\n        NotReqXML: 0,\n        Name: 'UnderlyingSecurityType',\n    },\n    {\n        Type: 'String',\n        Description: \"Underlying security's Symbol.\\nSee Symbol (55) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'Sym',\n        Tag: 311,\n        NotReqXML: 0,\n        Name: 'UnderlyingSymbol',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 65,\n        Description: \"Underlying security's SymbolSfx.\\nSee SymbolSfx (65) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'Sfx',\n        Tag: 312,\n        NotReqXML: 0,\n        Name: 'UnderlyingSymbolSfx',\n    },\n    {\n        Type: 'MonthYear',\n        Description:\n            \"Underlying security's MaturityMonthYear. Can be used with standardized derivatives vs. the UnderlyingMaturityDate (542) field.\\nSee MaturityMonthYear (200) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'MMY',\n        Tag: 313,\n        NotReqXML: 0,\n        Name: 'UnderlyingMaturityMonthYear',\n    },\n    {\n        Type: 'int',\n        Description: 'Put or call indicator of the underlying security.\\nSee PutOrCall(201).',\n        added: 'FIX.4.2',\n        updatedEP: 76,\n        AbbrName: 'PutCall',\n        Tag: 315,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'UnderlyingPutOrCall',\n    },\n    {\n        Type: 'Price',\n        Description: \"Underlying security's StrikePrice.\\nSee StrikePrice (202) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'StrkPx',\n        Tag: 316,\n        NotReqXML: 0,\n        Name: 'UnderlyingStrikePrice',\n    },\n    {\n        Type: 'char',\n        Description: \"Underlying security's OptAttribute.\\nSee OptAttribute (206) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'OptA',\n        Tag: 317,\n        NotReqXML: 0,\n        Name: 'UnderlyingOptAttribute',\n    },\n    {\n        Type: 'Currency',\n        Description: \"Underlying security's Currency.\\nSee Currency (5) field for description and valid values\",\n        added: 'FIX.4.2',\n        AbbrName: 'Ccy',\n        Tag: 318,\n        NotReqXML: 0,\n        Name: 'UnderlyingCurrency',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique ID of a Security Definition Request.',\n        added: 'FIX.4.2',\n        AbbrName: 'ReqID',\n        Tag: 320,\n        NotReqXML: 0,\n        Name: 'SecurityReqID',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Security Definition Request.',\n        added: 'FIX.4.2',\n        AbbrName: 'ReqTyp',\n        Tag: 321,\n        NotReqXML: 0,\n        Name: 'SecurityRequestType',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique ID of a Security Definition message.',\n        added: 'FIX.4.2',\n        AbbrName: 'RspID',\n        Tag: 322,\n        NotReqXML: 0,\n        Name: 'SecurityResponseID',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Security Definition message response.',\n        added: 'FIX.4.2',\n        AbbrName: 'RspTyp',\n        Tag: 323,\n        NotReqXML: 0,\n        Name: 'SecurityResponseType',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique ID of a Security Status Request message.',\n        added: 'FIX.4.2',\n        AbbrName: 'StatReqID',\n        Tag: 324,\n        NotReqXML: 0,\n        Name: 'SecurityStatusReqID',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates whether or not message is being sent as a result of a subscription request or not.',\n        added: 'FIX.4.2',\n        AbbrName: 'Unsol',\n        Tag: 325,\n        NotReqXML: 0,\n        Name: 'UnsolicitedIndicator',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Identifies the trading status applicable to the transaction.',\n        added: 'FIX.4.2',\n        AbbrName: 'TrdgStat',\n        Tag: 326,\n        NotReqXML: 0,\n        Name: 'SecurityTradingStatus',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Denotes the reason for the Opening Delay or Trading Halt.',\n        added: 'FIX.4.2',\n        updatedEP: 86,\n        AbbrName: 'HaltRsn',\n        Tag: 327,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'HaltReason',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates whether or not the halt was due to Common Stock trading being halted.',\n        added: 'FIX.4.2',\n        AbbrName: 'InViewOfCmn',\n        Tag: 328,\n        NotReqXML: 0,\n        Name: 'InViewOfCommon',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates whether or not the halt was due to the Related Security being halted.',\n        added: 'FIX.4.2',\n        AbbrName: 'DueToReltd',\n        Tag: 329,\n        NotReqXML: 0,\n        Name: 'DueToRelated',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity bought.',\n        added: 'FIX.4.2',\n        AbbrName: 'BuyVol',\n        Tag: 330,\n        NotReqXML: 0,\n        Name: 'BuyVolume',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity sold.',\n        added: 'FIX.4.2',\n        AbbrName: 'SellVol',\n        Tag: 331,\n        NotReqXML: 0,\n        Name: 'SellVolume',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Represents an indication of the high end of the price range for a security prior to the open or reopen',\n        added: 'FIX.4.2',\n        AbbrName: 'HighPx',\n        Tag: 332,\n        NotReqXML: 0,\n        Name: 'HighPx',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Represents an indication of the low end of the price range for a security prior to the open or reopen',\n        added: 'FIX.4.2',\n        AbbrName: 'LowPx',\n        Tag: 333,\n        NotReqXML: 0,\n        Name: 'LowPx',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the type of adjustment.',\n        added: 'FIX.4.2',\n        AbbrName: 'Adjmt',\n        Tag: 334,\n        NotReqXML: 0,\n        Name: 'Adjustment',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique ID of a Trading Session Status message.',\n        added: 'FIX.4.2',\n        AbbrName: 'ReqID',\n        Tag: 335,\n        NotReqXML: 0,\n        Name: 'TradSesReqID',\n    },\n    {\n        Type: 'String',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Identifier for Trading Session\\nA trading session spans an extended period of time that can also be expressed informally in terms of the trading day. Usage is determined by market or counterparties.\\nTo specify good for session where session spans more than one calendar day, use TimeInForce = Day in conjunction with TradingSessionID.\\nBilaterally agreed values of data type \"String\" that start with a character can be used for backward compatibility.',\n        added: 'FIX.4.2',\n        AbbrName: 'SesID',\n        Tag: 336,\n        NotReqXML: 0,\n        Name: 'TradingSessionID',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'String',\n        Description: 'Identifies the trader (e.g. \"badge number\") of the ContraBroker.',\n        added: 'FIX.4.2',\n        BaseCategoryAbbrName: 'Trdr',\n        AbbrName: 'CntraTrdr',\n        Tag: 337,\n        NotReqXML: 0,\n        Name: 'ContraTrader',\n    },\n    {\n        Type: 'int',\n        Description: 'Method of trading',\n        added: 'FIX.4.2',\n        AbbrName: 'Method',\n        Tag: 338,\n        NotReqXML: 0,\n        Name: 'TradSesMethod',\n    },\n    {\n        Type: 'int',\n        Description: 'Trading Session Mode',\n        added: 'FIX.4.2',\n        AbbrName: 'Mode',\n        Tag: 339,\n        NotReqXML: 0,\n        Name: 'TradSesMode',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'State of the trading session.',\n        added: 'FIX.4.2',\n        AbbrName: 'Stat',\n        Tag: 340,\n        NotReqXML: 0,\n        Name: 'TradSesStatus',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'Starting time of the trading session',\n        added: 'FIX.4.2',\n        AbbrName: 'StartTm',\n        Tag: 341,\n        NotReqXML: 0,\n        Name: 'TradSesStartTime',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'Time of the opening of the trading session',\n        added: 'FIX.4.2',\n        AbbrName: 'OpenTm',\n        Tag: 342,\n        NotReqXML: 0,\n        Name: 'TradSesOpenTime',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'Time of the pre-closed of the trading session',\n        added: 'FIX.4.2',\n        AbbrName: 'PreClsTm',\n        Tag: 343,\n        NotReqXML: 0,\n        Name: 'TradSesPreCloseTime',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'Closing time of the trading session',\n        added: 'FIX.4.2',\n        AbbrName: 'ClsTm',\n        Tag: 344,\n        NotReqXML: 0,\n        Name: 'TradSesCloseTime',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'End time of the trading session',\n        added: 'FIX.4.2',\n        AbbrName: 'EndTm',\n        Tag: 345,\n        NotReqXML: 0,\n        Name: 'TradSesEndTime',\n    },\n    {\n        Type: 'int',\n        Description: 'Number of orders in the market.',\n        added: 'FIX.4.2',\n        AbbrName: 'NumOfOrds',\n        Tag: 346,\n        NotReqXML: 0,\n        Name: 'NumberOfOrders',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Type of message encoding (non-ASCII (non-English) characters) used in a message\\'s \"Encoded\" fields.',\n        added: 'FIX.4.2',\n        AbbrName: 'MsgEncd',\n        Tag: 347,\n        NotReqXML: 0,\n        Name: 'MessageEncoding',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedIssuer (349) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 349,\n        AbbrName: 'EncIssrLen',\n        Tag: 348,\n        NotReqXML: 0,\n        Name: 'EncodedIssuerLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the Issuer field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Issuer field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncIssr',\n        Tag: 349,\n        NotReqXML: 0,\n        Name: 'EncodedIssuer',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedSecurityDesc (351) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 351,\n        AbbrName: 'EncSecDescLen',\n        Tag: 350,\n        NotReqXML: 0,\n        Name: 'EncodedSecurityDescLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the SecurityDesc (107) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the SecurityDesc field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncSecDesc',\n        Tag: 351,\n        NotReqXML: 0,\n        Name: 'EncodedSecurityDesc',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedListExecInst (353) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 353,\n        AbbrName: 'EncListExecInstLen',\n        Tag: 352,\n        NotReqXML: 0,\n        Name: 'EncodedListExecInstLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the ListExecInst (69) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ListExecInst field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncListExecInst',\n        Tag: 353,\n        NotReqXML: 0,\n        Name: 'EncodedListExecInst',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedText (355) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 355,\n        AbbrName: 'EncTxtLen',\n        Tag: 354,\n        NotReqXML: 0,\n        Name: 'EncodedTextLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the Text (58) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Text field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncTxt',\n        Tag: 355,\n        NotReqXML: 0,\n        Name: 'EncodedText',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedSubject (357) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 357,\n        AbbrName: 'EncSubjectLen',\n        Tag: 356,\n        NotReqXML: 0,\n        Name: 'EncodedSubjectLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the Subject (147) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Subject field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncSubject',\n        Tag: 357,\n        NotReqXML: 0,\n        Name: 'EncodedSubject',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedHeadline (359) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 359,\n        AbbrName: 'EncHeadlineLen',\n        Tag: 358,\n        NotReqXML: 0,\n        Name: 'EncodedHeadlineLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the Headline (148) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Headline field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncHeadline',\n        Tag: 359,\n        NotReqXML: 0,\n        Name: 'EncodedHeadline',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedAllocText (361) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 361,\n        AbbrName: 'EncAllocTextLen',\n        Tag: 360,\n        NotReqXML: 0,\n        Name: 'EncodedAllocTextLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the AllocText (161) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the AllocText field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncAllocText',\n        Tag: 361,\n        NotReqXML: 0,\n        Name: 'EncodedAllocText',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingIssuer (363) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 363,\n        AbbrName: 'EncUndIssrLen',\n        Tag: 362,\n        NotReqXML: 0,\n        Name: 'EncodedUnderlyingIssuerLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingIssuer (306) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingIssuer field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncUndIssr',\n        Tag: 363,\n        NotReqXML: 0,\n        Name: 'EncodedUnderlyingIssuer',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedUnderlyingSecurityDesc (365) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 365,\n        AbbrName: 'EncUndSecDescLen',\n        Tag: 364,\n        NotReqXML: 0,\n        Name: 'EncodedUnderlyingSecurityDescLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the UnderlyingSecurityDesc (307) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the UnderlyingSecurityeDesc field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncUndSecDesc',\n        Tag: 365,\n        NotReqXML: 0,\n        Name: 'EncodedUnderlyingSecurityDesc',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Executed price for an AllocAccount (79) entry used when using \"executed price\" vs. \"average price\" allocations (e.g. Japan).',\n        added: 'FIX.4.2',\n        AbbrName: 'Px',\n        Tag: 366,\n        NotReqXML: 0,\n        Name: 'AllocPrice',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Indicates expiration time of this particular QuoteSet (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n        added: 'FIX.4.2',\n        AbbrName: 'ValidTil',\n        Tag: 367,\n        NotReqXML: 0,\n        Name: 'QuoteSetValidUntilTime',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 300,\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Reason Quote Entry was rejected:',\n        added: 'FIX.4.2',\n        AbbrName: 'EntryRejRsn',\n        Tag: 368,\n        NotReqXML: 0,\n        Name: 'QuoteEntryRejectReason',\n    },\n    {\n        Type: 'SeqNum',\n        Description:\n            'The last MsgSeqNum (34) value received by the FIX engine and processed by downstream application, such as trading engine or order routing system. Can be specified on every message sent. Useful for detecting a backlog with a counterparty.',\n        added: 'FIX.4.2',\n        AbbrName: 'LastMsgSeqNumProced',\n        Tag: 369,\n        NotReqXML: 1,\n        Name: 'LastMsgSeqNumProcessed',\n    },\n    {\n        Type: 'int',\n        Description: 'The tag number of the FIX field being referenced.',\n        added: 'FIX.4.2',\n        AbbrName: 'RefTagID',\n        Tag: 371,\n        NotReqXML: 0,\n        Name: 'RefTagID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 35,\n        Description: 'The MsgType (35) of the FIX message being referenced.',\n        added: 'FIX.4.2',\n        AbbrName: 'RefMsgTyp',\n        Tag: 372,\n        NotReqXML: 0,\n        Name: 'RefMsgType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Code to identify reason for a session-level Reject message.',\n        added: 'FIX.4.2',\n        AbbrName: 'SessRejRsn',\n        Tag: 373,\n        NotReqXML: 1,\n        Name: 'SessionRejectReason',\n    },\n    {\n        Type: 'char',\n        Description: 'Identifies the Bid Request message type.',\n        added: 'FIX.4.2',\n        AbbrName: 'BidReqTransTyp',\n        Tag: 374,\n        NotReqXML: 0,\n        Name: 'BidRequestTransType',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifies contra broker. Standard NASD market-maker mnemonic is preferred.',\n        added: 'FIX.4.2',\n        AbbrName: 'CntraBrkr',\n        Tag: 375,\n        NotReqXML: 0,\n        Name: 'ContraBroker',\n    },\n    {\n        Type: 'String',\n        Description: 'ID used to represent this transaction for compliance purposes (e.g. OATS reporting).',\n        added: 'FIX.4.2',\n        AbbrName: 'ComplianceID',\n        Tag: 376,\n        NotReqXML: 0,\n        Name: 'ComplianceID',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates whether or not the order was solicited.',\n        added: 'FIX.4.2',\n        AbbrName: 'SolFlag',\n        Tag: 377,\n        NotReqXML: 0,\n        Name: 'SolicitedFlag',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Code to identify reason for an ExecutionRpt message sent with ExecType=Restated or used when communicating an unsolicited cancel.',\n        added: 'FIX.4.2',\n        AbbrName: 'ExecRstmtRsn',\n        Tag: 378,\n        NotReqXML: 0,\n        Name: 'ExecRestatementReason',\n    },\n    {\n        Type: 'String',\n        Description: 'The value of the business-level \"ID\" field on the message being referenced.',\n        added: 'FIX.4.2',\n        AbbrName: 'BizRejRefID',\n        Tag: 379,\n        NotReqXML: 0,\n        Name: 'BusinessRejectRefID',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to identify reason for a Business Message Reject message.',\n        added: 'FIX.4.2',\n        AbbrName: 'BizRejRsn',\n        Tag: 380,\n        NotReqXML: 0,\n        Name: 'BusinessRejectReason',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Total amount traded (i.e. quantity * price) expressed in units of currency. For FX Futures this is used to express the notional value of a fill when quantity fields are expressed in terms of contract size (i.e. quantity * price * contract size).',\n        added: 'FIX.4.2',\n        updatedEP: 95,\n        AbbrName: 'GrossTrdAmt',\n        Tag: 381,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'GrossTradeAmt',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'The number of ContraBroker (375) entries.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoCntraBrkrs',\n        Tag: 382,\n        NotReqXML: 1,\n        Name: 'NoContraBrokers',\n    },\n    {\n        Type: 'Length',\n        Description: 'Maximum number of bytes supported for a single message.',\n        added: 'FIX.4.2',\n        AbbrName: 'MaxMsgSz',\n        Tag: 383,\n        NotReqXML: 1,\n        Name: 'MaxMessageSize',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of MsgTypes (35) in repeating group.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoMsgTyps',\n        Tag: 384,\n        NotReqXML: 1,\n        Name: 'NoMsgTypes',\n    },\n    {\n        Type: 'char',\n        Description: 'Specifies the direction of the messsage.',\n        added: 'FIX.4.2',\n        AbbrName: 'MsgDirctn',\n        Tag: 385,\n        NotReqXML: 1,\n        Name: 'MsgDirection',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of TradingSessionIDs (336) in repeating group.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoTrdgSesss',\n        Tag: 386,\n        NotReqXML: 1,\n        Name: 'NoTradingSessions',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Total volume (quantity) traded.',\n        added: 'FIX.4.2',\n        AbbrName: 'TotVolTrdd',\n        Tag: 387,\n        NotReqXML: 0,\n        Name: 'TotalVolumeTraded',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Code to identify the price a DiscretionOffsetValue (389) is related to and should be mathematically added to.',\n        added: 'FIX.4.2',\n        AbbrName: 'DsctnInst',\n        Tag: 388,\n        NotReqXML: 0,\n        Name: 'DiscretionInst',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Amount (signed) added to the \"related to\" price specified via DiscretionInst (388), in the context of DiscretionOffsetType (842)\\n(Prior to FIX 4.4 this field was of type PriceOffset)',\n        added: 'FIX.4.2',\n        AbbrName: 'OfstValu',\n        Tag: 389,\n        NotReqXML: 0,\n        Name: 'DiscretionOffsetValue',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unique identifier for Bid Response as assigned by sell-side (broker, exchange, ECN). Uniqueness must be guaranteed within a single trading day.',\n        added: 'FIX.4.2',\n        AbbrName: 'BidID',\n        Tag: 390,\n        NotReqXML: 0,\n        Name: 'BidID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unique identifier for a Bid Request as assigned by institution. Uniqueness must be guaranteed within a single trading day.',\n        added: 'FIX.4.2',\n        AbbrName: 'ClBidID',\n        Tag: 391,\n        NotReqXML: 0,\n        Name: 'ClientBidID',\n    },\n    {\n        Type: 'String',\n        Description: 'Descriptive name for list order.',\n        added: 'FIX.4.2',\n        AbbrName: 'ListName',\n        Tag: 392,\n        NotReqXML: 0,\n        Name: 'ListName',\n    },\n    {\n        Type: 'int',\n        Description: 'Total number of securities.\\n(Prior to FIX 4.4 this field was named TotalNumSecurities)',\n        added: 'FIX.4.2',\n        AbbrName: 'TotNoReltdSym',\n        Tag: 393,\n        NotReqXML: 0,\n        Name: 'TotNoRelatedSym',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to identify the type of Bid Request.',\n        added: 'FIX.4.2',\n        AbbrName: 'BidTyp',\n        Tag: 394,\n        NotReqXML: 0,\n        Name: 'BidType',\n    },\n    {\n        Type: 'int',\n        Description: 'Total number of tickets.',\n        added: 'FIX.4.2',\n        AbbrName: 'NumTkts',\n        Tag: 395,\n        NotReqXML: 0,\n        Name: 'NumTickets',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Amounts in currency',\n        added: 'FIX.4.2',\n        AbbrName: 'SideValu1',\n        Tag: 396,\n        NotReqXML: 0,\n        Name: 'SideValue1',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Amounts in currency',\n        added: 'FIX.4.2',\n        AbbrName: 'SideValu2',\n        Tag: 397,\n        NotReqXML: 0,\n        Name: 'SideValue2',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of BidDescriptor (400) entries.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoBidDescptrs',\n        Tag: 398,\n        NotReqXML: 1,\n        Name: 'NoBidDescriptors',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to identify the type of BidDescriptor (400).',\n        added: 'FIX.4.2',\n        AbbrName: 'BidDescptrTyp',\n        Tag: 399,\n        NotReqXML: 0,\n        Name: 'BidDescriptorType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'BidDescriptor value. Usage depends upon BidDescriptorTyp (399).\\nIf BidDescriptorType = 1\\nIndustrials etc - Free text\\nIf BidDescriptorType = 2\\n\"FR\" etc - ISO Country Codes\\nIf BidDescriptorType = 3\\nFT00, FT250, STOX - Free text',\n        added: 'FIX.4.2',\n        AbbrName: 'BidDescptr',\n        Tag: 400,\n        NotReqXML: 0,\n        Name: 'BidDescriptor',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Code to identify which \"SideValue\" the value refers to. SideValue1 and SideValue2 are used as opposed to Buy or Sell so that the basket can be quoted either way as Buy or Sell.',\n        added: 'FIX.4.2',\n        AbbrName: 'SideValuInd',\n        Tag: 401,\n        NotReqXML: 0,\n        Name: 'SideValueInd',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Liquidity indicator or lower limit if TotalNumSecurities (393) > 1. Represented as a percentage.',\n        added: 'FIX.4.2',\n        AbbrName: 'LqdtyPctLow',\n        Tag: 402,\n        NotReqXML: 0,\n        Name: 'LiquidityPctLow',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Upper liquidity indicator if TotalNumSecurities (393) > 1. Represented as a percentage.',\n        added: 'FIX.4.2',\n        AbbrName: 'LqdtyPctHigh',\n        Tag: 403,\n        NotReqXML: 0,\n        Name: 'LiquidityPctHigh',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Value between LiquidityPctLow (402) and LiquidityPctHigh (403) in Currency',\n        added: 'FIX.4.2',\n        AbbrName: 'LqdtyValu',\n        Tag: 404,\n        NotReqXML: 0,\n        Name: 'LiquidityValue',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Eg Used in EFP trades 2% (EFP - Exchange for Physical ). Represented as a percentage.',\n        added: 'FIX.4.2',\n        AbbrName: 'EFPTrkngErr',\n        Tag: 405,\n        NotReqXML: 0,\n        Name: 'EFPTrackingError',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Used in EFP trades',\n        added: 'FIX.4.2',\n        AbbrName: 'FairValu',\n        Tag: 406,\n        NotReqXML: 0,\n        Name: 'FairValue',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Used in EFP trades. Represented as a percentage.',\n        added: 'FIX.4.2',\n        AbbrName: 'OutsideNdxPct',\n        Tag: 407,\n        NotReqXML: 0,\n        Name: 'OutsideIndexPct',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Used in EFP trades',\n        added: 'FIX.4.2',\n        AbbrName: 'ValuOfFuts',\n        Tag: 408,\n        NotReqXML: 0,\n        Name: 'ValueOfFutures',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to identify the type of liquidity indicator.',\n        added: 'FIX.4.2',\n        AbbrName: 'LqdtyIndTyp',\n        Tag: 409,\n        NotReqXML: 0,\n        Name: 'LiquidityIndType',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'Overall weighted average liquidity expressed as a % of average daily volume. Represented as a percentage.',\n        added: 'FIX.4.2',\n        AbbrName: 'WtAvgLqdty',\n        Tag: 410,\n        NotReqXML: 0,\n        Name: 'WtAverageLiquidity',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates whether or not to exchange for phsyical.',\n        added: 'FIX.4.2',\n        AbbrName: 'EFP',\n        Tag: 411,\n        NotReqXML: 0,\n        Name: 'ExchangeForPhysical',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Value of stocks in Currency',\n        added: 'FIX.4.2',\n        AbbrName: 'OutMainCntryUNdx',\n        Tag: 412,\n        NotReqXML: 0,\n        Name: 'OutMainCntryUIndex',\n    },\n    {\n        BaseCategory: 'CrossOrders',\n        Type: 'Percentage',\n        Description: 'Percentage of program that crosses in Currency. Represented as a percentage.',\n        added: 'FIX.4.2',\n        BaseCategoryAbbrName: 'Pct',\n        AbbrName: 'CrssPct',\n        Tag: 413,\n        NotReqXML: 0,\n        Name: 'CrossPercent',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to identify the desired frequency of progress reports.',\n        added: 'FIX.4.2',\n        AbbrName: 'ProgRptReqs',\n        Tag: 414,\n        NotReqXML: 0,\n        Name: 'ProgRptReqs',\n    },\n    {\n        Type: 'int',\n        Description: \"Time in minutes between each ListStatus report sent by SellSide. Zero means don't send status.\",\n        added: 'FIX.4.2',\n        AbbrName: 'ProgPeriodIntvl',\n        Tag: 415,\n        NotReqXML: 0,\n        Name: 'ProgPeriodInterval',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to represent whether value is net (inclusive of tax) or gross.',\n        added: 'FIX.4.2',\n        AbbrName: 'IncTaxInd',\n        Tag: 416,\n        NotReqXML: 0,\n        Name: 'IncTaxInd',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the total number of bidders on the list',\n        added: 'FIX.4.2',\n        AbbrName: 'NumBidders',\n        Tag: 417,\n        NotReqXML: 0,\n        Name: 'NumBidders',\n    },\n    {\n        Type: 'char',\n        Description: 'Code to represent the type of trade.\\n(Prior to FIX 4.4 this field was named \"TradeType\")',\n        added: 'FIX.4.2',\n        AbbrName: 'BidTrdTyp',\n        Tag: 418,\n        NotReqXML: 0,\n        Name: 'BidTradeType',\n    },\n    {\n        Type: 'char',\n        Description: 'Code to represent the basis price type.',\n        added: 'FIX.4.2',\n        AbbrName: 'BasisPxTyp',\n        Tag: 419,\n        NotReqXML: 0,\n        Name: 'BasisPxType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Indicates the number of list entries.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoBidComponents',\n        Tag: 420,\n        NotReqXML: 1,\n        Name: 'NoBidComponents',\n    },\n    {\n        Type: 'Country',\n        Description: 'ISO Country Code in field',\n        added: 'FIX.4.2',\n        AbbrName: 'Ctry',\n        Tag: 421,\n        NotReqXML: 0,\n        Name: 'Country',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Total number of strike price entries across all messages. Should be the sum of all NoStrikes (428) in each message that has repeating strike price entries related to the same ListID (66). Used to support fragmentation.',\n        added: 'FIX.4.2',\n        AbbrName: 'TotNoStrks',\n        Tag: 422,\n        NotReqXML: 0,\n        Name: 'TotNoStrikes',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Code to represent the price type.\\n(For Financing transactions PriceType implies the \"repo type\" - Fixed or Floating - 9 (Yield) or 6 (Spread) respectively - and Price (44) gives the corresponding \"repo rate\".\\nSee Volume : \"Glossary\" for further value definitions)',\n        added: 'FIX.4.2',\n        AbbrName: 'PxTyp',\n        Tag: 423,\n        NotReqXML: 0,\n        Name: 'PriceType',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'For GT orders, the OrderQty (38) less all quantity (adjusted for stock splits) that traded on previous days. DayOrderQty (424) = OrderQty - (CumQty (14) - DayCumQty (425))',\n        added: 'FIX.4.2',\n        AbbrName: 'DayOrdQty',\n        Tag: 424,\n        NotReqXML: 0,\n        Name: 'DayOrderQty',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity on a GT order that has traded today.',\n        added: 'FIX.4.2',\n        AbbrName: 'DayCumQty',\n        Tag: 425,\n        NotReqXML: 0,\n        Name: 'DayCumQty',\n    },\n    {\n        Type: 'Price',\n        Description: 'The average price for quantity on a GT order that has traded today.',\n        added: 'FIX.4.2',\n        AbbrName: 'DayAvgPx',\n        Tag: 426,\n        NotReqXML: 0,\n        Name: 'DayAvgPx',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Code to identify whether to book out executions on a part-filled GT order on the day of execution or to accumulate.',\n        added: 'FIX.4.2',\n        AbbrName: 'GTBkngInst',\n        Tag: 427,\n        NotReqXML: 0,\n        Name: 'GTBookingInst',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of list strike price entries.',\n        added: 'FIX.4.2',\n        AbbrName: 'NoStrks',\n        Tag: 428,\n        NotReqXML: 1,\n        Name: 'NoStrikes',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to represent the status type.',\n        added: 'FIX.4.2',\n        AbbrName: 'ListStatTyp',\n        Tag: 429,\n        NotReqXML: 0,\n        Name: 'ListStatusType',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to represent whether value is net (inclusive of tax) or gross.',\n        added: 'FIX.4.2',\n        AbbrName: 'NetGrossInd',\n        Tag: 430,\n        NotReqXML: 0,\n        Name: 'NetGrossInd',\n    },\n    {\n        Type: 'int',\n        Description: 'Code to represent the status of a list order.',\n        added: 'FIX.4.2',\n        AbbrName: 'ListOrdStat',\n        Tag: 431,\n        NotReqXML: 0,\n        Name: 'ListOrderStatus',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Date of order expiration (last day the order can trade), always expressed in terms of the local market date. The time at which the order expires is determined by the local market's business practices\",\n        added: 'FIX.4.2',\n        AbbrName: 'ExpireDt',\n        Tag: 432,\n        NotReqXML: 0,\n        Name: 'ExpireDate',\n    },\n    {\n        Type: 'char',\n        Description: 'Identifies the type of ListExecInst (69).',\n        added: 'FIX.4.2',\n        AbbrName: 'ListExecInstTyp',\n        Tag: 433,\n        NotReqXML: 0,\n        Name: 'ListExecInstType',\n    },\n    {\n        Type: 'char',\n        Description: 'Identifies the type of request that a Cancel Reject is in response to.',\n        added: 'FIX.4.2',\n        AbbrName: 'CxlRejRspTo',\n        Tag: 434,\n        NotReqXML: 0,\n        Name: 'CxlRejResponseTo',\n    },\n    {\n        Type: 'Percentage',\n        Description: \"Underlying security's CouponRate.\\nSee CouponRate (223) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'CpnRt',\n        Tag: 435,\n        NotReqXML: 0,\n        Name: 'UnderlyingCouponRate',\n    },\n    {\n        Type: 'float',\n        Description: \"Underlying security's ContractMultiplier.\\nSee ContractMultiplier (231) field for description\",\n        added: 'FIX.4.2',\n        AbbrName: 'Mult',\n        Tag: 436,\n        NotReqXML: 0,\n        Name: 'UnderlyingContractMultiplier',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'Qty',\n        Description: 'Quantity traded with the ContraBroker (375).',\n        added: 'FIX.4.2',\n        BaseCategoryAbbrName: 'TrdQty',\n        AbbrName: 'CntraTrdQty',\n        Tag: 437,\n        NotReqXML: 0,\n        Name: 'ContraTradeQty',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'UTCTimestamp',\n        Description:\n            'Identifes the time of the trade with the ContraBroker (375). (always expressed in UTC (Universal Time Coordinated, also known as \"GMT\")',\n        added: 'FIX.4.2',\n        BaseCategoryAbbrName: 'TrdTm',\n        AbbrName: 'CntraTrdTm',\n        Tag: 438,\n        NotReqXML: 0,\n        Name: 'ContraTradeTime',\n    },\n    {\n        Type: 'int',\n        Description: 'Number of Securites between LiquidityPctLow (402) and LiquidityPctHigh (403) in Currency.',\n        added: 'FIX.4.2',\n        AbbrName: 'LqdtyNumSecurities',\n        Tag: 441,\n        NotReqXML: 0,\n        Name: 'LiquidityNumSecurities',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Used to indicate what an Execution Report represents (e.g. used with multi-leg securities, such as option strategies, spreads, etc.).',\n        added: 'FIX.4.2',\n        AbbrName: 'MLegRptTyp',\n        Tag: 442,\n        NotReqXML: 0,\n        Name: 'MultiLegReportingType',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'The time at which current market prices are used to determine the value of a basket.',\n        added: 'FIX.4.2',\n        AbbrName: 'StrkTm',\n        Tag: 443,\n        NotReqXML: 0,\n        Name: 'StrikeTime',\n    },\n    {\n        Type: 'String',\n        Description: 'Free format text string related to List Status.',\n        added: 'FIX.4.2',\n        AbbrName: 'ListStatText',\n        Tag: 444,\n        NotReqXML: 0,\n        Name: 'ListStatusText',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedListStatusText (446) field.',\n        added: 'FIX.4.2',\n        AssociatedDataTag: 446,\n        AbbrName: 'EncListStatTextLen',\n        Tag: 445,\n        NotReqXML: 0,\n        Name: 'EncodedListStatusTextLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the ListStatusText (444) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the ListStatusText field.',\n        added: 'FIX.4.2',\n        AbbrName: 'EncListStatText',\n        Tag: 446,\n        NotReqXML: 0,\n        Name: 'EncodedListStatusText',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Identifies class or source of the PartyID (448) value. Required if PartyID is specified. Note: applicable values depend upon PartyRole (452) specified.\\nSee \"Appendix 6-G - Use of <Parties> Component Block\"',\n        added: 'FIX.4.3',\n        AbbrName: 'Src',\n        Tag: 447,\n        NotReqXML: 0,\n        Name: 'PartyIDSource',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Party identifier/code. See PartyIDSource (447) and PartyRole (452).\\nSee \"Appendix 6-G - Use of <Parties> Component Block\"',\n        added: 'FIX.4.3',\n        AbbrName: 'ID',\n        Tag: 448,\n        NotReqXML: 0,\n        Name: 'PartyID',\n    },\n    {\n        Type: 'PriceOffset',\n        Description: \"Net change from previous day's closing price vs. last traded price.\",\n        added: 'FIX.4.3',\n        AbbrName: 'NetChgPrevDay',\n        Tag: 451,\n        NotReqXML: 0,\n        Name: 'NetChgPrevDay',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Identifies the type or role of the PartyID (448) specified.\\nSee \"Appendix 6-G - Use of <Parties> Component Block\"\\n(see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.4.3',\n        AbbrName: 'R',\n        Tag: 452,\n        NotReqXML: 0,\n        Name: 'PartyRole',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of PartyID (448), PartyIDSource (447), and PartyRole (452) entries',\n        added: 'FIX.4.3',\n        AbbrName: 'NoPtyIDs',\n        Tag: 453,\n        NotReqXML: 1,\n        Name: 'NoPartyIDs',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of SecurityAltID (455) entries.',\n        added: 'FIX.4.3',\n        AbbrName: 'NoSecAltID',\n        Tag: 454,\n        NotReqXML: 1,\n        Name: 'NoSecurityAltID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Alternate Security identifier value for this security of SecurityAltIDSource (456) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires SecurityAltIDSource.',\n        added: 'FIX.4.3',\n        AbbrName: 'AltID',\n        Tag: 455,\n        NotReqXML: 0,\n        Name: 'SecurityAltID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description:\n            'Identifies class or source of the SecurityAltID (455) value. Required if SecurityAltID is specified.\\nValid values:\\nSame valid values as the SecurityIDSource (22) field',\n        added: 'FIX.4.3',\n        AbbrName: 'AltIDSrc',\n        Tag: 456,\n        NotReqXML: 0,\n        Name: 'SecurityAltIDSource',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of UnderlyingSecurityAltID (458) entries.',\n        added: 'FIX.4.3',\n        AbbrName: 'NoUndSecAltID',\n        Tag: 457,\n        NotReqXML: 1,\n        Name: 'NoUnderlyingSecurityAltID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Alternate Security identifier value for this underlying security of UnderlyingSecurityAltIDSource (459) type (e.g. CUSIP, SEDOL, ISIN, etc). Requires UnderlyingSecurityAltIDSource.',\n        added: 'FIX.4.3',\n        AbbrName: 'AltID',\n        Tag: 458,\n        NotReqXML: 0,\n        Name: 'UnderlyingSecurityAltID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description:\n            'Identifies class or source of the UnderlyingSecurityAltID (458) value. Required if UnderlyingSecurityAltID is specified.\\nValid values:\\nSame valid values as the SecurityIDSource (22) field',\n        added: 'FIX.4.3',\n        AbbrName: 'AltIDSrc',\n        Tag: 459,\n        NotReqXML: 0,\n        Name: 'UnderlyingSecurityAltIDSource',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Indicates the type of product the security is associated with. See also the CFICode (461) and SecurityType (167) fields.',\n        added: 'FIX.4.3',\n        AbbrName: 'Prod',\n        Tag: 460,\n        NotReqXML: 0,\n        Name: 'Product',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Indicates the type of security using ISO 10962 standard, Classification of Financial Instruments (CFI code) values. ISO 10962 is maintained by ANNA (Association of National Numbering Agencies) acting as Registration Authority. See \"Appendix 6-B FIX Fields Based Upon Other Standards\". See also the Product (460) and SecurityType (167) fields. It is recommended that CFICode be used instead of SecurityType (167) for non-Fixed Income instruments.\\nA subset of possible values applicable to FIX usage are identified in \"Appendix 6-D CFICode Usage - ISO 10962 Classification of Financial Instruments (CFI code)\"',\n        added: 'FIX.4.3',\n        AbbrName: 'CFI',\n        Tag: 461,\n        NotReqXML: 0,\n        Name: 'CFICode',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 460,\n        Description: \"Underlying security's Product.\\nValid values: see Product(460) field\",\n        added: 'FIX.4.3',\n        AbbrName: 'Prod',\n        Tag: 462,\n        NotReqXML: 0,\n        Name: 'UnderlyingProduct',\n    },\n    {\n        Type: 'String',\n        Description: \"Underlying security's CFICode.\\nValid values: see CFICode (461) field\",\n        added: 'FIX.4.3',\n        AbbrName: 'CFI',\n        Tag: 463,\n        NotReqXML: 0,\n        Name: 'UnderlyingCFICode',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Indicates whether or not this FIX Session is a \"test\" vs. \"production\" connection. Useful for preventing \"accidents\".',\n        added: 'FIX.4.3',\n        AbbrName: 'TestMsgInd',\n        Tag: 464,\n        NotReqXML: 1,\n        Name: 'TestMessageIndicator',\n    },\n    {\n        Type: 'String',\n        Description: 'Common reference passed to a post-trade booking process (e.g. industry matching utility).',\n        added: 'FIX.4.3',\n        AbbrName: 'BkngRefID',\n        Tag: 466,\n        NotReqXML: 0,\n        Name: 'BookingRefID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unique identifier for a specific NoAllocs (78) repeating group instance (e.g. for an AllocAccount).',\n        added: 'FIX.4.3',\n        AbbrName: 'IndAllocID',\n        Tag: 467,\n        NotReqXML: 0,\n        Name: 'IndividualAllocID',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Specifies which direction to round For CIV - indicates whether or not the quantity of shares/units is to be rounded and in which direction where CashOrdQty (152) or (for CIV only) OrderPercent (516) are specified on an order.\\nThe default is for rounding to be at the discretion of the executing broker or fund manager.\\ne.g. for an order specifying CashOrdQty or OrderPercent if the calculated number of shares/units was 325.76 and RoundingModulus (469) was 0 - \"round down\" would give 320 units, 1 - \"round up\" would give 330 units and \"round to nearest\" would give 320 units.',\n        added: 'FIX.4.3',\n        AbbrName: 'RndDir',\n        Tag: 468,\n        NotReqXML: 0,\n        Name: 'RoundingDirection',\n    },\n    {\n        Type: 'float',\n        Description:\n            'For CIV - a float value indicating the value to which rounding is required.\\ni.e. 0 means round to a multiple of 0 units/shares; 0.5 means round to a multiple of 0.5 units/shares.\\nThe default, if RoundingDirection (468) is specified without RoundingModulus, is to round to a whole unit/share.',\n        added: 'FIX.4.3',\n        AbbrName: 'RndMod',\n        Tag: 469,\n        NotReqXML: 0,\n        Name: 'RoundingModulus',\n    },\n    {\n        Type: 'Country',\n        Description:\n            'ISO Country code of instrument issue (e.g. the country portion typically used in ISIN). Can be used in conjunction with non-ISIN SecurityID (48) (e.g. CUSIP for Municipal Bonds without ISIN) to provide uniqueness.',\n        added: 'FIX.4.3',\n        AbbrName: 'IssuCtry',\n        Tag: 470,\n        NotReqXML: 0,\n        Name: 'CountryOfIssue',\n    },\n    {\n        Type: 'String',\n        Description: 'A two-character state or province abbreviation.',\n        added: 'FIX.4.3',\n        AbbrName: 'StPrv',\n        Tag: 471,\n        NotReqXML: 0,\n        Name: 'StateOrProvinceOfIssue',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifies the locale. For Municipal Security Issuers other than state or province. Refer to\\nhttp://www.atmos.albany.edu/cgi/stagrep-cgi\\nReference the IATA city codes for values.\\nNote IATA (International Air Transport Association) maintains the codes at www.iata.org.',\n        added: 'FIX.4.3',\n        AbbrName: 'Lcl',\n        Tag: 472,\n        NotReqXML: 0,\n        Name: 'LocaleOfIssue',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'The number of registration details on a Registration Instructions message',\n        added: 'FIX.4.3',\n        AbbrName: 'NoRegistDtls',\n        Tag: 473,\n        NotReqXML: 1,\n        Name: 'NoRegistDtls',\n    },\n    {\n        Type: 'String',\n        Description: 'Set of Correspondence address details, possibly including phone, fax, etc.',\n        added: 'FIX.4.3',\n        AbbrName: 'MailingDtls',\n        Tag: 474,\n        NotReqXML: 0,\n        Name: 'MailingDtls',\n    },\n    {\n        Type: 'Country',\n        Description:\n            'The ISO 366 Country code (2 character) identifying which country the beneficial investor is resident for tax purposes.',\n        added: 'FIX.4.3',\n        AbbrName: 'InvestorCtryOfResidence',\n        Tag: 475,\n        NotReqXML: 0,\n        Name: 'InvestorCountryOfResidence',\n    },\n    {\n        Type: 'String',\n        Description:\n            '\"Settlement Payment Reference\" - A free format Payment reference to assist with reconciliation, e.g. a Client and/or Order ID number.',\n        added: 'FIX.4.3',\n        AbbrName: 'PmtRef',\n        Tag: 476,\n        NotReqXML: 0,\n        Name: 'PaymentRef',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'A code identifying the payment method for a (fractional) distribution.\\n13 through 998 are reserved for future use\\nValues above 1000 are available for use by private agreement among counterparties',\n        added: 'FIX.4.3',\n        AbbrName: 'DistribPmtMethod',\n        Tag: 477,\n        NotReqXML: 0,\n        Name: 'DistribPaymentMethod',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Specifies currency to be used for Cash Distributions see \"Appendix 6-A Valid Currency Codes\".',\n        added: 'FIX.4.3',\n        AbbrName: 'CshDistribCurr',\n        Tag: 478,\n        NotReqXML: 0,\n        Name: 'CashDistribCurr',\n    },\n    {\n        Type: 'Currency',\n        Description:\n            'Specifies currency to be use for Commission (12) if the Commission currency is different from the Deal Currency - see \"Appendix 6-A; Valid Currency Codes\".',\n        added: 'FIX.4.3',\n        AbbrName: 'Ccy',\n        Tag: 479,\n        NotReqXML: 0,\n        Name: 'CommCurrency',\n    },\n    {\n        Type: 'char',\n        Description:\n            'For CIV - A one character code identifying whether Cancellation rights/Cooling off period applies.',\n        added: 'FIX.4.3',\n        AbbrName: 'CxllationRights',\n        Tag: 480,\n        NotReqXML: 0,\n        Name: 'CancellationRights',\n    },\n    {\n        Type: 'char',\n        Description: 'A one character code identifying Money laundering status.',\n        added: 'FIX.4.3',\n        AbbrName: 'MnyLaunderingStat',\n        Tag: 481,\n        NotReqXML: 0,\n        Name: 'MoneyLaunderingStatus',\n    },\n    {\n        Type: 'String',\n        Description: 'Free format text to specify mailing instruction requirements, e.g. \"no third party mailings\".',\n        added: 'FIX.4.3',\n        AbbrName: 'MailingInst',\n        Tag: 482,\n        NotReqXML: 0,\n        Name: 'MailingInst',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'For CIV A date and time stamp to indicate the time a CIV order was booked by the fund manager.\\nFor derivatives a date and time stamp to indicate when this order was booked with the agent prior to submission to the VMU. Indicates the time at which the order was finalized between the buyer and seller prior to submission.',\n        added: 'FIX.4.3',\n        AbbrName: 'TransBkdTm',\n        Tag: 483,\n        NotReqXML: 0,\n        Name: 'TransBkdTime',\n    },\n    {\n        Type: 'char',\n        Description:\n            'For CIV - Identifies how the execution price LastPx (31) was calculated from the fund unit/share price(s) calculated at the fund valuation point.',\n        added: 'FIX.4.3',\n        AbbrName: 'ExecPxTyp',\n        Tag: 484,\n        NotReqXML: 0,\n        Name: 'ExecPriceType',\n    },\n    {\n        Type: 'float',\n        Description:\n            'For CIV the amount or percentage by which the fund unit/share price was adjusted, as indicated by ExecPriceType (484)',\n        added: 'FIX.4.3',\n        AbbrName: 'ExecPxAdjment',\n        Tag: 485,\n        NotReqXML: 0,\n        Name: 'ExecPriceAdjustment',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'The date of birth applicable to the individual, e.g. required to open some types of tax-exempt account.',\n        added: 'FIX.4.3',\n        AbbrName: 'DtOfBirth',\n        Tag: 486,\n        NotReqXML: 0,\n        Name: 'DateOfBirth',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies Trade Report message transaction type\\n(Prior to FIX 4.4 this field was of type char)',\n        added: 'FIX.4.3',\n        AbbrName: 'TransTyp',\n        Tag: 487,\n        NotReqXML: 0,\n        Name: 'TradeReportTransType',\n    },\n    {\n        Type: 'String',\n        Description: 'The name of the payment card holder as specified on the card being used for payment.',\n        added: 'FIX.4.3',\n        AbbrName: 'CardHolderName',\n        Tag: 488,\n        NotReqXML: 0,\n        Name: 'CardHolderName',\n    },\n    {\n        Type: 'String',\n        Description: 'The number of the payment card as specified on the card being used for payment.',\n        added: 'FIX.4.3',\n        AbbrName: 'CardNum',\n        Tag: 489,\n        NotReqXML: 0,\n        Name: 'CardNumber',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'The expiry date of the payment card as specified on the card being used for payment.',\n        added: 'FIX.4.3',\n        AbbrName: 'CardExpDt',\n        Tag: 490,\n        NotReqXML: 0,\n        Name: 'CardExpDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            'The issue number of the payment card as specified on the card being used for payment. This is only applicable to certain types of card.',\n        added: 'FIX.4.3',\n        AbbrName: 'CardIssNum',\n        Tag: 491,\n        NotReqXML: 0,\n        Name: 'CardIssNum',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved1000Plus',\n        Description:\n            'A code identifying the Settlement payment method. 16 through 998 are reserved for future use\\nValues above 1000 are available for use by private agreement among counterparties',\n        added: 'FIX.4.3',\n        AbbrName: 'PmtMethod',\n        Tag: 492,\n        NotReqXML: 0,\n        Name: 'PaymentMethod',\n    },\n    {\n        BaseCategory: 'RegistrationInstruction',\n        Type: 'String',\n        Description:\n            \"For CIV - a fund manager-defined code identifying which of the fund manager's account types is required.\",\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'AcctTyp',\n        AbbrName: 'AcctTyp',\n        Tag: 493,\n        NotReqXML: 0,\n        Name: 'RegistAcctType',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Free format text defining the designation to be associated with a holding on the register. Used to identify assets of a specific underlying investor using a common registration, e.g. a broker's nominee or street name.\",\n        added: 'FIX.4.3',\n        AbbrName: 'Designation',\n        Tag: 494,\n        NotReqXML: 0,\n        Name: 'Designation',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved1000Plus',\n        Description:\n            'For CIV - a code identifying the type of tax exempt account in which purchased shares/units are to be held.\\n30 - 998 are reserved for future use by recognized taxation authorities\\n999=Other\\nvalues above 1000 are available for use by private agreement among counterparties',\n        added: 'FIX.4.3',\n        AbbrName: 'TaxAdvantageTyp',\n        Tag: 495,\n        NotReqXML: 0,\n        Name: 'TaxAdvantageType',\n    },\n    {\n        BaseCategory: 'RegistrationInstruction',\n        Type: 'String',\n        Description: 'Text indicating reason(s) why a Registration Instruction has been rejected.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'Dtls',\n        AbbrName: 'RejRsnTxt',\n        Tag: 496,\n        NotReqXML: 0,\n        Name: 'RegistRejReasonText',\n    },\n    {\n        Type: 'char',\n        Description: 'A one character code identifying whether the Fund based renewal commission is to be waived.',\n        added: 'FIX.4.3',\n        AbbrName: 'FundRenewWaiv',\n        Tag: 497,\n        NotReqXML: 0,\n        Name: 'FundRenewWaiv',\n    },\n    {\n        Type: 'String',\n        Description: 'Name of local agent bank if for cash distributions',\n        added: 'FIX.4.3',\n        AbbrName: 'CshDistribAgentName',\n        Tag: 498,\n        NotReqXML: 0,\n        Name: 'CashDistribAgentName',\n    },\n    {\n        Type: 'String',\n        Description: 'BIC (Bank Identification Code--Swift managed) code of agent bank for cash distributions',\n        added: 'FIX.4.3',\n        AbbrName: 'CshDistribAgentCode',\n        Tag: 499,\n        NotReqXML: 0,\n        Name: 'CashDistribAgentCode',\n    },\n    {\n        Type: 'String',\n        Description: 'Account number at agent bank for distributions.',\n        added: 'FIX.4.3',\n        AbbrName: 'CshDistribAgentAcctNum',\n        Tag: 500,\n        NotReqXML: 0,\n        Name: 'CashDistribAgentAcctNumber',\n    },\n    {\n        Type: 'String',\n        Description: 'Free format Payment reference to assist with reconciliation of distributions.',\n        added: 'FIX.4.3',\n        AbbrName: 'CshDistribPayRef',\n        Tag: 501,\n        NotReqXML: 0,\n        Name: 'CashDistribPayRef',\n    },\n    {\n        Type: 'String',\n        Description: 'Name of account at agent bank for distributions.',\n        added: 'FIX.4.3',\n        AbbrName: 'CshDistribAgentAcctName',\n        Tag: 502,\n        NotReqXML: 0,\n        Name: 'CashDistribAgentAcctName',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'The start date of the card as specified on the card being used for payment.',\n        added: 'FIX.4.3',\n        AbbrName: 'CardStartDt',\n        Tag: 503,\n        NotReqXML: 0,\n        Name: 'CardStartDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'The date written on a cheque or date payment should be submitted to the relevant clearing system.',\n        added: 'FIX.4.3',\n        AbbrName: 'PmtDt',\n        Tag: 504,\n        NotReqXML: 0,\n        Name: 'PaymentDate',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifies sender of a payment, e.g. the payment remitter or a customer reference number.',\n        added: 'FIX.4.3',\n        AbbrName: 'PmtRemtrID',\n        Tag: 505,\n        NotReqXML: 0,\n        Name: 'PaymentRemitterID',\n    },\n    {\n        Type: 'char',\n        Description: 'Registration status as returned by the broker or (for CIV) the fund manager:',\n        added: 'FIX.4.3',\n        AbbrName: 'RegStat',\n        Tag: 506,\n        NotReqXML: 0,\n        Name: 'RegistStatus',\n    },\n    {\n        BaseCategory: 'RegistrationInstruction',\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Reason(s) why Registration Instructions has been rejected.\\nThe reason may be further amplified in the RegistRejReasonCode field.\\nPossible values of reason code include:',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'RejRsnCd',\n        AbbrName: 'RejRsnCd',\n        Tag: 507,\n        NotReqXML: 0,\n        Name: 'RegistRejReasonCode',\n    },\n    {\n        BaseCategory: 'RegistrationInstruction',\n        Type: 'String',\n        Description:\n            'Reference identifier for the RegistID (53) with Cancel and Replace RegistTransType (54) transaction types.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'RefID',\n        AbbrName: 'RefID',\n        Tag: 508,\n        NotReqXML: 0,\n        Name: 'RegistRefID',\n    },\n    {\n        BaseCategory: 'RegistrationInstruction',\n        Type: 'String',\n        Description: 'Set of Registration name and address details, possibly including phone, fax etc.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'RejRsnTxt',\n        AbbrName: 'Dtls',\n        Tag: 509,\n        NotReqXML: 0,\n        Name: 'RegistDtls',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'The number of Distribution Instructions on a Registration Instructions message',\n        added: 'FIX.4.3',\n        AbbrName: 'NoDistribInsts',\n        Tag: 510,\n        NotReqXML: 1,\n        Name: 'NoDistribInsts',\n    },\n    {\n        BaseCategory: 'RegistrationInstruction',\n        Type: 'String',\n        Description: 'Email address relating to Registration name and address details',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'Email',\n        AbbrName: 'Email',\n        Tag: 511,\n        NotReqXML: 0,\n        Name: 'RegistEmail',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'The amount of each distribution to go to this beneficiary, expressed as a percentage',\n        added: 'FIX.4.3',\n        AbbrName: 'DistribPctage',\n        Tag: 512,\n        NotReqXML: 0,\n        Name: 'DistribPercentage',\n    },\n    {\n        BaseCategory: 'RegistrationInstruction',\n        Type: 'String',\n        Description: 'Unique identifier of the registration details as assigned by institution or intermediary.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'ID',\n        AbbrName: 'RegistID',\n        Tag: 513,\n        NotReqXML: 0,\n        Name: 'RegistID',\n    },\n    {\n        Type: 'char',\n        Description: 'Identifies Registration Instructions transaction type',\n        added: 'FIX.4.3',\n        AbbrName: 'TransTyp',\n        Tag: 514,\n        NotReqXML: 0,\n        Name: 'RegistTransType',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'For CIV - a date and time stamp to indicate the fund valuation point with respect to which a order was priced by the fund manager.',\n        added: 'FIX.4.3',\n        AbbrName: 'ExecValuationPoint',\n        Tag: 515,\n        NotReqXML: 0,\n        Name: 'ExecValuationPoint',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            \"For CIV specifies the approximate order quantity desired. For a CIV Sale it specifies percentage of investor's total holding to be sold. For a CIV switch/exchange it specifies percentage of investor's cash realised from sales to be re-invested. The executing broker, intermediary or fund manager is responsible for converting and calculating OrderQty (38) in shares/units for subsequent messages.\",\n        added: 'FIX.4.3',\n        AbbrName: 'Pct',\n        Tag: 516,\n        NotReqXML: 0,\n        Name: 'OrderPercent',\n    },\n    {\n        Type: 'char',\n        Description: 'The relationship between Registration parties.',\n        added: 'FIX.4.3',\n        AbbrName: 'OwnershipTyp',\n        Tag: 517,\n        NotReqXML: 0,\n        Name: 'OwnershipType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'The number of Contract Amount details on an Execution Report message',\n        added: 'FIX.4.3',\n        AbbrName: 'NoContAmts',\n        Tag: 518,\n        NotReqXML: 1,\n        Name: 'NoContAmts',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Type of ContAmtValue (520).\\nNOTE That Commission Amount / % in Contract Amounts is the commission actually charged, rather than the commission instructions given in Fields 2/3.',\n        added: 'FIX.4.3',\n        AbbrName: 'ContAmtTyp',\n        Tag: 519,\n        NotReqXML: 0,\n        Name: 'ContAmtType',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Value of Contract Amount, e.g. a financial amount or percentage as indicated by ContAmtType (519).',\n        added: 'FIX.4.3',\n        AbbrName: 'ContAmtValu',\n        Tag: 520,\n        NotReqXML: 0,\n        Name: 'ContAmtValue',\n    },\n    {\n        Type: 'Currency',\n        Description:\n            'Specifies currency for the Contract amount if different from the Deal Currency - see \"Appendix 6-A; Valid Currency Codes\".',\n        added: 'FIX.4.3',\n        AbbrName: 'ContAmtCurr',\n        Tag: 521,\n        NotReqXML: 0,\n        Name: 'ContAmtCurr',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the type of owner.',\n        added: 'FIX.4.3',\n        AbbrName: 'OwnerTyp',\n        Tag: 522,\n        NotReqXML: 0,\n        Name: 'OwnerType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Sub-identifier (e.g. Clearing Account for PartyRole (452)=Clearing Firm, Locate ID # for PartyRole=Locate/Lending Firm, etc). Not required when using PartyID (448), PartyIDSource (447), and PartyRole.',\n        added: 'FIX.4.3',\n        AbbrName: 'ID',\n        Tag: 523,\n        NotReqXML: 0,\n        Name: 'PartySubID',\n    },\n    {\n        Type: 'String',\n        Description: 'PartyID value within a nested repeating group.\\nSame values as PartyID (448)',\n        added: 'FIX.4.3',\n        AbbrName: 'ID',\n        Tag: 524,\n        NotReqXML: 0,\n        Name: 'NestedPartyID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description: 'PartyIDSource value within a nested repeating group.\\nSame values as PartyIDSource (447)',\n        added: 'FIX.4.3',\n        AbbrName: 'Src',\n        Tag: 525,\n        NotReqXML: 0,\n        Name: 'NestedPartyIDSource',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'String',\n        Description:\n            'Assigned by the party which originates the order. Can be used to provide the ClOrdID (11) used by an exchange or executing system.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'ID2',\n        AbbrName: 'ClOrdID2',\n        Tag: 526,\n        NotReqXML: 0,\n        Name: 'SecondaryClOrdID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Assigned by the party which accepts the order. Can be used to provide the ExecID (17) used by an exchange or executing system.',\n        added: 'FIX.4.3',\n        AbbrName: 'ExecID2',\n        Tag: 527,\n        NotReqXML: 0,\n        Name: 'SecondaryExecID',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Designates the capacity of the firm placing the order.\\n(as of FIX 4.3, this field replaced Rule80A (tag 47) --used in conjunction with OrderRestrictions (529) field)\\n(see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.4.3',\n        AbbrName: 'Cpcty',\n        Tag: 528,\n        NotReqXML: 0,\n        Name: 'OrderCapacity',\n    },\n    {\n        Type: 'MultipleCharValue',\n        Description:\n            'Restrictions associated with an order. If more than one restriction is applicable to an order, this field can contain multiple instructions separated by space.',\n        added: 'FIX.4.3',\n        AbbrName: 'Rstctions',\n        Tag: 529,\n        NotReqXML: 0,\n        Name: 'OrderRestrictions',\n    },\n    {\n        BaseCategory: 'OrderMassHandling',\n        Type: 'char',\n        Description: 'Specifies scope of Order Mass Cancel Request.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'ReqTyp',\n        AbbrName: 'MassCxlReqTyp',\n        Tag: 530,\n        NotReqXML: 0,\n        Name: 'MassCancelRequestType',\n    },\n    {\n        BaseCategory: 'OrderMassHandling',\n        Type: 'char',\n        Description:\n            'Specifies the action taken by counterparty order handling system as a result of the Order Mass Cancel Request',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'Rsp',\n        AbbrName: 'MassCxlRsp',\n        Tag: 531,\n        NotReqXML: 0,\n        Name: 'MassCancelResponse',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Reason Order Mass Cancel Request was rejected',\n        added: 'FIX.4.3',\n        AbbrName: 'MassCxlRejRsn',\n        Tag: 532,\n        NotReqXML: 0,\n        Name: 'MassCancelRejectReason',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Total number of orders affected by either the OrderMassActionRequest(MsgType=CA) or OrderMassCancelRequest(MsgType=Q).',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        AbbrName: 'TotAffctdOrds',\n        Tag: 533,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'TotalAffectedOrders',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of affected orders in the repeating group of order ids.',\n        added: 'FIX.4.3',\n        AbbrName: 'NoAffctdOrds',\n        Tag: 534,\n        NotReqXML: 0,\n        Name: 'NoAffectedOrders',\n    },\n    {\n        Type: 'String',\n        Description: 'OrderID (37) of an order affected by a mass cancel request.',\n        added: 'FIX.4.3',\n        AbbrName: 'AffctdOrdID',\n        Tag: 535,\n        NotReqXML: 0,\n        Name: 'AffectedOrderID',\n    },\n];\n\nconst batch2: ISpecFields[] = [\n    {\n        Type: 'String',\n        Description: 'SecondaryOrderID (198) of an order affected by a mass cancel request.',\n        added: 'FIX.4.3',\n        AbbrName: 'AffctdScndOrdID',\n        Tag: 536,\n        NotReqXML: 0,\n        Name: 'AffectedSecondaryOrderID',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Identifies the type of quote.\\nAn indicative quote is used to inform a counterparty of a market. An indicative quote does not result directly in a trade.\\nA tradeable quote is submitted to a market and will result directly in a trade against other orders and quotes in a market.\\nA restricted tradeable quote is submitted to a market and within a certain restriction (possibly based upon price or quantity) will automatically trade against orders. Order that do not comply with restrictions are sent to the quote issuer who can choose to accept or decline the order.\\nA counter quote is used in the negotiation model. See Volume 7 - Product: Fixed Income for example usage.',\n        added: 'FIX.4.3',\n        AbbrName: 'Typ',\n        Tag: 537,\n        NotReqXML: 0,\n        Name: 'QuoteType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description: 'PartyRole value within a nested repeating group.\\nSame values as PartyRole (452)',\n        added: 'FIX.4.3',\n        AbbrName: 'R',\n        Tag: 538,\n        NotReqXML: 0,\n        Name: 'NestedPartyRole',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of NestedPartyID (524), NestedPartyIDSource (525), and NestedPartyRole (538) entries',\n        added: 'FIX.4.3',\n        AbbrName: 'NoNstPtyIDs',\n        Tag: 539,\n        NotReqXML: 1,\n        Name: 'NoNestedPartyIDs',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Total Amount of Accrued Interest for convertible bonds and fixed income',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.4.4',\n        AbbrName: 'TotAcrdIntAmt',\n        Tag: 540,\n        NotReqXML: 0,\n        Name: 'TotalAccruedInterestAmt',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'Date of maturity.',\n        added: 'FIX.4.3',\n        AbbrName: 'MatDt',\n        Tag: 541,\n        NotReqXML: 0,\n        Name: 'MaturityDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: \"Underlying security's maturity date.\\nSee MaturityDate (541) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Mat',\n        Tag: 542,\n        NotReqXML: 0,\n        Name: 'UnderlyingMaturityDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Values may include BIC for the depository or custodian who maintain ownership records, the ISO country code for the location of the record, or the value \"ZZ\" to specify physical ownership of the security (e.g. stock certificate).',\n        added: 'FIX.4.3',\n        AbbrName: 'Rgstry',\n        Tag: 543,\n        NotReqXML: 0,\n        Name: 'InstrRegistry',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Identifies whether an order is a margin order or a non-margin order. This is primarily used when sending orders to Japanese exchanges to indicate sell margin or buy to cover. The same tag could be assigned also by buy-side to indicate the intent to sell or buy margin and the sell-side to accept or reject (base on some validation criteria) the margin request.',\n        added: 'FIX.4.3',\n        AbbrName: 'CshMgn',\n        Tag: 544,\n        NotReqXML: 0,\n        Name: 'CashMargin',\n    },\n    {\n        Type: 'String',\n        Description: 'PartySubID value within a nested repeating group.\\nSame values as PartySubID (523)',\n        added: 'FIX.4.3',\n        AbbrName: 'ID',\n        Tag: 545,\n        NotReqXML: 0,\n        Name: 'NestedPartySubID',\n    },\n    {\n        Type: 'MultipleCharValue',\n        Description: 'Specifies the market scope of the market data.',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        AbbrName: 'Scope',\n        Tag: 546,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'Scope',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Defines how a server handles distribution of a truncated book. Defaults to broker option.',\n        added: 'FIX.4.3',\n        AbbrName: 'ImplctDel',\n        Tag: 547,\n        NotReqXML: 0,\n        Name: 'MDImplicitDelete',\n    },\n    {\n        BaseCategory: 'CrossOrders',\n        Type: 'String',\n        Description:\n            'Identifier for a cross order. Must be unique during a given trading day. Recommend that firms use the order date as part of the CrossID for Good Till Cancel (GT) orders.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'ID',\n        AbbrName: 'CrssID',\n        Tag: 548,\n        NotReqXML: 0,\n        Name: 'CrossID',\n    },\n    {\n        BaseCategory: 'CrossOrders',\n        Type: 'int',\n        Description: 'Type of cross being submitted to a market',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'Typ',\n        AbbrName: 'CrssTyp',\n        Tag: 549,\n        NotReqXML: 0,\n        Name: 'CrossType',\n    },\n    {\n        BaseCategory: 'CrossOrders',\n        Type: 'int',\n        Description:\n            'Indicates if one side or the other of a cross order should be prioritized.\\nThe definition of prioritization is left to the market. In some markets prioritization means which side of the cross order is applied to the market first. In other markets - prioritization may mean that the prioritized side is fully executed (sometimes referred to as the side being protected).',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'Priorty',\n        AbbrName: 'CrssPriortstn',\n        Tag: 550,\n        NotReqXML: 0,\n        Name: 'CrossPrioritization',\n    },\n    {\n        BaseCategory: 'CrossOrders',\n        Type: 'String',\n        Description:\n            'CrossID of the previous cross order (NOT the initial cross order of the day) as assigned by the institution, used to identify the previous cross order in Cross Cancel and Cross Cancel/Replace Requests.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'OrigID',\n        AbbrName: 'OrigCrssID',\n        Tag: 551,\n        NotReqXML: 0,\n        Name: 'OrigCrossID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Side repeating group instances.',\n        added: 'FIX.4.3',\n        AbbrName: 'NoSides',\n        Tag: 552,\n        NotReqXML: 1,\n        Name: 'NoSides',\n    },\n    {\n        Type: 'String',\n        Description: 'Userid or username.',\n        added: 'FIX.4.3',\n        AbbrName: 'Username',\n        Tag: 553,\n        NotReqXML: 0,\n        Name: 'Username',\n    },\n    {\n        Type: 'String',\n        Description: 'Password or passphrase.',\n        added: 'FIX.4.3',\n        AbbrName: 'Password',\n        Tag: 554,\n        NotReqXML: 0,\n        Name: 'Password',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of InstrumentLeg repeating group instances.',\n        added: 'FIX.4.3',\n        AbbrName: 'NoLegs',\n        Tag: 555,\n        NotReqXML: 1,\n        Name: 'NoLegs',\n    },\n    {\n        Type: 'Currency',\n        Description: \"Currency associated with a particular Leg's quantity\",\n        added: 'FIX.4.3',\n        AbbrName: 'Ccy',\n        Tag: 556,\n        NotReqXML: 0,\n        Name: 'LegCurrency',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Used to support fragmentation. Indicates total number of security types when multiple Security Type messages are used to return results.',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        AbbrName: 'TotNoSecTyps',\n        Tag: 557,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'TotNoSecurityTypes',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Security Type repeating group instances.',\n        added: 'FIX.4.3',\n        AbbrName: 'NoSecTyps',\n        Tag: 558,\n        NotReqXML: 1,\n        Name: 'NoSecurityTypes',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the type/criteria of Security List Request',\n        added: 'FIX.4.3',\n        AbbrName: 'ListReqTyp',\n        Tag: 559,\n        NotReqXML: 0,\n        Name: 'SecurityListRequestType',\n    },\n    {\n        Type: 'int',\n        Description: 'The results returned to a Security Request message',\n        added: 'FIX.4.3',\n        AbbrName: 'ReqRslt',\n        Tag: 560,\n        NotReqXML: 0,\n        Name: 'SecurityRequestResult',\n    },\n    {\n        Type: 'Qty',\n        Description: 'The trading lot size of a security',\n        added: 'FIX.4.3',\n        AbbrName: 'RndLot',\n        Tag: 561,\n        NotReqXML: 0,\n        Name: 'RoundLot',\n    },\n    {\n        Type: 'Qty',\n        Description: 'The minimum trading volume for a security',\n        added: 'FIX.4.3',\n        AbbrName: 'MinTrdVol',\n        Tag: 562,\n        NotReqXML: 0,\n        Name: 'MinTradeVol',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the method of execution reporting requested by issuer of the order.',\n        added: 'FIX.4.3',\n        AbbrName: 'MLEGRptTypReq',\n        Tag: 563,\n        NotReqXML: 0,\n        Name: 'MultiLegRptTypeReq',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 77,\n        Description: 'PositionEffect for leg of a multileg\\nSee PositionEffect (77) field for description',\n        added: 'FIX.4.3',\n        AbbrName: 'PosEfct',\n        Tag: 564,\n        NotReqXML: 0,\n        Name: 'LegPositionEffect',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 203,\n        Description: 'CoveredOrUncovered for leg of a multileg\\nSee CoveredOrUncovered (203) field for description',\n        added: 'FIX.4.3',\n        AbbrName: 'Cover',\n        Tag: 565,\n        NotReqXML: 0,\n        Name: 'LegCoveredOrUncovered',\n    },\n    {\n        Type: 'Price',\n        Description: 'Price for leg of a multileg\\nSee Price (44) field for description',\n        added: 'FIX.4.3',\n        AbbrName: 'Px',\n        Tag: 566,\n        NotReqXML: 0,\n        Name: 'LegPrice',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Indicates the reason a Trading Session Status Request was rejected.',\n        added: 'FIX.4.3',\n        AbbrName: 'StatRejRsn',\n        Tag: 567,\n        NotReqXML: 0,\n        Name: 'TradSesStatusRejReason',\n    },\n    {\n        Type: 'String',\n        Description: 'Trade Capture Report Request ID',\n        added: 'FIX.4.3',\n        AbbrName: 'ReqID',\n        Tag: 568,\n        NotReqXML: 0,\n        Name: 'TradeRequestID',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Trade Capture Report.',\n        added: 'FIX.4.3',\n        AbbrName: 'ReqTyp',\n        Tag: 569,\n        NotReqXML: 0,\n        Name: 'TradeRequestType',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates if the trade capture report was previously reported to the counterparty',\n        added: 'FIX.4.3',\n        AbbrName: 'PrevlyRpted',\n        Tag: 570,\n        NotReqXML: 0,\n        Name: 'PreviouslyReported',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier of trade capture report',\n        added: 'FIX.4.3',\n        AbbrName: 'RptID',\n        Tag: 571,\n        NotReqXML: 0,\n        Name: 'TradeReportID',\n    },\n    {\n        Type: 'String',\n        Description: 'Reference identifier used with CANCEL and REPLACE transaction types.',\n        added: 'FIX.4.3',\n        AbbrName: 'RptRefID',\n        Tag: 572,\n        NotReqXML: 0,\n        Name: 'TradeReportRefID',\n    },\n    {\n        Type: 'char',\n        Description: 'The status of this trade with respect to matching or comparison.',\n        added: 'FIX.4.3',\n        AbbrName: 'MtchStat',\n        Tag: 573,\n        NotReqXML: 0,\n        Name: 'MatchStatus',\n    },\n    {\n        Type: 'String',\n        Description: 'The point in the matching process at which this trade was matched.',\n        added: 'FIX.4.3',\n        AbbrName: 'MtchTyp',\n        Tag: 574,\n        NotReqXML: 0,\n        Name: 'MatchType',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'This trade is to be treated as an odd lot\\nIf this field is not specified, the default will be \"N\"',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'OddLot',\n        Tag: 575,\n        NotReqXML: 0,\n        Name: 'OddLot',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of clearing instructions',\n        added: 'FIX.4.3',\n        AbbrName: 'NoClrngInstrctns',\n        Tag: 576,\n        NotReqXML: 1,\n        Name: 'NoClearingInstructions',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Eligibility of this trade for clearing and central counterparty processing\\nvalues above 4000 are reserved for agreement between parties',\n        added: 'FIX.4.3',\n        AbbrName: 'ClrngInstrctn',\n        Tag: 577,\n        NotReqXML: 0,\n        Name: 'ClearingInstruction',\n    },\n    {\n        Type: 'String',\n        Description: 'Type of input device or system from which the trade was entered.',\n        added: 'FIX.4.3',\n        AbbrName: 'InptSrc',\n        Tag: 578,\n        NotReqXML: 0,\n        Name: 'TradeInputSource',\n    },\n    {\n        Type: 'String',\n        Description: 'Specific device number, terminal number or station where trade was entered',\n        added: 'FIX.4.3',\n        AbbrName: 'InptDev',\n        Tag: 579,\n        NotReqXML: 0,\n        Name: 'TradeInputDevice',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Date fields provided in date range',\n        added: 'FIX.4.3',\n        AbbrName: 'NoDts',\n        Tag: 580,\n        NotReqXML: 0,\n        Name: 'NoDates',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of account associated with an order',\n        added: 'FIX.4.3',\n        AbbrName: 'AcctTyp',\n        Tag: 581,\n        NotReqXML: 0,\n        Name: 'AccountType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Capacity of customer placing the order\\nPrimarily used by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission).',\n        added: 'FIX.4.3',\n        AbbrName: 'CustCpcty',\n        Tag: 582,\n        NotReqXML: 0,\n        Name: 'CustOrderCapacity',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'String',\n        Description:\n            'Permits order originators to tie together groups of orders in which trades resulting from orders are associated for a specific purpose, for example the calculation of average execution price for a customer or to associate lists submitted to a broker as waves of a larger program trade.',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'LnkID',\n        AbbrName: 'ClOrdLinkID',\n        Tag: 583,\n        NotReqXML: 0,\n        Name: 'ClOrdLinkID',\n    },\n    {\n        BaseCategory: 'OrderMassHandling',\n        Type: 'String',\n        Description: 'Value assigned by issuer of Mass Status Request to uniquely identify the request',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'ReqID',\n        AbbrName: 'MassStatReqID',\n        Tag: 584,\n        NotReqXML: 0,\n        Name: 'MassStatusReqID',\n    },\n    {\n        BaseCategory: 'OrderMassHandling',\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Mass Status Request Type',\n        added: 'FIX.4.3',\n        updatedEP: 85,\n        BaseCategoryAbbrName: 'ReqTyp',\n        AbbrName: 'MassStatReqTyp',\n        Tag: 585,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'MassStatusReqType',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'The most recent (or current) modification TransactTime (tag 60) reported on an Execution Report for the order. The OrigOrdModTime is provided as an optional field on Order Cancel Request and Order Cancel Replace Requests to identify that the state of the order has not changed since the request was issued. The use of this approach is not recommended.',\n        added: 'FIX.4.3',\n        AbbrName: 'OrigOrdModTm',\n        Tag: 586,\n        NotReqXML: 0,\n        Name: 'OrigOrdModTime',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 63,\n        Description: 'Refer to values for SettlType[63]',\n        added: 'FIX.4.3',\n        AbbrName: 'SettlTyp',\n        Tag: 587,\n        NotReqXML: 0,\n        Name: 'LegSettlType',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'Refer to description for SettlDate[64]',\n        added: 'FIX.4.3',\n        AbbrName: 'SettlDt',\n        Tag: 588,\n        NotReqXML: 0,\n        Name: 'LegSettlDate',\n    },\n    {\n        Type: 'char',\n        Description: 'Indicates whether or not automatic booking can occur.',\n        added: 'FIX.4.3',\n        AbbrName: 'DayBkngInst',\n        Tag: 589,\n        NotReqXML: 0,\n        Name: 'DayBookingInst',\n    },\n    {\n        Type: 'char',\n        Description: 'Indicates what constitutes a bookable unit.',\n        added: 'FIX.4.3',\n        AbbrName: 'BkngUnit',\n        Tag: 590,\n        NotReqXML: 0,\n        Name: 'BookingUnit',\n    },\n    {\n        Type: 'char',\n        Description: 'Indicates the method of preallocation.',\n        added: 'FIX.4.3',\n        AbbrName: 'PreallocMeth',\n        Tag: 591,\n        NotReqXML: 0,\n        Name: 'PreallocMethod',\n    },\n    {\n        Type: 'Country',\n        Description: \"Underlying security's CountryOfIssue.\\nSee CountryOfIssue (470) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Ctry',\n        Tag: 592,\n        NotReqXML: 0,\n        Name: 'UnderlyingCountryOfIssue',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Underlying security's StateOrProvinceOfIssue.\\nSee StateOrProvinceOfIssue (471) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'StOrProvnc',\n        Tag: 593,\n        NotReqXML: 0,\n        Name: 'UnderlyingStateOrProvinceOfIssue',\n    },\n    {\n        Type: 'String',\n        Description: \"Underlying security's LocaleOfIssue.\\nSee LocaleOfIssue (472) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Lcl',\n        Tag: 594,\n        NotReqXML: 0,\n        Name: 'UnderlyingLocaleOfIssue',\n    },\n    {\n        Type: 'String',\n        Description: \"Underlying security's InstrRegistry.\\nSee InstrRegistry (543) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Rgstry',\n        Tag: 595,\n        NotReqXML: 0,\n        Name: 'UnderlyingInstrRegistry',\n    },\n    {\n        Type: 'Country',\n        Description:\n            \"Multileg instrument's individual leg security's CountryOfIssue.\\nSee CountryOfIssue (470) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Ctry',\n        Tag: 596,\n        NotReqXML: 0,\n        Name: 'LegCountryOfIssue',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Multileg instrument's individual leg security's StateOrProvinceOfIssue.\\nSee StateOrProvinceOfIssue (471) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'StOrProvnc',\n        Tag: 597,\n        NotReqXML: 0,\n        Name: 'LegStateOrProvinceOfIssue',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Multileg instrument's individual leg security's LocaleOfIssue.\\nSee LocaleOfIssue (472) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Lcl',\n        Tag: 598,\n        NotReqXML: 0,\n        Name: 'LegLocaleOfIssue',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Multileg instrument's individual leg security's InstrRegistry.\\nSee InstrRegistry (543) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Rgstry',\n        Tag: 599,\n        NotReqXML: 0,\n        Name: 'LegInstrRegistry',\n    },\n    {\n        Type: 'String',\n        Description: \"Multileg instrument's individual security's Symbol.\\nSee Symbol (55) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Sym',\n        Tag: 600,\n        NotReqXML: 0,\n        Name: 'LegSymbol',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 65,\n        Description: \"Multileg instrument's individual security's SymbolSfx.\\nSee SymbolSfx (65) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Sfx',\n        Tag: 601,\n        NotReqXML: 0,\n        Name: 'LegSymbolSfx',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Multileg instrument's individual security's SecurityID.\\nSee SecurityID (48) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'ID',\n        Tag: 602,\n        NotReqXML: 0,\n        Name: 'LegSecurityID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description:\n            \"Multileg instrument's individual security's SecurityIDSource.\\nSee SecurityIDSource (22) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Src',\n        Tag: 603,\n        NotReqXML: 0,\n        Name: 'LegSecurityIDSource',\n    },\n    {\n        Type: 'NumInGroup',\n        Description:\n            \"Multileg instrument's individual security's NoSecurityAltID.\\nSee NoSecurityAltID (454) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'NoLegSecAltID',\n        Tag: 604,\n        NotReqXML: 0,\n        Name: 'NoLegSecurityAltID',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Multileg instrument's individual security's SecurityAltID.\\nSee SecurityAltID (455) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'SecAltID',\n        Tag: 605,\n        NotReqXML: 0,\n        Name: 'LegSecurityAltID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description:\n            \"Multileg instrument's individual security's SecurityAltIDSource.\\nSee SecurityAltIDSource (456) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'SecAltIDSrc',\n        Tag: 606,\n        NotReqXML: 0,\n        Name: 'LegSecurityAltIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 460,\n        Description: \"Multileg instrument's individual security's Product.\\nSee Product (460) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Prod',\n        Tag: 607,\n        NotReqXML: 0,\n        Name: 'LegProduct',\n    },\n    {\n        Type: 'String',\n        Description: \"Multileg instrument's individual security's CFICode.\\nSee CFICode (461) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'CFI',\n        Tag: 608,\n        NotReqXML: 0,\n        Name: 'LegCFICode',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 167,\n        Description: 'Refer to definition of SecurityType(167)',\n        added: 'FIX.4.3',\n        AbbrName: 'SecTyp',\n        Tag: 609,\n        NotReqXML: 0,\n        Name: 'LegSecurityType',\n    },\n    {\n        Type: 'MonthYear',\n        Description:\n            \"Multileg instrument's individual security's MaturityMonthYear.\\nSee MaturityMonthYear (200) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'MMY',\n        Tag: 610,\n        NotReqXML: 0,\n        Name: 'LegMaturityMonthYear',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            \"Multileg instrument's individual security's MaturityDate.\\nSee MaturityDate (54) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Mat',\n        Tag: 611,\n        NotReqXML: 0,\n        Name: 'LegMaturityDate',\n    },\n    {\n        Type: 'Price',\n        Description:\n            \"Multileg instrument's individual security's StrikePrice.\\nSee StrikePrice (202) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Strk',\n        Tag: 612,\n        NotReqXML: 0,\n        Name: 'LegStrikePrice',\n    },\n    {\n        Type: 'char',\n        Description:\n            \"Multileg instrument's individual security's OptAttribute.\\nSee OptAttribute (206) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'OptA',\n        Tag: 613,\n        NotReqXML: 0,\n        Name: 'LegOptAttribute',\n    },\n    {\n        Type: 'float',\n        Description:\n            \"Multileg instrument's individual security's ContractMultiplier.\\nSee ContractMultiplier (23) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Cmult',\n        Tag: 614,\n        NotReqXML: 0,\n        Name: 'LegContractMultiplier',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            \"Multileg instrument's individual security's CouponRate.\\nSee CouponRate (223) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'CpnRt',\n        Tag: 615,\n        NotReqXML: 0,\n        Name: 'LegCouponRate',\n    },\n    {\n        Type: 'Exchange',\n        Description:\n            \"Multileg instrument's individual security's SecurityExchange.\\nSee SecurityExchange (207) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Exch',\n        Tag: 616,\n        NotReqXML: 0,\n        Name: 'LegSecurityExchange',\n    },\n    {\n        Type: 'String',\n        Description: \"Multileg instrument's individual security's Issuer.\\nSee Issuer (106) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'Issr',\n        Tag: 617,\n        NotReqXML: 0,\n        Name: 'LegIssuer',\n    },\n    {\n        Type: 'Length',\n        Description:\n            \"Multileg instrument's individual security's EncodedIssuerLen.\\nSee EncodedIssuerLen (348) field for description\",\n        added: 'FIX.4.3',\n        AssociatedDataTag: 619,\n        AbbrName: 'EncLegIssrLen',\n        Tag: 618,\n        NotReqXML: 0,\n        Name: 'EncodedLegIssuerLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            \"Multileg instrument's individual security's EncodedIssuer.\\nSee EncodedIssuer (349) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'EncLegIssr',\n        Tag: 619,\n        NotReqXML: 0,\n        Name: 'EncodedLegIssuer',\n    },\n    {\n        Type: 'String',\n        Description: 'Description of a leg of a multileg instrument.\\nSee SecurityDesc(107).',\n        added: 'FIX.4.3',\n        updatedEP: 95,\n        AbbrName: 'Desc',\n        Tag: 620,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'LegSecurityDesc',\n    },\n    {\n        Type: 'Length',\n        Description:\n            \"Multileg instrument's individual security's EncodedSecurityDescLen.\\nSee EncodedSecurityDescLen (350) field for description\",\n        added: 'FIX.4.3',\n        AssociatedDataTag: 622,\n        AbbrName: 'EncLegSecDescLen',\n        Tag: 621,\n        NotReqXML: 0,\n        Name: 'EncodedLegSecurityDescLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            \"Multileg instrument's individual security's EncodedSecurityDesc.\\nSee EncodedSecurityDesc (35) field for description\",\n        added: 'FIX.4.3',\n        AbbrName: 'EncLegSecDesc',\n        Tag: 622,\n        NotReqXML: 0,\n        Name: 'EncodedLegSecurityDesc',\n    },\n    {\n        Type: 'float',\n        Description: 'The ratio of quantity for this individual leg relative to the entire multileg security.',\n        added: 'FIX.4.3',\n        AbbrName: 'RatioQty',\n        Tag: 623,\n        NotReqXML: 0,\n        Name: 'LegRatioQty',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 54,\n        Description:\n            'The side of this individual leg (multileg security).\\nSee Side (54) field for description and values',\n        added: 'FIX.4.3',\n        AbbrName: 'Side',\n        Tag: 624,\n        NotReqXML: 0,\n        Name: 'LegSide',\n    },\n    {\n        Type: 'String',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Optional market assigned sub identifier for a trading phase within a trading session. Usage is determined by market or counterparties. Used by US based futures markets to identify exchange specific execution time bracket codes as required by US market regulations. Bilaterally agreed values of data type \"String\" that start with a character can be used for backward compatibility',\n        added: 'FIX.4.3',\n        AbbrName: 'SesSub',\n        Tag: 625,\n        NotReqXML: 0,\n        Name: 'TradingSessionSubID',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'int',\n        Description:\n            'Describes the specific type or purpose of an Allocation message (i.e. \"Buyside Calculated\")\\n(see Volume : \"Glossary\" for value definitions)\\n*** SOME VALUES HAVE BEEN REPLACED - See \"Replaced Features and Supported Approach\" ***',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'Typ',\n        AbbrName: 'AllocType',\n        Tag: 626,\n        NotReqXML: 0,\n        Name: 'AllocType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of HopCompID entries in repeating group.',\n        added: 'FIX.4.3',\n        AbbrName: 'NoHops',\n        Tag: 627,\n        NotReqXML: 1,\n        Name: 'NoHops',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Assigned value used to identify the third party firm which delivered a specific message either from the firm which originated the message or from another third party (if multiple \"hops\" are performed). It is recommended that this value be the SenderCompID (49) of the third party.\\nApplicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used.',\n        added: 'FIX.4.3',\n        AbbrName: 'ID',\n        Tag: 628,\n        NotReqXML: 0,\n        Name: 'HopCompID',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Time that HopCompID (628) sent the message. It is recommended that this value be the SendingTime (52) of the message sent by the third party.\\nApplicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used.',\n        added: 'FIX.4.3',\n        AbbrName: 'Snt',\n        Tag: 629,\n        NotReqXML: 0,\n        Name: 'HopSendingTime',\n    },\n    {\n        Type: 'SeqNum',\n        Description:\n            'Reference identifier assigned by HopCompID (628) associated with the message sent. It is recommended that this value be the MsgSeqNum (34) of the message sent by the third party.\\nApplicable when messages are communicated/re-distributed via third parties which function as service bureaus or \"hubs\". Only applicable if OnBehalfOfCompID (115) is being used.',\n        added: 'FIX.4.3',\n        AbbrName: 'Ref',\n        Tag: 630,\n        NotReqXML: 0,\n        Name: 'HopRefID',\n    },\n    {\n        Type: 'Price',\n        Description: 'Mid price/rate',\n        added: 'FIX.4.3',\n        AbbrName: 'MidPx',\n        Tag: 631,\n        NotReqXML: 0,\n        Name: 'MidPx',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Bid yield',\n        added: 'FIX.4.3',\n        AbbrName: 'BidYld',\n        Tag: 632,\n        NotReqXML: 0,\n        Name: 'BidYield',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Mid yield',\n        added: 'FIX.4.3',\n        AbbrName: 'MidYld',\n        Tag: 633,\n        NotReqXML: 0,\n        Name: 'MidYield',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Offer yield',\n        added: 'FIX.4.3',\n        AbbrName: 'OfrYld',\n        Tag: 634,\n        NotReqXML: 0,\n        Name: 'OfferYield',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Indicates type of fee being assessed of the customer for trade executions at an exchange. Applicable for futures markets only at this time.\\n(Values source CBOT, CME, NYBOT, and NYMEX):',\n        added: 'FIX.4.3',\n        AbbrName: 'ClrFeeInd',\n        Tag: 635,\n        NotReqXML: 0,\n        Name: 'ClearingFeeIndicator',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Indicates if the order is currently being worked. Applicable only for OrdStatus = \"New\". For open outcry markets this indicates that the order is being worked in the crowd. For electronic markets it indicates that the order has transitioned from a contingent order to a market order.',\n        added: 'FIX.4.3',\n        AbbrName: 'WorkingInd',\n        Tag: 636,\n        NotReqXML: 0,\n        Name: 'WorkingIndicator',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Execution price assigned to a leg of a multileg instrument.\\nSee LastPx (31) field for description and values',\n        added: 'FIX.4.3',\n        AbbrName: 'LastPx',\n        Tag: 637,\n        NotReqXML: 0,\n        Name: 'LegLastPx',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates if a Cancel/Replace has caused an order to lose book priority.',\n        added: 'FIX.4.3',\n        AbbrName: 'PriInd',\n        Tag: 638,\n        NotReqXML: 0,\n        Name: 'PriorityIndicator',\n    },\n    {\n        Type: 'PriceOffset',\n        Description: 'Amount of price improvement.',\n        added: 'FIX.4.3',\n        AbbrName: 'PxImprvmnt',\n        Tag: 639,\n        NotReqXML: 0,\n        Name: 'PriceImprovement',\n    },\n    {\n        Type: 'Price',\n        Description: 'Price of the future part of a F/X swap order.\\nSee Price (44) for description.',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'Px2',\n        Tag: 640,\n        NotReqXML: 0,\n        Name: 'Price2',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'F/X forward points of the future part of a F/X swap order added to LastSpotRate (94). May be a negative value.',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'LastFwdPnts2',\n        Tag: 641,\n        NotReqXML: 0,\n        Name: 'LastForwardPoints2',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'Bid F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value.',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'BidFwdPnts2',\n        Tag: 642,\n        NotReqXML: 0,\n        Name: 'BidForwardPoints2',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'Offer F/X forward points of the future portion of a F/X swap quote added to spot rate. May be a negative value.',\n        added: 'FIX.4.3',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'OfrFwdPnts2',\n        Tag: 643,\n        NotReqXML: 0,\n        Name: 'OfferForwardPoints2',\n    },\n    {\n        Type: 'String',\n        Description: 'RFQ Request ID - used to identify an RFQ Request.',\n        added: 'FIX.4.3',\n        AbbrName: 'RFQReqID',\n        Tag: 644,\n        NotReqXML: 0,\n        Name: 'RFQReqID',\n    },\n    {\n        Type: 'Price',\n        Description: 'Used to indicate the best bid in a market',\n        added: 'FIX.4.3',\n        AbbrName: 'MktBidPx',\n        Tag: 645,\n        NotReqXML: 0,\n        Name: 'MktBidPx',\n    },\n    {\n        Type: 'Price',\n        Description: 'Used to indicate the best offer in a market',\n        added: 'FIX.4.3',\n        AbbrName: 'MktOfrPx',\n        Tag: 646,\n        NotReqXML: 0,\n        Name: 'MktOfferPx',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Used to indicate a minimum quantity for a bid. If this field is used the BidSize (134) field is interpreted as the maximum bid size',\n        added: 'FIX.4.3',\n        AbbrName: 'MinBidSz',\n        Tag: 647,\n        NotReqXML: 0,\n        Name: 'MinBidSize',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Used to indicate a minimum quantity for an offer. If this field is used the OfferSize (135) field is interpreted as the maximum offer size.',\n        added: 'FIX.4.3',\n        AbbrName: 'MinOfrSz',\n        Tag: 648,\n        NotReqXML: 0,\n        Name: 'MinOfferSize',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for Quote Status Request.',\n        added: 'FIX.4.3',\n        AbbrName: 'StatReqID',\n        Tag: 649,\n        NotReqXML: 0,\n        Name: 'QuoteStatusReqID',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates that this message is to serve as the final and legal confirmation.',\n        added: 'FIX.4.3',\n        AbbrName: 'LegalCnfm',\n        Tag: 650,\n        NotReqXML: 0,\n        Name: 'LegalConfirm',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'The calculated or traded price for the underlying instrument that corresponds to a derivative. Used for transactions that include the cash instrument and the derivative.',\n        added: 'FIX.4.3',\n        AbbrName: 'UndLastPx',\n        Tag: 651,\n        NotReqXML: 0,\n        Name: 'UnderlyingLastPx',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'The calculated or traded quantity for the underlying instrument that corresponds to a derivative. Used for transactions that include the cash instrument and the derivative.',\n        added: 'FIX.4.3',\n        AbbrName: 'UndLastQty',\n        Tag: 652,\n        NotReqXML: 0,\n        Name: 'UnderlyingLastQty',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique indicator for a specific leg.',\n        added: 'FIX.4.3',\n        AbbrName: 'RefID',\n        Tag: 654,\n        NotReqXML: 0,\n        Name: 'LegRefID',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'String',\n        Description: 'Unique indicator for a specific leg for the ContraBroker (375).',\n        added: 'FIX.4.3',\n        BaseCategoryAbbrName: 'LegRefID',\n        AbbrName: 'CntraLegRefID',\n        Tag: 655,\n        NotReqXML: 0,\n        Name: 'ContraLegRefID',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Foreign exchange rate used to compute the bid \"SettlCurrAmt\" (119) from Currency (15) to SettlCurrency (120)',\n        added: 'FIX.4.3',\n        AbbrName: 'SettlCurrBidFxRt',\n        Tag: 656,\n        NotReqXML: 0,\n        Name: 'SettlCurrBidFxRate',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Foreign exchange rate used to compute the offer \"SettlCurrAmt\" (119) from Currency (15) to SettlCurrency (120)',\n        added: 'FIX.4.3',\n        AbbrName: 'SettlCurrOfrFxRt',\n        Tag: 657,\n        NotReqXML: 0,\n        Name: 'SettlCurrOfferFxRate',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Reason Quote was rejected:',\n        added: 'FIX.4.3',\n        AbbrName: 'ReqRejRsn',\n        Tag: 658,\n        NotReqXML: 0,\n        Name: 'QuoteRequestRejectReason',\n    },\n    {\n        Type: 'String',\n        Description:\n            'ID within repeating group of sides which is used to represent this transaction for compliance purposes (e.g. OATS reporting).',\n        added: 'FIX.4.3',\n        AbbrName: 'SideComplianceID',\n        Tag: 659,\n        NotReqXML: 0,\n        Name: 'SideComplianceID',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Used to identify the source of the Account (1) code. This is especially useful if the account is a new account that the Respondent may not have setup yet in their system.',\n        added: 'FIX.4.4',\n        AbbrName: 'AcctIDSrc',\n        Tag: 660,\n        NotReqXML: 0,\n        Name: 'AcctIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 660,\n        Description:\n            'Used to identify the source of the AllocAccount (79) code.\\nSee AcctIDSource (660) for valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'ActIDSrc',\n        Tag: 661,\n        NotReqXML: 0,\n        Name: 'AllocAcctIDSource',\n    },\n    {\n        Type: 'Price',\n        Description: 'Specifies the price of the benchmark.',\n        added: 'FIX.4.4',\n        AbbrName: 'Px',\n        Tag: 662,\n        NotReqXML: 0,\n        Name: 'BenchmarkPrice',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 423,\n        Description: 'Identifies type of BenchmarkPrice (662).\\nSee PriceType (423) for valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'PxTyp',\n        Tag: 663,\n        NotReqXML: 0,\n        Name: 'BenchmarkPriceType',\n    },\n    {\n        Type: 'String',\n        Description: 'Message reference for Confirmation',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmID',\n        Tag: 664,\n        NotReqXML: 0,\n        Name: 'ConfirmID',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the status of the Confirmation.',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmStat',\n        Tag: 665,\n        NotReqXML: 0,\n        Name: 'ConfirmStatus',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the Confirmation transaction type.',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmTransTyp',\n        Tag: 666,\n        NotReqXML: 0,\n        Name: 'ConfirmTransType',\n    },\n    {\n        Type: 'MonthYear',\n        Description: 'Specifies when the contract (i.e. MBS/TBA) will settle.',\n        added: 'FIX.4.4',\n        AbbrName: 'CSetMo',\n        Tag: 667,\n        NotReqXML: 0,\n        Name: 'ContractSettlMonth',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the form of delivery.',\n        added: 'FIX.4.4',\n        AbbrName: 'DlvryForm',\n        Tag: 668,\n        NotReqXML: 0,\n        Name: 'DeliveryForm',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Last price expressed in percent-of-par. Conditionally required for Fixed Income trades when LastPx (31) is expressed in Yield, Spread, Discount or any other type.\\nUsage: Execution Report and Allocation Report repeating executions block (from sellside).',\n        added: 'FIX.4.4',\n        AbbrName: 'LastParPx',\n        Tag: 669,\n        NotReqXML: 0,\n        Name: 'LastParPx',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Allocations for the leg',\n        added: 'FIX.4.4',\n        AbbrName: 'NoLegAllocs',\n        Tag: 670,\n        NotReqXML: 1,\n        Name: 'NoLegAllocs',\n    },\n    {\n        Type: 'String',\n        Description: 'Allocation Account for the leg\\nSee AllocAccount (79) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocAcct',\n        Tag: 671,\n        NotReqXML: 0,\n        Name: 'LegAllocAccount',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Reference for the individual allocation ticket\\nSee IndividualAllocID (467) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'IndAllocID',\n        Tag: 672,\n        NotReqXML: 0,\n        Name: 'LegIndividualAllocID',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Leg allocation quantity.\\nSee AllocQty (80) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocQty',\n        Tag: 673,\n        NotReqXML: 0,\n        Name: 'LegAllocQty',\n    },\n    {\n        Type: 'String',\n        Description:\n            'The source of the LegAllocAccount (671)\\nSee AllocAcctIDSource (661) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocAcctIDSrc',\n        Tag: 674,\n        NotReqXML: 0,\n        Name: 'LegAllocAcctIDSource',\n    },\n    {\n        Type: 'Currency',\n        Description:\n            'Identifies settlement currency for the Leg.\\nSee SettlCurrency (20) for description and valid values',\n        added: 'FIX.4.4',\n        AbbrName: 'SettlCcy',\n        Tag: 675,\n        NotReqXML: 0,\n        Name: 'LegSettlCurrency',\n    },\n    {\n        Type: 'Currency',\n        Description:\n            'LegBenchmarkPrice (679) currency\\nSee BenchmarkCurveCurrency (220) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'Ccy',\n        Tag: 676,\n        NotReqXML: 0,\n        Name: 'LegBenchmarkCurveCurrency',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 221,\n        Description: 'Name of the Leg Benchmark Curve.\\nSee BenchmarkCurveName (22) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'Name',\n        Tag: 677,\n        NotReqXML: 0,\n        Name: 'LegBenchmarkCurveName',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifies the point on the Leg Benchmark Curve.\\nSee BenchmarkCurvePoint (222) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'Point',\n        Tag: 678,\n        NotReqXML: 0,\n        Name: 'LegBenchmarkCurvePoint',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Used to identify the price of the benchmark security.\\nSee BenchmarkPrice (662) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'Px',\n        Tag: 679,\n        NotReqXML: 0,\n        Name: 'LegBenchmarkPrice',\n    },\n    {\n        Type: 'int',\n        Description:\n            'The price type of the LegBenchmarkPrice.\\nSee BenchmarkPriceType (663) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'PxTyp',\n        Tag: 680,\n        NotReqXML: 0,\n        Name: 'LegBenchmarkPriceType',\n    },\n    {\n        Type: 'Price',\n        Description: 'Bid price of this leg.\\nSee BidPx (32) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'BidPx',\n        Tag: 681,\n        NotReqXML: 0,\n        Name: 'LegBidPx',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 27,\n        UnionDataType: 'Qty',\n        Description: 'Leg-specific IOI quantity.\\nSee IOIQty (27) for description and valid values',\n        added: 'FIX.4.4',\n        AbbrName: 'IOIQty',\n        Tag: 682,\n        NotReqXML: 0,\n        Name: 'LegIOIQty',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of leg stipulation entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoLegStips',\n        Tag: 683,\n        NotReqXML: 1,\n        Name: 'NoLegStipulations',\n    },\n    {\n        Type: 'Price',\n        Description: 'Offer price of this leg.\\nSee OfferPx (133) for description and valid values',\n        added: 'FIX.4.4',\n        AbbrName: 'OfrPx',\n        Tag: 684,\n        NotReqXML: 0,\n        Name: 'LegOfferPx',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity ordered of this leg.\\nSee OrderQty (38) for description and valid values',\n        added: 'FIX.4.4',\n        AbbrName: 'OrdQty',\n        Tag: 685,\n        NotReqXML: 0,\n        Name: 'LegOrderQty',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 423,\n        Description:\n            'The price type of the LegBidPx (681) and/or LegOfferPx (684).\\nSee PriceType (423) for description and valid values',\n        added: 'FIX.4.4',\n        AbbrName: 'PxTyp',\n        Tag: 686,\n        NotReqXML: 0,\n        Name: 'LegPriceType',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity of this leg, e.g. in Quote dialog.\\nSee Quantity (53) for description and valid values',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0SP1',\n        AbbrName: 'Qty',\n        Tag: 687,\n        NotReqXML: 0,\n        Name: 'LegQty',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 233,\n        Description:\n            'For Fixed Income, type of Stipulation for this leg.\\nSee StipulationType (233) for description and valid values',\n        added: 'FIX.4.4',\n        AbbrName: 'StipTyp',\n        Tag: 688,\n        NotReqXML: 0,\n        Name: 'LegStipulationType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'For Fixed Income, value of stipulation.\\nSee StipulationValue (234) for description and valid values',\n        added: 'FIX.4.4',\n        AbbrName: 'StipVal',\n        Tag: 689,\n        NotReqXML: 0,\n        Name: 'LegStipulationValue',\n    },\n    {\n        Type: 'int',\n        Description:\n            'For Fixed Income, used instead of LegQty (687) or LegOrderQty (685) to requests the respondent to calculate the quantity based on the quantity on the opposite side of the swap.',\n        added: 'FIX.4.4',\n        AbbrName: 'SwapTyp',\n        Tag: 690,\n        NotReqXML: 0,\n        Name: 'LegSwapType',\n    },\n    {\n        Type: 'String',\n        Description: 'For Fixed Income, identifies MBS / ABS pool.',\n        added: 'FIX.4.4',\n        AbbrName: 'Pool',\n        Tag: 691,\n        NotReqXML: 0,\n        Name: 'Pool',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Code to represent price type requested in Quote.\\nIf the Quote Request is for a Swap values 1-8 apply to all legs.',\n        added: 'FIX.4.4',\n        AbbrName: 'QuotPxTyp',\n        Tag: 692,\n        NotReqXML: 0,\n        Name: 'QuotePriceType',\n    },\n    {\n        Type: 'String',\n        Description: 'Message reference for Quote Response',\n        added: 'FIX.4.4',\n        AbbrName: 'RspID',\n        Tag: 693,\n        NotReqXML: 0,\n        Name: 'QuoteRespID',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the type of Quote Response.',\n        added: 'FIX.4.4',\n        AbbrName: 'RspTyp',\n        Tag: 694,\n        NotReqXML: 0,\n        Name: 'QuoteRespType',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 104,\n        Description: 'Code to qualify Quote use\\nSee IOIQualifier (104) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'Qual',\n        Tag: 695,\n        NotReqXML: 0,\n        Name: 'QuoteQualifier',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Date to which the yield has been calculated (i.e. maturity, par call or current call, pre-refunded date).',\n        added: 'FIX.4.4',\n        AbbrName: 'RedDt',\n        Tag: 696,\n        NotReqXML: 0,\n        Name: 'YieldRedemptionDate',\n    },\n    {\n        Type: 'Price',\n        Description: 'Price to which the yield has been calculated.',\n        added: 'FIX.4.4',\n        AbbrName: 'RedPx',\n        Tag: 697,\n        NotReqXML: 0,\n        Name: 'YieldRedemptionPrice',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 423,\n        Description:\n            'The price type of the YieldRedemptionPrice (697)\\nSee PriceType (423) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'RedPxTyp',\n        Tag: 698,\n        NotReqXML: 0,\n        Name: 'YieldRedemptionPriceType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'The identifier of the benchmark security, e.g. Treasury against Corporate bond.\\nSee SecurityID (tag 48) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'SecID',\n        Tag: 699,\n        NotReqXML: 0,\n        Name: 'BenchmarkSecurityID',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates a trade that reverses a previous trade.',\n        added: 'FIX.4.4',\n        AbbrName: 'ReversalInd',\n        Tag: 700,\n        NotReqXML: 0,\n        Name: 'ReversalIndicator',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Include as needed to clarify yield irregularities associated with date, e.g. when it falls on a non-business day.',\n        added: 'FIX.4.4',\n        AbbrName: 'CalcDt',\n        Tag: 701,\n        NotReqXML: 0,\n        Name: 'YieldCalcDate',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of position entries.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoPoss',\n        Tag: 702,\n        NotReqXML: 1,\n        Name: 'NoPositions',\n    },\n    {\n        Type: 'String',\n        Description: 'Used to identify the type of quantity that is being returned.',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 703,\n        NotReqXML: 0,\n        Name: 'PosType',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Long Quantity',\n        added: 'FIX.4.4',\n        AbbrName: 'Long',\n        Tag: 704,\n        NotReqXML: 0,\n        Name: 'LongQty',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Short Quantity',\n        added: 'FIX.4.4',\n        AbbrName: 'Short',\n        Tag: 705,\n        NotReqXML: 0,\n        Name: 'ShortQty',\n    },\n    {\n        Type: 'int',\n        Description: 'Status of this position.',\n        added: 'FIX.4.4',\n        AbbrName: 'Stat',\n        Tag: 706,\n        NotReqXML: 0,\n        Name: 'PosQtyStatus',\n    },\n    {\n        Type: 'String',\n        Description: 'Type of Position amount',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 707,\n        NotReqXML: 0,\n        Name: 'PosAmtType',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Position amount',\n        added: 'FIX.4.4',\n        AbbrName: 'Amt',\n        Tag: 708,\n        NotReqXML: 0,\n        Name: 'PosAmt',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the type of position transaction',\n        added: 'FIX.4.4',\n        AbbrName: 'TxnTyp',\n        Tag: 709,\n        NotReqXML: 0,\n        Name: 'PosTransType',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for the position maintenance request as assigned by the submitter',\n        added: 'FIX.4.4',\n        AbbrName: 'ReqID',\n        Tag: 710,\n        NotReqXML: 0,\n        Name: 'PosReqID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of underlying legs that make up the security.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoUnds',\n        Tag: 711,\n        NotReqXML: 1,\n        Name: 'NoUnderlyings',\n    },\n    {\n        Type: 'int',\n        Description: 'Maintenance Action to be performed.',\n        added: 'FIX.4.4',\n        AbbrName: 'Actn',\n        Tag: 712,\n        NotReqXML: 0,\n        Name: 'PosMaintAction',\n    },\n    {\n        BaseCategory: 'PositionMaintenance',\n        Type: 'String',\n        Description:\n            'Reference to the PosReqID (710) of a previous maintenance request that is being replaced or canceled.',\n        added: 'FIX.4.4',\n        BaseCategoryAbbrName: 'OrigReqRefID',\n        AbbrName: 'OrigPosReqRefID',\n        Tag: 713,\n        NotReqXML: 0,\n        Name: 'OrigPosReqRefID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Reference to a PosMaintRptID (721) from a previous Position Maintenance Report that is being replaced or canceled.',\n        added: 'FIX.4.4',\n        AbbrName: 'RptRefID',\n        Tag: 714,\n        NotReqXML: 0,\n        Name: 'PosMaintRptRefID',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'The \"Clearing Business Date\" referred to by this maintenance request.',\n        added: 'FIX.4.4',\n        AbbrName: 'BizDt',\n        Tag: 715,\n        NotReqXML: 0,\n        Name: 'ClearingBusinessDate',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifies a specific settlement session',\n        added: 'FIX.4.4',\n        AbbrName: 'SetSesID',\n        Tag: 716,\n        NotReqXML: 0,\n        Name: 'SettlSessID',\n    },\n    {\n        Type: 'String',\n        Description: 'SubID value associated with SettlSessID(716)',\n        added: 'FIX.4.4',\n        AbbrName: 'SetSesSub',\n        Tag: 717,\n        NotReqXML: 0,\n        Name: 'SettlSessSubID',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of adjustment to be applied, used for PCS and PAJ',\n        added: 'FIX.4.4',\n        AbbrName: 'AdjTyp',\n        Tag: 718,\n        NotReqXML: 0,\n        Name: 'AdjustmentType',\n    },\n    {\n        BaseCategory: 'SingleGeneralOrderHandling',\n        Type: 'Boolean',\n        Description: 'Used to indicate when a contrary instruction for exercise or abandonment is being submitted',\n        added: 'FIX.4.4',\n        BaseCategoryAbbrName: 'InstrctnInd',\n        AbbrName: 'CntraryInstrctnInd',\n        Tag: 719,\n        NotReqXML: 0,\n        Name: 'ContraryInstructionIndicator',\n    },\n    {\n        Type: 'Boolean',\n        Description: \"Indicates if requesting a rollover of prior day's spread submissions.\",\n        added: 'FIX.4.4',\n        AbbrName: 'PriorSpreadInd',\n        Tag: 720,\n        NotReqXML: 0,\n        Name: 'PriorSpreadIndicator',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for this position report',\n        added: 'FIX.4.4',\n        AbbrName: 'RptID',\n        Tag: 721,\n        NotReqXML: 0,\n        Name: 'PosMaintRptID',\n    },\n    {\n        Type: 'int',\n        Description: 'Status of Position Maintenance Request',\n        added: 'FIX.4.4',\n        AbbrName: 'Stat',\n        Tag: 722,\n        NotReqXML: 0,\n        Name: 'PosMaintStatus',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Result of Position Maintenance Request.\\n4000+ Reserved and available for bi-laterally agreed upon user-defined values',\n        added: 'FIX.4.4',\n        AbbrName: 'Rslt',\n        Tag: 723,\n        NotReqXML: 0,\n        Name: 'PosMaintResult',\n    },\n    {\n        Type: 'int',\n        Description: 'Used to specify the type of position request being made.',\n        added: 'FIX.4.4',\n        AbbrName: 'ReqTyp',\n        Tag: 724,\n        NotReqXML: 0,\n        Name: 'PosReqType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Identifies how the response to the request should be transmitted.\\nDetails specified via ResponseDestination (726).',\n        added: 'FIX.4.4',\n        AbbrName: 'RspTransportTyp',\n        Tag: 725,\n        NotReqXML: 0,\n        Name: 'ResponseTransportType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'URI (Uniform Resource Identifier) for details) or other pre-arranged value. Used in conjunction with ResponseTransportType (725) value of Out-of-Band to identify the out-of-band destination.\\nSee \"Appendix 6-B FIX Fields Based Upon Other Standards\"',\n        added: 'FIX.4.4',\n        AbbrName: 'RspDest',\n        Tag: 726,\n        NotReqXML: 0,\n        Name: 'ResponseDestination',\n    },\n    {\n        Type: 'int',\n        Description: 'Total number of Position Reports being returned.',\n        added: 'FIX.4.4',\n        AbbrName: 'TotRpts',\n        Tag: 727,\n        NotReqXML: 0,\n        Name: 'TotalNumPosReports',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Result of Request for Position\\n4000+ Reserved and available for bi-laterally agreed upon user-defined values',\n        added: 'FIX.4.4',\n        AbbrName: 'Rslt',\n        Tag: 728,\n        NotReqXML: 0,\n        Name: 'PosReqResult',\n    },\n    {\n        Type: 'int',\n        Description: 'Status of Request for Positions',\n        added: 'FIX.4.4',\n        AbbrName: 'Stat',\n        Tag: 729,\n        NotReqXML: 0,\n        Name: 'PosReqStatus',\n    },\n    {\n        Type: 'Price',\n        Description: 'Settlement price',\n        added: 'FIX.4.4',\n        AbbrName: 'SetPx',\n        Tag: 730,\n        NotReqXML: 0,\n        Name: 'SettlPrice',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of settlement price',\n        added: 'FIX.4.4',\n        AbbrName: 'SetPxTyp',\n        Tag: 731,\n        NotReqXML: 0,\n        Name: 'SettlPriceType',\n    },\n    {\n        Type: 'Price',\n        Description: \"Underlying security's SettlPrice.\\nSee SettlPrice (730) field for description\",\n        added: 'FIX.4.4',\n        AbbrName: 'UndSetPx',\n        Tag: 732,\n        NotReqXML: 0,\n        Name: 'UnderlyingSettlPrice',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 731,\n        Description: \"Underlying security's SettlPriceType.\\nSee SettlPriceType (731) field for description\",\n        added: 'FIX.4.4',\n        AbbrName: 'UndSetPxTyp',\n        Tag: 733,\n        NotReqXML: 0,\n        Name: 'UnderlyingSettlPriceType',\n    },\n    {\n        Type: 'Price',\n        Description: 'Previous settlement price',\n        added: 'FIX.4.4',\n        AbbrName: 'PriSetPx',\n        Tag: 734,\n        NotReqXML: 0,\n        Name: 'PriorSettlPrice',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of repeating groups of QuoteQualifiers (695).',\n        added: 'FIX.4.4',\n        AbbrName: 'NoQuotQuals',\n        Tag: 735,\n        NotReqXML: 1,\n        Name: 'NoQuoteQualifiers',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Currency code of settlement denomination for a specific AllocAccount (79).',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocSettlCcy',\n        Tag: 736,\n        NotReqXML: 0,\n        Name: 'AllocSettlCurrency',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'Amt',\n        Description:\n            'Total amount due expressed in settlement currency (includes the effect of the forex transaction) for a specific AllocAccount (79).',\n        added: 'FIX.4.4',\n        BaseCategoryAbbrName: 'SettlCcyAmt',\n        AbbrName: 'AllocSettlCurrAmt',\n        Tag: 737,\n        NotReqXML: 0,\n        Name: 'AllocSettlCurrAmt',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Amount of interest (i.e. lump-sum) at maturity.',\n        added: 'FIX.4.4',\n        AbbrName: 'IntAtMat',\n        Tag: 738,\n        NotReqXML: 0,\n        Name: 'InterestAtMaturity',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'The effective date of a new securities issue determined by its underwriters. Often but not always the same as the Issue Date and the Interest Accrual Date',\n        added: 'FIX.4.4',\n        AbbrName: 'Dated',\n        Tag: 739,\n        NotReqXML: 0,\n        Name: 'LegDatedDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            'For Fixed Income, identifies MBS / ABS pool for a specific leg of a multi-leg instrument.\\nSee Pool (691) for description and valid values.',\n        added: 'FIX.4.4',\n        AbbrName: 'Pool',\n        Tag: 740,\n        NotReqXML: 0,\n        Name: 'LegPool',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Amount of interest (i.e. lump-sum) at maturity at the account-level.',\n        added: 'FIX.4.4',\n        AbbrName: 'IntAtMat',\n        Tag: 741,\n        NotReqXML: 0,\n        Name: 'AllocInterestAtMaturity',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Amount of Accrued Interest for convertible bonds and fixed income at the allocation-level.',\n        added: 'FIX.4.4',\n        AbbrName: 'AcrdIntAmt',\n        Tag: 742,\n        NotReqXML: 0,\n        Name: 'AllocAccruedInterestAmt',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'Date of delivery.',\n        added: 'FIX.4.4',\n        AbbrName: 'DlvDt',\n        Tag: 743,\n        NotReqXML: 0,\n        Name: 'DeliveryDate',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Method by which short positions are assigned to an exercise notice during exercise and assignment processing',\n        added: 'FIX.4.4',\n        AbbrName: 'AsgnMeth',\n        Tag: 744,\n        NotReqXML: 0,\n        Name: 'AssignmentMethod',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity Increment used in performing assignment.',\n        added: 'FIX.4.4',\n        AbbrName: 'Unit',\n        Tag: 745,\n        NotReqXML: 0,\n        Name: 'AssignmentUnit',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Open interest that was eligible for assignment.',\n        added: 'FIX.4.4',\n        AbbrName: 'OpenInt',\n        Tag: 746,\n        NotReqXML: 0,\n        Name: 'OpenInterest',\n    },\n    {\n        Type: 'char',\n        Description: 'Exercise Method used to in performing assignment.',\n        added: 'FIX.4.4',\n        AbbrName: 'ExrMethod',\n        Tag: 747,\n        NotReqXML: 0,\n        Name: 'ExerciseMethod',\n    },\n    {\n        Type: 'int',\n        Description: 'Total number of trade reports returned.',\n        added: 'FIX.4.4',\n        AbbrName: 'TotNumTrdRpts',\n        Tag: 748,\n        NotReqXML: 0,\n        Name: 'TotNumTradeReports',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Result of Trade Request',\n        added: 'FIX.4.4',\n        AbbrName: 'ReqRslt',\n        Tag: 749,\n        NotReqXML: 0,\n        Name: 'TradeRequestResult',\n    },\n    {\n        Type: 'int',\n        Description: 'Status of Trade Request.',\n        added: 'FIX.4.4',\n        AbbrName: 'ReqStat',\n        Tag: 750,\n        NotReqXML: 0,\n        Name: 'TradeRequestStatus',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Reason Trade Capture Request was rejected.\\n100+ Reserved and available for bi-laterally agreed upon user-defined values',\n        added: 'FIX.4.4',\n        AbbrName: 'RejRsn',\n        Tag: 751,\n        NotReqXML: 0,\n        Name: 'TradeReportRejectReason',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Used to indicate if the side being reported on Trade Capture Report represents a leg of a multileg instrument or a single security.',\n        added: 'FIX.4.4',\n        AbbrName: 'MLegRptTyp',\n        Tag: 752,\n        NotReqXML: 0,\n        Name: 'SideMultiLegReportingType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of position amount entries.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoPosAmt',\n        Tag: 753,\n        NotReqXML: 1,\n        Name: 'NoPosAmt',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Identifies whether or not an allocation has been automatically accepted on behalf of the Carry Firm by the Clearing House.',\n        added: 'FIX.4.4',\n        AbbrName: 'AutoAcceptInd',\n        Tag: 754,\n        NotReqXML: 0,\n        Name: 'AutoAcceptIndicator',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for Allocation Report message.',\n        added: 'FIX.4.4',\n        AbbrName: 'RptID',\n        Tag: 755,\n        NotReqXML: 0,\n        Name: 'AllocReportID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Nested2PartyID (757), Nested2PartyIDSource (758), and Nested2PartyRole (759) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoNst2PtyIDs',\n        Tag: 756,\n        NotReqXML: 1,\n        Name: 'NoNested2PartyIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'PartyID value within a \"second instance\" Nested repeating group.\\nSame values as PartyID (448)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        Tag: 757,\n        NotReqXML: 0,\n        Name: 'Nested2PartyID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description:\n            'PartyIDSource value within a \"second instance\" Nested repeating group.\\nSame values as PartyIDSource (447)',\n        added: 'FIX.4.4',\n        AbbrName: 'Src',\n        Tag: 758,\n        NotReqXML: 0,\n        Name: 'Nested2PartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description:\n            'PartyRole value within a \"second instance\" Nested repeating group.\\nSame values as PartyRole (452)',\n        added: 'FIX.4.4',\n        AbbrName: 'R',\n        Tag: 759,\n        NotReqXML: 0,\n        Name: 'Nested2PartyRole',\n    },\n    {\n        Type: 'String',\n        Description:\n            'PartySubID value within a \"second instance\" Nested repeating group.\\nSame values as PartySubID (523)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        Tag: 760,\n        NotReqXML: 0,\n        Name: 'Nested2PartySubID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description:\n            'Identifies class or source of the BenchmarkSecurityID (699) value. Required if BenchmarkSecurityID is specified.\\nSame values as the SecurityIDSource (22) field',\n        added: 'FIX.4.4',\n        AbbrName: 'SecIDSrc',\n        Tag: 761,\n        NotReqXML: 0,\n        Name: 'BenchmarkSecurityIDSource',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Sub-type qualification/identification of the SecurityType. As an example for SecurityType(167)=\"REPO\", the SecuritySubType=\"General Collateral\" can be used to further specify the type of REPO.\\nIf SecuritySubType is used then SecurityType is required.\\nFor SecurityType=\"MLEG\" a name of the option or futures strategy name can be specified, such as \"Calendar\", \"Vertical\", \"Butterfly\".',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'SubTyp',\n        Tag: 762,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'SecuritySubType',\n    },\n    {\n        Type: 'String',\n        Description: \"Underlying security's SecuritySubType.\\nSee SecuritySubType (762) field for description\",\n        added: 'FIX.4.4',\n        AbbrName: 'SubTyp',\n        Tag: 763,\n        NotReqXML: 0,\n        Name: 'UnderlyingSecuritySubType',\n    },\n    {\n        Type: 'String',\n        Description: 'SecuritySubType of the leg instrument.\\nSee SecuritySubType (762) field for description',\n        added: 'FIX.4.4',\n        AbbrName: 'SecSubTyp',\n        Tag: 764,\n        NotReqXML: 0,\n        Name: 'LegSecuritySubType',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'The maximum percentage that execution of one side of a program trade can exceed execution of the other.',\n        added: 'FIX.4.4',\n        AbbrName: 'AOSPct',\n        Tag: 765,\n        NotReqXML: 0,\n        Name: 'AllowableOneSidednessPct',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'The maximum amount that execution of one side of a program trade can exceed execution of the other.',\n        added: 'FIX.4.4',\n        AbbrName: 'AOSValu',\n        Tag: 766,\n        NotReqXML: 0,\n        Name: 'AllowableOneSidednessValue',\n    },\n    {\n        Type: 'Currency',\n        Description:\n            'The currency that AllowableOneSidednessValue (766) is expressed in if AllowableOneSidednessValue is used.',\n        added: 'FIX.4.4',\n        AbbrName: 'AOSCurr',\n        Tag: 767,\n        NotReqXML: 0,\n        Name: 'AllowableOneSidednessCurr',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of TrdRegTimestamp (769) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoTrdRegTmstamps',\n        Tag: 768,\n        NotReqXML: 1,\n        Name: 'NoTrdRegTimestamps',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Traded / Regulatory timestamp value. Use to store time information required by government regulators or self regulatory organizations (such as an exchange or clearing house).',\n        added: 'FIX.4.4',\n        AbbrName: 'TS',\n        Tag: 769,\n        NotReqXML: 0,\n        Name: 'TrdRegTimestamp',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Traded / Regulatory timestamp type.\\nNote of Applicability: values are required in US futures markets by the CFTC to support computerized trade reconstruction.\\n(see Volume : \"Glossary\" for value definitions)',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 770,\n        NotReqXML: 0,\n        Name: 'TrdRegTimestampType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Text which identifies the \"origin\" (i.e. system which was used to generate the time stamp) for the Traded / Regulatory timestamp value.',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'Src',\n        Tag: 771,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'TrdRegTimestampOrigin',\n    },\n    {\n        Type: 'String',\n        Description: 'Reference identifier to be used with ConfirmTransType (666) = Replace or Cancel',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmRefID',\n        Tag: 772,\n        NotReqXML: 0,\n        Name: 'ConfirmRefID',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the type of Confirmation message being sent.',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmTyp',\n        Tag: 773,\n        NotReqXML: 0,\n        Name: 'ConfirmType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Identifies the reason for rejecting a Confirmation.',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmRejRsn',\n        Tag: 774,\n        NotReqXML: 0,\n        Name: 'ConfirmRejReason',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Method for booking out this order. Used when notifying a broker that an order to be settled by that broker is to be booked out as an OTC derivative (e.g. CFD or similar).',\n        added: 'FIX.4.4',\n        AbbrName: 'BkngTyp',\n        Tag: 775,\n        NotReqXML: 0,\n        Name: 'BookingType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 88,\n        Description:\n            'Identified reason for rejecting an individual AllocAccount (79) detail.\\nSame values as AllocRejCode (88)',\n        added: 'FIX.4.4',\n        AbbrName: 'IndAllocRejCode',\n        Tag: 776,\n        NotReqXML: 0,\n        Name: 'IndividualAllocRejCode',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for Settlement Instruction message.',\n        added: 'FIX.4.4',\n        AbbrName: 'SettlInstMsgID',\n        Tag: 777,\n        NotReqXML: 0,\n        Name: 'SettlInstMsgID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of settlement instructions within repeating group.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoSettlInst',\n        Tag: 778,\n        NotReqXML: 1,\n        Name: 'NoSettlInst',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'Timestamp of last update to data item (or creation if no updates made since creation).',\n        added: 'FIX.4.4',\n        AbbrName: 'LastUpdateTm',\n        Tag: 779,\n        NotReqXML: 0,\n        Name: 'LastUpdateTime',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Used to indicate whether settlement instructions are provided on an allocation instruction message, and if not, how they are to be derived.',\n        added: 'FIX.4.4',\n        AbbrName: 'SettlInstTyp',\n        Tag: 780,\n        NotReqXML: 0,\n        Name: 'AllocSettlInstType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of SettlPartyID (782), SettlPartyIDSource (783), and SettlPartyRole (784) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoSettlPtyIDs',\n        Tag: 781,\n        NotReqXML: 1,\n        Name: 'NoSettlPartyIDs',\n    },\n    {\n        Type: 'String',\n        Description:\n            'PartyID value within a settlement parties component. Nested repeating group.\\nSame values as PartyID (448)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        Tag: 782,\n        NotReqXML: 0,\n        Name: 'SettlPartyID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description: 'PartyIDSource value within a settlement parties component.\\nSame values as PartyIDSource (447)',\n        added: 'FIX.4.4',\n        AbbrName: 'Src',\n        Tag: 783,\n        NotReqXML: 0,\n        Name: 'SettlPartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description: 'PartyRole value within a settlement parties component.\\nSame values as PartyRole (452)',\n        added: 'FIX.4.4',\n        AbbrName: 'R',\n        Tag: 784,\n        NotReqXML: 0,\n        Name: 'SettlPartyRole',\n    },\n    {\n        Type: 'String',\n        Description: 'PartySubID value within a settlement parties component.\\nSame values as PartySubID (523)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        Tag: 785,\n        NotReqXML: 0,\n        Name: 'SettlPartySubID',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description: 'Type of SettlPartySubID (785) value.\\nSame values as PartySubIDType (803)',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 786,\n        NotReqXML: 0,\n        Name: 'SettlPartySubIDType',\n    },\n    {\n        Type: 'char',\n        Description: 'Used to indicate whether a delivery instruction is used for securities or cash settlement.',\n        added: 'FIX.4.4',\n        AbbrName: 'InstTyp',\n        Tag: 787,\n        NotReqXML: 0,\n        Name: 'DlvyInstType',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of financing termination.',\n        added: 'FIX.4.4',\n        AbbrName: 'TrmTyp',\n        Tag: 788,\n        NotReqXML: 0,\n        Name: 'TerminationType',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Next expected MsgSeqNum value to be received.',\n        added: 'FIX.4.4',\n        AbbrName: 'NextExpectedMsgSeqNum',\n        Tag: 789,\n        NotReqXML: 1,\n        Name: 'NextExpectedMsgSeqNum',\n    },\n    {\n        Type: 'String',\n        Description: 'Can be used to uniquely identify a specific Order Status Request message.',\n        added: 'FIX.4.4',\n        AbbrName: 'StatReqID',\n        Tag: 790,\n        NotReqXML: 0,\n        Name: 'OrdStatusReqID',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique ID of settlement instruction request message',\n        added: 'FIX.4.4',\n        AbbrName: 'SettlInstReqID',\n        Tag: 791,\n        NotReqXML: 0,\n        Name: 'SettlInstReqID',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Identifies reason for rejection (of a settlement instruction request message).',\n        added: 'FIX.4.4',\n        AbbrName: 'SettlInstReqRejCode',\n        Tag: 792,\n        NotReqXML: 0,\n        Name: 'SettlInstReqRejCode',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'String',\n        Description:\n            'Secondary allocation identifier. Unlike the AllocID (70), this can be shared across a number of allocation instruction or allocation report messages, thereby making it possible to pass an identifier for an original allocation message on multiple messages (e.g. from one party to a second to a third, across cancel and replace messages etc.).',\n        added: 'FIX.4.4',\n        BaseCategoryAbbrName: 'ID2',\n        AbbrName: 'AllocID2',\n        Tag: 793,\n        NotReqXML: 0,\n        Name: 'SecondaryAllocID',\n    },\n    {\n        Type: 'int',\n        Description: 'Describes the specific type or purpose of an Allocation Report message',\n        added: 'FIX.4.4',\n        AbbrName: 'RptTyp',\n        Tag: 794,\n        NotReqXML: 0,\n        Name: 'AllocReportType',\n    },\n    {\n        Type: 'String',\n        Description: 'Reference identifier to be used with AllocTransType (7) = Replace or Cancel',\n        added: 'FIX.4.4',\n        AbbrName: 'RptRefID',\n        Tag: 795,\n        NotReqXML: 0,\n        Name: 'AllocReportRefID',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Reason for cancelling or replacing an Allocation Instruction or Allocation Report message',\n        added: 'FIX.4.4',\n        BaseCategoryAbbrName: 'CxlRplcRsn',\n        AbbrName: 'CxlRplcRsn',\n        Tag: 796,\n        NotReqXML: 0,\n        Name: 'AllocCancReplaceReason',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates whether or not this message is a drop copy of another message.',\n        added: 'FIX.4.4',\n        AbbrName: 'CopyMsgInd',\n        Tag: 797,\n        NotReqXML: 0,\n        Name: 'CopyMsgIndicator',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of account associated with a confirmation or other trade-level message',\n        added: 'FIX.4.4',\n        AbbrName: 'AcctTyp',\n        Tag: 798,\n        NotReqXML: 0,\n        Name: 'AllocAccountType',\n    },\n    {\n        Type: 'Price',\n        Description: 'Average price for a specific order',\n        added: 'FIX.4.4',\n        AbbrName: 'AvgPx',\n        Tag: 799,\n        NotReqXML: 0,\n        Name: 'OrderAvgPx',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Quantity of the order that is being booked out as part of an Allocation Instruction or Allocation Report message',\n        added: 'FIX.4.4',\n        AbbrName: 'BkngQty',\n        Tag: 800,\n        NotReqXML: 0,\n        Name: 'OrderBookingQty',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of SettlPartySubID (785) and SettlPartySubIDType (786) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoSettlPtySubIDs',\n        Tag: 801,\n        NotReqXML: 1,\n        Name: 'NoSettlPartySubIDs',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of PartySubID (523)and PartySubIDType (803) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoPtySubIDs',\n        Tag: 802,\n        NotReqXML: 1,\n        Name: 'NoPartySubIDs',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved4000Plus',\n        Description:\n            'Type of PartySubID (523) value\\n4000+ = Reserved and available for bi-laterally agreed upon user defined values',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 803,\n        NotReqXML: 0,\n        Name: 'PartySubIDType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of NestedPartySubID (545) and NestedPartySubIDType (805) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoNstPtySubIDs',\n        Tag: 804,\n        NotReqXML: 1,\n        Name: 'NoNestedPartySubIDs',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description: 'Type of NestedPartySubID (545) value.\\nSame values as PartySubIDType (803)',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 805,\n        NotReqXML: 0,\n        Name: 'NestedPartySubIDType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description:\n            'Number of Nested2PartySubID (760) and Nested2PartySubIDType (807) entries. Second instance of <NestedParties>.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoNst2PtySubIDs',\n        Tag: 806,\n        NotReqXML: 1,\n        Name: 'NoNested2PartySubIDs',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description:\n            'Type of Nested2PartySubID (760) value. Second instance of <NestedParties>.\\nSame values as PartySubIDType (803)',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 807,\n        NotReqXML: 0,\n        Name: 'Nested2PartySubIDType',\n    },\n    {\n        BaseCategory: 'Allocation',\n        Type: 'int',\n        Description:\n            'Response to allocation to be communicated to a counterparty through an intermediary, i.e. clearing house. Used in conjunction with AllocType = \"Request to Intermediary\" and AllocReportType = \"Request to Intermediary\"',\n        added: 'FIX.4.4',\n        BaseCategoryAbbrName: 'ImReqTyp',\n        AbbrName: 'IntermedReqTyp',\n        Tag: 808,\n        NotReqXML: 0,\n        Name: 'AllocIntermedReqType',\n    },\n    {\n        Type: 'Price',\n        Description: 'Underlying price associate with a derivative instrument.',\n        added: 'FIX.4.4',\n        AbbrName: 'Px',\n        Tag: 810,\n        NotReqXML: 0,\n        Name: 'UnderlyingPx',\n    },\n    {\n        Type: 'float',\n        Description:\n            'The rate of change in the price of a derivative with respect to the movement in the price of the underlying instrument(s) upon which the derivative instrument price is based.\\nThis value is normally between -1.0 and 1.0.',\n        added: 'FIX.4.4',\n        AbbrName: 'PxDelta',\n        Tag: 811,\n        NotReqXML: 0,\n        Name: 'PriceDelta',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Used to specify the maximum number of application messages that can be queued bedore a corrective action needs to take place to resolve the queuing issue.',\n        added: 'FIX.4.4',\n        AbbrName: 'ApplQuMax',\n        Tag: 812,\n        NotReqXML: 0,\n        Name: 'ApplQueueMax',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Current number of application messages that were queued at the time that the message was created by the counterparty.',\n        added: 'FIX.4.4',\n        AbbrName: 'ApplQuDepth',\n        Tag: 813,\n        NotReqXML: 0,\n        Name: 'ApplQueueDepth',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Resolution taken when ApplQueueDepth (813) exceeds ApplQueueMax (812) or system specified maximum queue size.',\n        added: 'FIX.4.4',\n        AbbrName: 'ApplQuResolution',\n        Tag: 814,\n        NotReqXML: 0,\n        Name: 'ApplQueueResolution',\n    },\n    {\n        Type: 'int',\n        Description: 'Action to take to resolve an application message queue (backlog).',\n        added: 'FIX.4.4',\n        AbbrName: 'ApplQuActn',\n        Tag: 815,\n        NotReqXML: 0,\n        Name: 'ApplQueueAction',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of alternative market data sources',\n        added: 'FIX.4.4',\n        AbbrName: 'NoAltMDSrc',\n        Tag: 816,\n        NotReqXML: 1,\n        Name: 'NoAltMDSource',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Session layer source for market data\\n(For the standard FIX session layer, this would be the TargetCompID (56) where market data can be obtained).',\n        added: 'FIX.4.4',\n        AbbrName: 'AltMDSrcID',\n        Tag: 817,\n        NotReqXML: 0,\n        Name: 'AltMDSourceID',\n    },\n    {\n        BaseCategory: 'TradeCapture',\n        Type: 'String',\n        Description:\n            'Secondary trade report identifier - can be used to associate an additional identifier with a trade.',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        BaseCategoryAbbrName: 'RptID2',\n        AbbrName: 'TrdRptID2',\n        Tag: 818,\n        NotReqXML: 0,\n        Name: 'SecondaryTradeReportID',\n    },\n    {\n        Type: 'int',\n        Description: 'Average Pricing Indicator',\n        added: 'FIX.4.4',\n        AbbrName: 'AvgPxInd',\n        Tag: 819,\n        NotReqXML: 0,\n        Name: 'AvgPxIndicator',\n    },\n    {\n        BaseCategory: 'TradeCapture',\n        Type: 'String',\n        Description:\n            'Used to link a group of trades together. Useful for linking a group of trades together for average price calculations.',\n        added: 'FIX.4.4',\n        BaseCategoryAbbrName: 'LinkID',\n        AbbrName: 'LinkID',\n        Tag: 820,\n        NotReqXML: 0,\n        Name: 'TradeLinkID',\n    },\n    {\n        Type: 'String',\n        Description: 'Specific device number, terminal number or station where order was entered',\n        added: 'FIX.4.4',\n        AbbrName: 'OrdInptDev',\n        Tag: 821,\n        NotReqXML: 0,\n        Name: 'OrderInputDevice',\n    },\n    {\n        Type: 'String',\n        Description: 'Trading Session in which the underlying instrument trades',\n        added: 'FIX.4.4',\n        AbbrName: 'UndSesID',\n        Tag: 822,\n        NotReqXML: 0,\n        Name: 'UnderlyingTradingSessionID',\n    },\n    {\n        Type: 'String',\n        Description: 'Trading Session sub identifier in which the underlying instrument trades',\n        added: 'FIX.4.4',\n        AbbrName: 'UndSesSub',\n        Tag: 823,\n        NotReqXML: 0,\n        Name: 'UnderlyingTradingSessionSubID',\n    },\n    {\n        Type: 'String',\n        Description: 'Reference to the leg of a multileg instrument to which this trade refers',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdLegRefID',\n        Tag: 824,\n        NotReqXML: 0,\n        Name: 'TradeLegRefID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Used to report any exchange rules that apply to this trade.\\nPrimarily intended for US futures markets. Certain trading practices are permitted by the CFTC, such as large lot trading, block trading, all or none trades. If the rules are used, the exchanges are required to indicate these rules on the trade.',\n        added: 'FIX.4.4',\n        AbbrName: 'ExchRule',\n        Tag: 825,\n        NotReqXML: 0,\n        Name: 'ExchangeRule',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies how the trade is to be allocated',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocInd',\n        Tag: 826,\n        NotReqXML: 0,\n        Name: 'TradeAllocIndicator',\n    },\n    {\n        Type: 'int',\n        Description: 'Part of trading cycle when an instrument expires. Field is applicable for derivatives.',\n        added: 'FIX.4.4',\n        AbbrName: 'ExpirationCycle',\n        Tag: 827,\n        NotReqXML: 0,\n        Name: 'ExpirationCycle',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved1000Plus',\n        Description: 'Type of Trade:',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdTyp',\n        Tag: 828,\n        NotReqXML: 0,\n        Name: 'TrdType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved1000Plus',\n        Description: 'Further qualification to the trade type',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdSubTyp',\n        Tag: 829,\n        NotReqXML: 0,\n        Name: 'TrdSubType',\n    },\n    {\n        Type: 'String',\n        Description: 'Reason trade is being transferred',\n        added: 'FIX.4.4',\n        AbbrName: 'TrnsfrRsn',\n        Tag: 830,\n        NotReqXML: 0,\n        Name: 'TransferReason',\n    },\n    {\n        Type: 'int',\n        Description: 'Total Number of Assignment Reports being returned to a firm',\n        added: 'FIX.4.4',\n        AbbrName: 'TotNumAsgnRpts',\n        Tag: 832,\n        NotReqXML: 0,\n        Name: 'TotNumAssignmentReports',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for the Assignment Report',\n        added: 'FIX.4.4',\n        AbbrName: 'RptID',\n        Tag: 833,\n        NotReqXML: 0,\n        Name: 'AsgnRptID',\n    },\n    {\n        Type: 'PriceOffset',\n        Description: 'Amount that a position has to be in the money before it is exercised.',\n        added: 'FIX.4.4',\n        AbbrName: 'ThresholdAmt',\n        Tag: 834,\n        NotReqXML: 0,\n        Name: 'ThresholdAmount',\n    },\n    {\n        Type: 'int',\n        Description: 'Describes whether peg is static or floats',\n        added: 'FIX.4.4',\n        AbbrName: 'MoveTyp',\n        Tag: 835,\n        NotReqXML: 0,\n        Name: 'PegMoveType',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Peg Offset value',\n        added: 'FIX.4.4',\n        AbbrName: 'OfstTyp',\n        Tag: 836,\n        NotReqXML: 0,\n        Name: 'PegOffsetType',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Peg Limit',\n        added: 'FIX.4.4',\n        AbbrName: 'LmtTyp',\n        Tag: 837,\n        NotReqXML: 0,\n        Name: 'PegLimitType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'If the calculated peg price is not a valid tick price, specifies whether to round the price to be more or less aggressive',\n        added: 'FIX.4.4',\n        AbbrName: 'RndDir',\n        Tag: 838,\n        NotReqXML: 0,\n        Name: 'PegRoundDirection',\n    },\n    {\n        Type: 'Price',\n        Description: 'The price the order is currently pegged at',\n        added: 'FIX.4.4',\n        AbbrName: 'PeggedPx',\n        Tag: 839,\n        NotReqXML: 0,\n        Name: 'PeggedPrice',\n    },\n    {\n        Type: 'int',\n        Description: 'The scope of the peg',\n        added: 'FIX.4.4',\n        AbbrName: 'Scope',\n        Tag: 840,\n        NotReqXML: 0,\n        Name: 'PegScope',\n    },\n    {\n        Type: 'int',\n        Description: 'Describes whether discretionay price is static or floats',\n        added: 'FIX.4.4',\n        AbbrName: 'MoveTyp',\n        Tag: 841,\n        NotReqXML: 0,\n        Name: 'DiscretionMoveType',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Discretion Offset value',\n        added: 'FIX.4.4',\n        AbbrName: 'OfstTyp',\n        Tag: 842,\n        NotReqXML: 0,\n        Name: 'DiscretionOffsetType',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Discretion Limit',\n        added: 'FIX.4.4',\n        AbbrName: 'LimitTyp',\n        Tag: 843,\n        NotReqXML: 0,\n        Name: 'DiscretionLimitType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'If the calculated discretionary price is not a valid tick price, specifies whether to round the price to be more or less aggressive',\n        added: 'FIX.4.4',\n        AbbrName: 'RndDir',\n        Tag: 844,\n        NotReqXML: 0,\n        Name: 'DiscretionRoundDirection',\n    },\n    {\n        Type: 'Price',\n        Description: 'The current discretionary price of the order',\n        added: 'FIX.4.4',\n        AbbrName: 'DsctnPx',\n        Tag: 845,\n        NotReqXML: 0,\n        Name: 'DiscretionPrice',\n    },\n    {\n        Type: 'int',\n        Description: 'The scope of the discretion',\n        added: 'FIX.4.4',\n        AbbrName: 'Scope',\n        Tag: 846,\n        NotReqXML: 0,\n        Name: 'DiscretionScope',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved1000Plus',\n        Description:\n            'The target strategy of the order\\n1000+ = Reserved and available for bi-laterally agreed upon user defined values',\n        added: 'FIX.4.4',\n        AbbrName: 'TgtStrategy',\n        Tag: 847,\n        NotReqXML: 0,\n        Name: 'TargetStrategy',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Field to allow further specification of the TargetStrategy - usage to be agreed between counterparties',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'TgtStrategyParameters',\n        Tag: 848,\n        NotReqXML: 0,\n        Name: 'TargetStrategyParameters',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'For a TargetStrategy=Participate order specifies the target particpation rate. For other order types this is a volume limit (i.e. do not be more than this percent of the market volume)',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'ParticipationRt',\n        Tag: 849,\n        NotReqXML: 0,\n        Name: 'ParticipationRate',\n    },\n    {\n        Type: 'float',\n        Description: 'For communication of the performance of the order versus the target strategy',\n        added: 'FIX.4.4',\n        AbbrName: 'TgtStrategyPerformance',\n        Tag: 850,\n        NotReqXML: 0,\n        Name: 'TargetStrategyPerformance',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrdStatus of Partial or Filled.',\n        added: 'FIX.4.4',\n        AbbrName: 'LastLqdtyInd',\n        Tag: 851,\n        NotReqXML: 0,\n        Name: 'LastLiquidityInd',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates if a trade should be reported via a market reporting service.',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        AbbrName: 'PubTrdInd',\n        Tag: 852,\n        NotReqXML: 0,\n        Name: 'PublishTrdIndicator',\n    },\n    {\n        Type: 'int',\n        Description: 'Reason for short sale.',\n        added: 'FIX.4.4',\n        AbbrName: 'ShrtSaleRsn',\n        Tag: 853,\n        NotReqXML: 0,\n        Name: 'ShortSaleReason',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of quantity specified in a quantity field:',\n        added: 'FIX.4.4',\n        AbbrName: 'QtyTyp',\n        Tag: 854,\n        NotReqXML: 0,\n        Name: 'QtyType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 828,\n        Description: 'Additional TrdType(828) assigned to a trade by trade match system.',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdTyp2',\n        Tag: 855,\n        NotReqXML: 0,\n        Name: 'SecondaryTrdType',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Trade Report',\n        added: 'FIX.4.4',\n        AbbrName: 'RptTyp',\n        Tag: 856,\n        NotReqXML: 0,\n        Name: 'TradeReportType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Indicates how the orders being booked and allocated by an Allocation Instruction or Allocation Report message are identified, i.e. by explicit definition in the NoOrders group or not.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoOrdsTyp',\n        Tag: 857,\n        NotReqXML: 0,\n        Name: 'AllocNoOrdersType',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Commission to be shared with a third party, e.g. as part of a directed brokerage commission sharing arrangement.',\n        added: 'FIX.4.4',\n        AbbrName: 'SharedComm',\n        Tag: 858,\n        NotReqXML: 0,\n        Name: 'SharedCommission',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for a Confirmation Request message',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmReqID',\n        Tag: 859,\n        NotReqXML: 0,\n        Name: 'ConfirmReqID',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Used to express average price as percent of par (used where AvgPx field is expressed in some other way)',\n        added: 'FIX.4.4',\n        AbbrName: 'AvgParPx',\n        Tag: 860,\n        NotReqXML: 0,\n        Name: 'AvgParPx',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Reported price (used to differentiate from AvgPx on a confirmation of a marked-up or marked-down principal trade)',\n        added: 'FIX.4.4',\n        AbbrName: 'RptedPx',\n        Tag: 861,\n        NotReqXML: 0,\n        Name: 'ReportedPx',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of repeating OrderCapacity entries.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoCapacities',\n        Tag: 862,\n        NotReqXML: 1,\n        Name: 'NoCapacities',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Quantity executed under a specific OrderCapacity (e.g. quantity executed as agent, quantity executed as principal)',\n        added: 'FIX.4.4',\n        AbbrName: 'CpctyQty',\n        Tag: 863,\n        NotReqXML: 0,\n        Name: 'OrderCapacityQty',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of repeating EventType entries.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoEvents',\n        Tag: 864,\n        NotReqXML: 1,\n        Name: 'NoEvents',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Code to represent the type of event',\n        added: 'FIX.4.4',\n        AbbrName: 'EventTyp',\n        Tag: 865,\n        NotReqXML: 0,\n        Name: 'EventType',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'Date of event',\n        added: 'FIX.4.4',\n        AbbrName: 'Dt',\n        Tag: 866,\n        NotReqXML: 0,\n        Name: 'EventDate',\n    },\n    {\n        Type: 'Price',\n        Description: 'Predetermined price of issue at event, if applicable',\n        added: 'FIX.4.4',\n        AbbrName: 'Px',\n        Tag: 867,\n        NotReqXML: 0,\n        Name: 'EventPx',\n    },\n    {\n        Type: 'String',\n        Description: 'Comments related to the event.',\n        added: 'FIX.4.4',\n        AbbrName: 'Txt',\n        Tag: 868,\n        NotReqXML: 0,\n        Name: 'EventText',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Percent at risk due to lowest possible call.',\n        added: 'FIX.4.4',\n        AbbrName: 'PctAtRisk',\n        Tag: 869,\n        NotReqXML: 0,\n        Name: 'PctAtRisk',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of repeating InstrAttribType entries.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoInstrAttrib',\n        Tag: 870,\n        NotReqXML: 1,\n        Name: 'NoInstrAttrib',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Code to represent the type of instrument attribute',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 871,\n        NotReqXML: 0,\n        Name: 'InstrAttribType',\n    },\n    {\n        Type: 'String',\n        Description: 'Attribute value appropriate to the InstrAttribType (87) field.',\n        added: 'FIX.4.4',\n        AbbrName: 'Val',\n        Tag: 872,\n        NotReqXML: 0,\n        Name: 'InstrAttribValue',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'The effective date of a new securities issue determined by its underwriters. Often but not always the same as the Issue Date and the Interest Accrual Date',\n        added: 'FIX.4.4',\n        AbbrName: 'Dated',\n        Tag: 873,\n        NotReqXML: 0,\n        Name: 'DatedDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'The start date used for calculating accrued interest on debt instruments which are being sold between interest payment dates. Often but not always the same as the Issue Date and the Dated Date',\n        added: 'FIX.4.4',\n        AbbrName: 'IntAcrl',\n        Tag: 874,\n        NotReqXML: 0,\n        Name: 'InterestAccrualDate',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'The program under which a commercial paper is issued',\n        added: 'FIX.4.4',\n        AbbrName: 'CPPgm',\n        Tag: 875,\n        NotReqXML: 0,\n        Name: 'CPProgram',\n    },\n    {\n        Type: 'String',\n        Description: 'The registration type of a commercial paper issuance',\n        added: 'FIX.4.4',\n        AbbrName: 'CPRegT',\n        Tag: 876,\n        NotReqXML: 0,\n        Name: 'CPRegType',\n    },\n    {\n        Type: 'String',\n        Description: 'The program under which the underlying commercial paper is issued',\n        added: 'FIX.4.4',\n        AbbrName: 'CPPgm',\n        Tag: 877,\n        NotReqXML: 0,\n        Name: 'UnderlyingCPProgram',\n    },\n    {\n        Type: 'String',\n        Description: 'The registration type of the underlying commercial paper issuance',\n        added: 'FIX.4.4',\n        AbbrName: 'CPRegTyp',\n        Tag: 878,\n        NotReqXML: 0,\n        Name: 'UnderlyingCPRegType',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Unit amount of the underlying security (par, shares, currency, etc.)',\n        added: 'FIX.4.4',\n        AbbrName: 'Qty',\n        Tag: 879,\n        NotReqXML: 0,\n        Name: 'UnderlyingQty',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifier assigned to a trade by a matching system.',\n        added: 'FIX.4.4',\n        AbbrName: 'MtchID',\n        Tag: 880,\n        NotReqXML: 0,\n        Name: 'TrdMatchID',\n    },\n    {\n        BaseCategory: 'TradeCapture',\n        Type: 'String',\n        Description:\n            'Used to refer to a previous SecondaryTradeReportRefID when amending the transaction (cancel, replace, release, or reversal).',\n        added: 'FIX.4.4',\n        deprecated: 'FIX.5.0',\n        BaseCategoryAbbrName: 'RptRefID2',\n        AbbrName: 'TrdRptRefID2',\n        Tag: 881,\n        NotReqXML: 0,\n        Name: 'SecondaryTradeReportRefID',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Price (percent-of-par or per unit) of the underlying security or basket. \"Dirty\" means it includes accrued interest',\n        added: 'FIX.4.4',\n        AbbrName: 'DirtPx',\n        Tag: 882,\n        NotReqXML: 0,\n        Name: 'UnderlyingDirtyPrice',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Price (percent-of-par or per unit) of the underlying security or basket at the end of the agreement.',\n        added: 'FIX.4.4',\n        AbbrName: 'EndPx',\n        Tag: 883,\n        NotReqXML: 0,\n        Name: 'UnderlyingEndPrice',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Currency value attributed to this collateral at the start of the agreement',\n        added: 'FIX.4.4',\n        AbbrName: 'StartVal',\n        Tag: 884,\n        NotReqXML: 0,\n        Name: 'UnderlyingStartValue',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Currency value currently attributed to this collateral',\n        added: 'FIX.4.4',\n        AbbrName: 'CurVal',\n        Tag: 885,\n        NotReqXML: 0,\n        Name: 'UnderlyingCurrentValue',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Currency value attributed to this collateral at the end of the agreement',\n        added: 'FIX.4.4',\n        AbbrName: 'EndVal',\n        Tag: 886,\n        NotReqXML: 0,\n        Name: 'UnderlyingEndValue',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of underlying stipulation entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoUndStips',\n        Tag: 887,\n        NotReqXML: 1,\n        Name: 'NoUnderlyingStips',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 233,\n        Description: 'Type of stipulation.\\nSame values as StipulationType (233)',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 888,\n        NotReqXML: 0,\n        Name: 'UnderlyingStipType',\n    },\n    {\n        Type: 'String',\n        Description: 'Value of stipulation.\\nSame values as StipulationValue (234)',\n        added: 'FIX.4.4',\n        AbbrName: 'Val',\n        Tag: 889,\n        NotReqXML: 0,\n        Name: 'UnderlyingStipValue',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Net Money at maturity if Zero Coupon and maturity value is different from par value',\n        added: 'FIX.4.4',\n        AbbrName: 'MatNetMny',\n        Tag: 890,\n        NotReqXML: 0,\n        Name: 'MaturityNetMoney',\n    },\n    {\n        Type: 'int',\n        Description: 'Defines the unit for a miscellaneous fee.',\n        added: 'FIX.4.4',\n        AbbrName: 'Basis',\n        Tag: 891,\n        NotReqXML: 0,\n        Name: 'MiscFeeBasis',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Total number of NoAlloc entries across all messages. Should be the sum of all NoAllocs in each message that has repeating NoAlloc entries related to the same AllocID or AllocReportID. Used to support fragmentation.',\n        added: 'FIX.4.4',\n        AbbrName: 'TotNoAllocs',\n        Tag: 892,\n        NotReqXML: 0,\n        Name: 'TotNoAllocs',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Indicates whether this message is the last in a sequence of messages for those messages that support fragmentation, such as Allocation Instruction, Mass Quote, Security List, Derivative Security List',\n        added: 'FIX.4.4',\n        AbbrName: 'LastFragment',\n        Tag: 893,\n        NotReqXML: 0,\n        Name: 'LastFragment',\n    },\n    {\n        Type: 'String',\n        Description: 'Collateral Request Identifier',\n        added: 'FIX.4.4',\n        AbbrName: 'ReqID',\n        Tag: 894,\n        NotReqXML: 0,\n        Name: 'CollReqID',\n    },\n    {\n        Type: 'int',\n        Description: 'Reason for Collateral Assignment',\n        added: 'FIX.4.4',\n        AbbrName: 'AsgnRsn',\n        Tag: 895,\n        NotReqXML: 0,\n        Name: 'CollAsgnReason',\n    },\n    {\n        Type: 'int',\n        Description: 'Collateral inquiry qualifiers:',\n        added: 'FIX.4.4',\n        AbbrName: 'Qual',\n        Tag: 896,\n        NotReqXML: 0,\n        Name: 'CollInquiryQualifier',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of trades in repeating group.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoTrds',\n        Tag: 897,\n        NotReqXML: 1,\n        Name: 'NoTrades',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'The fraction of the cash consideration that must be collateralized, expressed as a percent. A MarginRatio of 02% indicates that the value of the collateral (after deducting for \"haircut\") must exceed the cash consideration by 2%.',\n        added: 'FIX.4.4',\n        AbbrName: 'MgnRatio',\n        Tag: 898,\n        NotReqXML: 0,\n        Name: 'MarginRatio',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Excess margin amount (deficit if value is negative)',\n        added: 'FIX.4.4',\n        AbbrName: 'MgnExcess',\n        Tag: 899,\n        NotReqXML: 0,\n        Name: 'MarginExcess',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'TotalNetValue is determined as follows:\\nAt the initial collateral assignment TotalNetValue is the sum of (UnderlyingStartValue * (1-haircut)).\\nIn a collateral substitution TotalNetValue is the sum of (UnderlyingCurrentValue * (1-haircut)).\\nFor listed derivatives clearing margin management, this is the collateral value which equals (Market value * haircut)',\n        added: 'FIX.4.4',\n        AbbrName: 'TotNetValu',\n        Tag: 900,\n        NotReqXML: 0,\n        Name: 'TotalNetValue',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Starting consideration less repayments',\n        added: 'FIX.4.4',\n        AbbrName: 'CshOutstanding',\n        Tag: 901,\n        NotReqXML: 0,\n        Name: 'CashOutstanding',\n    },\n    {\n        Type: 'String',\n        Description: 'Collateral Assignment Identifier',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        Tag: 902,\n        NotReqXML: 0,\n        Name: 'CollAsgnID',\n    },\n    {\n        Type: 'int',\n        Description: 'Collateral Assignment Transaction Type',\n        added: 'FIX.4.4',\n        AbbrName: 'TransTyp',\n        Tag: 903,\n        NotReqXML: 0,\n        Name: 'CollAsgnTransType',\n    },\n    {\n        Type: 'String',\n        Description: 'Collateral Response Identifier',\n        added: 'FIX.4.4',\n        AbbrName: 'RespID',\n        Tag: 904,\n        NotReqXML: 0,\n        Name: 'CollRespID',\n    },\n    {\n        Type: 'int',\n        Description: 'Collateral Assignment Response Type',\n        added: 'FIX.4.4',\n        AbbrName: 'RespTyp',\n        Tag: 905,\n        NotReqXML: 0,\n        Name: 'CollAsgnRespType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Collateral Assignment Reject Reason',\n        added: 'FIX.4.4',\n        AbbrName: 'RejRsn',\n        Tag: 906,\n        NotReqXML: 0,\n        Name: 'CollAsgnRejectReason',\n    },\n    {\n        Type: 'String',\n        Description: 'Collateral Assignment Identifier to which a transaction refers',\n        added: 'FIX.4.4',\n        AbbrName: 'RefID',\n        Tag: 907,\n        NotReqXML: 0,\n        Name: 'CollAsgnRefID',\n    },\n    {\n        Type: 'String',\n        Description: 'Collateral Report Identifier',\n        added: 'FIX.4.4',\n        AbbrName: 'RptID',\n        Tag: 908,\n        NotReqXML: 0,\n        Name: 'CollRptID',\n    },\n    {\n        Type: 'String',\n        Description: 'Collateral Inquiry Identifier',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        Tag: 909,\n        NotReqXML: 0,\n        Name: 'CollInquiryID',\n    },\n    {\n        Type: 'int',\n        Description: 'Collateral Status',\n        added: 'FIX.4.4',\n        AbbrName: 'Stat',\n        Tag: 910,\n        NotReqXML: 0,\n        Name: 'CollStatus',\n    },\n    {\n        Type: 'int',\n        Description: 'Total number of reports returned in response to a request.',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'TotNumRpts',\n        Tag: 911,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'TotNumReports',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Indicates whether this message is that last report message in response to a request, such as Order Mass Status Request.',\n        added: 'FIX.4.4',\n        AbbrName: 'LastRptReqed',\n        Tag: 912,\n        NotReqXML: 0,\n        Name: 'LastRptRequested',\n    },\n    {\n        Type: 'String',\n        Description:\n            'The full name of the base standard agreement, annexes and amendments in place between the principals applicable to a financing transaction.',\n        added: 'FIX.4.4',\n        AbbrName: 'AgmtDesc',\n        Tag: 913,\n        NotReqXML: 0,\n        Name: 'AgreementDesc',\n    },\n    {\n        Type: 'String',\n        Description:\n            'A common reference to the applicable standing agreement between the counterparties to a financing transaction.',\n        added: 'FIX.4.4',\n        AbbrName: 'AgmtID',\n        Tag: 914,\n        NotReqXML: 0,\n        Name: 'AgreementID',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'A reference to the date the underlying agreement specified by AgreementID and AgreementDesc was executed.',\n        added: 'FIX.4.4',\n        AbbrName: 'AgmtDt',\n        Tag: 915,\n        NotReqXML: 0,\n        Name: 'AgreementDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Start date of a financing deal, i.e. the date the buyer pays the seller cash and takes control of the collateral',\n        added: 'FIX.4.4',\n        AbbrName: 'StartDt',\n        Tag: 916,\n        NotReqXML: 0,\n        Name: 'StartDate',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'End date of a financing deal, i.e. the date the seller reimburses the buyer and takes back control of the collateral',\n        added: 'FIX.4.4',\n        AbbrName: 'EndDt',\n        Tag: 917,\n        NotReqXML: 0,\n        Name: 'EndDate',\n    },\n    {\n        Type: 'Currency',\n        Description:\n            'Contractual currency forming the basis of a financing agreement and associated transactions. Usually, but not always, the same as the trade currency.',\n        added: 'FIX.4.4',\n        AbbrName: 'AgmtCcy',\n        Tag: 918,\n        NotReqXML: 0,\n        Name: 'AgreementCurrency',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies type of settlement',\n        added: 'FIX.4.4',\n        AbbrName: 'DlvryTyp',\n        Tag: 919,\n        NotReqXML: 0,\n        Name: 'DeliveryType',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Accrued Interest Amount applicable to a financing transaction on the End Date.',\n        added: 'FIX.4.4',\n        AbbrName: 'EndAcrdIntAmt',\n        Tag: 920,\n        NotReqXML: 0,\n        Name: 'EndAccruedInterestAmt',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Starting dirty cash consideration of a financing deal, i.e. paid to the seller on the Start Date.',\n        added: 'FIX.4.4',\n        AbbrName: 'StartCsh',\n        Tag: 921,\n        NotReqXML: 0,\n        Name: 'StartCash',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Ending dirty cash consideration of a financing deal. i.e. reimbursed to the buyer on the End Date.',\n        added: 'FIX.4.4',\n        AbbrName: 'EndCsh',\n        Tag: 922,\n        NotReqXML: 0,\n        Name: 'EndCash',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for a User Request.',\n        added: 'FIX.4.4',\n        AbbrName: 'UserReqID',\n        Tag: 923,\n        NotReqXML: 0,\n        Name: 'UserRequestID',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the action required by a User Request Message',\n        added: 'FIX.4.4',\n        AbbrName: 'UserReqTyp',\n        Tag: 924,\n        NotReqXML: 0,\n        Name: 'UserRequestType',\n    },\n    {\n        Type: 'String',\n        Description: 'New Password or passphrase',\n        added: 'FIX.4.4',\n        AbbrName: 'NewPassword',\n        Tag: 925,\n        NotReqXML: 0,\n        Name: 'NewPassword',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the status of a user',\n        added: 'FIX.4.4',\n        AbbrName: 'UserStat',\n        Tag: 926,\n        NotReqXML: 0,\n        Name: 'UserStatus',\n    },\n    {\n        Type: 'String',\n        Description: 'A text description associated with a user status.',\n        added: 'FIX.4.4',\n        AbbrName: 'UserStatText',\n        Tag: 927,\n        NotReqXML: 0,\n        Name: 'UserStatusText',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the status of a network connection',\n        added: 'FIX.4.4',\n        AbbrName: 'StatValu',\n        Tag: 928,\n        NotReqXML: 0,\n        Name: 'StatusValue',\n    },\n    {\n        Type: 'String',\n        Description: 'A text description associated with a network status.',\n        added: 'FIX.4.4',\n        AbbrName: 'StatText',\n        Tag: 929,\n        NotReqXML: 0,\n        Name: 'StatusText',\n    },\n    {\n        Type: 'String',\n        Description: 'Assigned value used to identify a firm.',\n        added: 'FIX.4.4',\n        AbbrName: 'RefCompID',\n        Tag: 930,\n        NotReqXML: 0,\n        Name: 'RefCompID',\n    },\n    {\n        Type: 'String',\n        Description: 'Assigned value used to identify specific elements within a firm.',\n        added: 'FIX.4.4',\n        AbbrName: 'RefSubID',\n        Tag: 931,\n        NotReqXML: 0,\n        Name: 'RefSubID',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for a network response.',\n        added: 'FIX.4.4',\n        AbbrName: 'NtwkRspID',\n        Tag: 932,\n        NotReqXML: 0,\n        Name: 'NetworkResponseID',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for a network resquest.',\n        added: 'FIX.4.4',\n        AbbrName: 'NtwkReqID',\n        Tag: 933,\n        NotReqXML: 0,\n        Name: 'NetworkRequestID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifier of the previous Network Response message sent to a counterparty, used to allow incremental updates.',\n        added: 'FIX.4.4',\n        AbbrName: 'LastNtwkRspID',\n        Tag: 934,\n        NotReqXML: 0,\n        Name: 'LastNetworkResponseID',\n    },\n    {\n        Type: 'int',\n        Description:\n            \"Indicates the type and level of details required for a Network Status Request Message\\nBoolean logic applies EG If you want to subscribe for changes to certain id's then UserRequestType =0 (8+2), Snapshot for certain ID's = 9 (8+1)\",\n        added: 'FIX.4.4',\n        AbbrName: 'NtwkReqTyp',\n        Tag: 935,\n        NotReqXML: 0,\n        Name: 'NetworkRequestType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of CompID entries in a repeating group.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoCompIDs',\n        Tag: 936,\n        NotReqXML: 1,\n        Name: 'NoCompIDs',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the type of Network Response Message.',\n        added: 'FIX.4.4',\n        AbbrName: 'NtwkStatRspTyp',\n        Tag: 937,\n        NotReqXML: 0,\n        Name: 'NetworkStatusResponseType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of CollInquiryQualifier entries in a repeating group.',\n        added: 'FIX.4.4',\n        AbbrName: 'NoCollInqQual',\n        Tag: 938,\n        NotReqXML: 1,\n        Name: 'NoCollInquiryQualifier',\n    },\n    {\n        Type: 'int',\n        Description: 'Trade Report Status',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdRptStat',\n        Tag: 939,\n        NotReqXML: 0,\n        Name: 'TrdRptStatus',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the status of the ConfirmationAck.',\n        added: 'FIX.4.4',\n        AbbrName: 'AffirmStat',\n        Tag: 940,\n        NotReqXML: 0,\n        Name: 'AffirmStatus',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Currency in which the strike price of an underlying instrument is denominated',\n        added: 'FIX.4.4',\n        AbbrName: 'StrkCcy',\n        Tag: 941,\n        NotReqXML: 0,\n        Name: 'UnderlyingStrikeCurrency',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Currency in which the strike price of a instrument leg of a multileg instrument is denominated',\n        added: 'FIX.4.4',\n        AbbrName: 'StrkCcy',\n        Tag: 942,\n        NotReqXML: 0,\n        Name: 'LegStrikeCurrency',\n    },\n    {\n        Type: 'String',\n        Description:\n            'A code that represents a time interval in which a fill or trade occurred.\\nRequired for US futures markets.',\n        added: 'FIX.4.4',\n        AbbrName: 'TmBkt',\n        Tag: 943,\n        NotReqXML: 0,\n        Name: 'TimeBracket',\n    },\n    {\n        Type: 'int',\n        Description: 'Action proposed for an Underlying Instrument instance.',\n        added: 'FIX.4.4',\n        AbbrName: 'Actn',\n        Tag: 944,\n        NotReqXML: 0,\n        Name: 'CollAction',\n    },\n    {\n        Type: 'int',\n        Description: 'Status of Collateral Inquiry',\n        added: 'FIX.4.4',\n        AbbrName: 'Stat',\n        Tag: 945,\n        NotReqXML: 0,\n        Name: 'CollInquiryStatus',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Result returned in response to Collateral Inquiry\\n4000+ Reserved and available for bi-laterally agreed upon user-defined values',\n        added: 'FIX.4.4',\n        AbbrName: 'Rslt',\n        Tag: 946,\n        NotReqXML: 0,\n        Name: 'CollInquiryResult',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Currency in which the StrikePrice is denominated.',\n        added: 'FIX.4.4',\n        AbbrName: 'StrkCcy',\n        Tag: 947,\n        NotReqXML: 0,\n        Name: 'StrikeCurrency',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Nested3PartyID (949), Nested3PartyIDSource (950), and Nested3PartyRole (95) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoNst3PtyIDs',\n        Tag: 948,\n        NotReqXML: 1,\n        Name: 'NoNested3PartyIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'PartyID value within a \"third instance\" Nested repeating group.\\nSame values as PartyID (448)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        Tag: 949,\n        NotReqXML: 0,\n        Name: 'Nested3PartyID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description:\n            'PartyIDSource value within a \"third instance\" Nested repeating group.\\nSame values as PartyIDSource (447)',\n        added: 'FIX.4.4',\n        AbbrName: 'Src',\n        Tag: 950,\n        NotReqXML: 0,\n        Name: 'Nested3PartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description:\n            'PartyRole value within a \"third instance\" Nested repeating group.\\nSame values as PartyRole (452)',\n        added: 'FIX.4.4',\n        AbbrName: 'R',\n        Tag: 951,\n        NotReqXML: 0,\n        Name: 'Nested3PartyRole',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Nested3PartySubIDs (953) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoNst3PtySubIDs',\n        Tag: 952,\n        NotReqXML: 1,\n        Name: 'NoNested3PartySubIDs',\n    },\n    {\n        Type: 'String',\n        Description:\n            'PartySubID value within a \"third instance\" Nested repeating group.\\nSame values as PartySubID (523)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        Tag: 953,\n        NotReqXML: 0,\n        Name: 'Nested3PartySubID',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description:\n            'PartySubIDType value within a \"third instance\" Nested repeating group.\\nSame values as PartySubIDType (803)',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        Tag: 954,\n        NotReqXML: 0,\n        Name: 'Nested3PartySubIDType',\n    },\n    {\n        Type: 'MonthYear',\n        Description: 'Specifies when the contract (i.e. MBS/TBA) will settle.',\n        added: 'FIX.4.4',\n        AbbrName: 'CSetMo',\n        Tag: 955,\n        NotReqXML: 0,\n        Name: 'LegContractSettlMonth',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'The start date used for calculating accrued interest on debt instruments which are being sold between interest payment dates. Often but not always the same as the Issue Date and the Dated Date',\n        added: 'FIX.4.4',\n        AbbrName: 'IntAcrl',\n        Tag: 956,\n        NotReqXML: 0,\n        Name: 'LegInterestAccrualDate',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Indicates number of strategy parameters',\n        added: 'FIX.4.4',\n        AbbrName: 'NoStrtPrm',\n        addedEP: 2,\n        Tag: 957,\n        NotReqXML: 1,\n        Name: 'NoStrategyParameters',\n    },\n    {\n        Type: 'String',\n        Description: 'Name of parameter',\n        added: 'FIX.4.4',\n        AbbrName: 'StrtPrmNme',\n        addedEP: 2,\n        Tag: 958,\n        NotReqXML: 0,\n        Name: 'StrategyParameterName',\n    },\n    {\n        Type: 'int',\n        Description: 'Datatype of the parameter',\n        added: 'FIX.4.4',\n        AbbrName: 'StrtPrmTyp',\n        addedEP: 2,\n        Tag: 959,\n        NotReqXML: 0,\n        Name: 'StrategyParameterType',\n    },\n    {\n        Type: 'String',\n        Description: 'Value of the parameter',\n        added: 'FIX.4.4',\n        AbbrName: 'StrtPrmVal',\n        addedEP: 2,\n        Tag: 960,\n        NotReqXML: 0,\n        Name: 'StrategyParameterValue',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + legs. Used as the primary key with which to refer to the Cross Order for cancellation and replace. The HostCrossID will also be used to link together components of the Cross Order. For example, each individual Execution Report associated with the order will carry HostCrossID in order to tie back to the original cross order.',\n        added: 'FIX.4.4',\n        AbbrName: 'HstCxID',\n        addedEP: 3,\n        Tag: 961,\n        NotReqXML: 0,\n        Name: 'HostCrossID',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Indicates how long the order as specified in the side stays in effect. SideTimeInForce allows a two-sided cross order to specify order behavior separately for each side. Absence of this field indicates that TimeInForce should be referenced. SideTimeInForce will override TimeInForce if both are provided.',\n        added: 'FIX.4.4',\n        AbbrName: 'SideTmFrc',\n        addedEP: 3,\n        Tag: 962,\n        NotReqXML: 0,\n        Name: 'SideTimeInForce',\n    },\n    {\n        Type: 'int',\n        Description: 'Unique identifier for the Market Data Report.',\n        added: 'FIX.4.4',\n        AbbrName: 'RptID',\n        addedEP: 4,\n        Tag: 963,\n        NotReqXML: 0,\n        Name: 'MDReportID',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies a Security List message.',\n        added: 'FIX.4.4',\n        updatedEP: 87,\n        AbbrName: 'RptID',\n        addedEP: 4,\n        Tag: 964,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'SecurityReportID',\n    },\n    {\n        Type: 'String',\n        Description: 'Used for derivatives. Denotes the current state of the Instrument.',\n        added: 'FIX.4.4',\n        AbbrName: 'Status',\n        addedEP: 4,\n        Tag: 965,\n        NotReqXML: 0,\n        Name: 'SecurityStatus',\n    },\n    {\n        Type: 'String',\n        Description: 'Indicator to determine if instrument is settle on open',\n        added: 'FIX.4.4',\n        AbbrName: 'SettlOnOpenFlag',\n        addedEP: 4,\n        Tag: 966,\n        NotReqXML: 0,\n        Name: 'SettleOnOpenFlag',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Used for derivatives. Multiplier applied to the strike price for the purpose of calculating the settlement value.',\n        added: 'FIX.4.4',\n        AbbrName: 'StrkMult',\n        addedEP: 4,\n        Tag: 967,\n        NotReqXML: 0,\n        Name: 'StrikeMultiplier',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Used for derivatives. The number of shares/units for the financial instrument involved in the option trade.',\n        added: 'FIX.4.4',\n        AbbrName: 'StrkValu',\n        addedEP: 4,\n        Tag: 968,\n        NotReqXML: 0,\n        Name: 'StrikeValue',\n    },\n    {\n        Type: 'float',\n        Description: 'Minimum price increase for a given exchange-traded Instrument',\n        added: 'FIX.4.4',\n        AbbrName: 'MinPxIncr',\n        addedEP: 4,\n        Tag: 969,\n        NotReqXML: 0,\n        Name: 'MinPriceIncrement',\n    },\n    {\n        Type: 'int',\n        Description: 'Position Limit for a given exchange-traded product.',\n        added: 'FIX.4.4',\n        AbbrName: 'PosLmt',\n        addedEP: 4,\n        Tag: 970,\n        NotReqXML: 0,\n        Name: 'PositionLimit',\n    },\n    {\n        Type: 'int',\n        Description: 'Position Limit in the near-term contract for a given exchange-traded product.',\n        added: 'FIX.4.4',\n        AbbrName: 'NTPosLmt',\n        addedEP: 4,\n        Tag: 971,\n        NotReqXML: 0,\n        Name: 'NTPositionLimit',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Percent of the Strike Price that this underlying represents.',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocPct',\n        addedEP: 4,\n        Tag: 972,\n        NotReqXML: 0,\n        Name: 'UnderlyingAllocationPercent',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Cash amount associated with the underlying component.',\n        added: 'FIX.4.4',\n        AbbrName: 'CashAmt',\n        addedEP: 4,\n        Tag: 973,\n        NotReqXML: 0,\n        Name: 'UnderlyingCashAmount',\n    },\n    {\n        Type: 'String',\n        Description: 'Used for derivatives that deliver into cash underlying.',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'CashTyp',\n        addedEP: 4,\n        Tag: 974,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'UnderlyingCashType',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates order settlement period for the underlying instrument.',\n        added: 'FIX.4.4',\n        AbbrName: 'SettlTyp',\n        addedEP: 4,\n        Tag: 975,\n        NotReqXML: 0,\n        Name: 'UnderlyingSettlementType',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'Date associated to the quantity that is being reported for the position.',\n        added: 'FIX.4.4',\n        AbbrName: 'QtyDt',\n        addedEP: 4,\n        Tag: 976,\n        NotReqXML: 0,\n        Name: 'QuantityDate',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for the Contrary Intention report',\n        added: 'FIX.4.4',\n        AbbrName: 'RptID',\n        addedEP: 4,\n        Tag: 977,\n        NotReqXML: 0,\n        Name: 'ContIntRptID',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates if the contrary intention was received after the exchange imposed cutoff time',\n        added: 'FIX.4.4',\n        AbbrName: 'LateInd',\n        addedEP: 4,\n        Tag: 978,\n        NotReqXML: 0,\n        Name: 'LateIndicator',\n    },\n    {\n        Type: 'String',\n        Description: 'Source of the contrary intention',\n        added: 'FIX.4.4',\n        AbbrName: 'InptSrc',\n        addedEP: 4,\n        Tag: 979,\n        NotReqXML: 0,\n        Name: 'InputSource',\n    },\n    {\n        Type: 'char',\n        Description: '',\n        added: 'FIX.4.4',\n        AbbrName: 'UpdActn',\n        addedEP: 4,\n        Tag: 980,\n        NotReqXML: 0,\n        Name: 'SecurityUpdateAction',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Expiration Qty entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoExpiration',\n        addedEP: 4,\n        Tag: 981,\n        NotReqXML: 1,\n        Name: 'NoExpiration',\n    },\n    {\n        Type: 'int',\n        Description: 'Expiration Quantity type',\n        added: 'FIX.4.4',\n        AbbrName: 'ExpTyp',\n        addedEP: 4,\n        Tag: 982,\n        NotReqXML: 0,\n        Name: 'ExpirationQtyType',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Expiration Quantity associated with the Expiration Type',\n        added: 'FIX.4.4',\n        AbbrName: 'ExpQty',\n        addedEP: 4,\n        Tag: 983,\n        NotReqXML: 0,\n        Name: 'ExpQty',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Total number of occurrences of Amount to pay in order to receive the underlying instrument',\n        added: 'FIX.4.4',\n        AbbrName: 'NoUnderlyingAmounts',\n        addedEP: 4,\n        Tag: 984,\n        NotReqXML: 1,\n        Name: 'NoUnderlyingAmounts',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Amount to pay in order to receive the underlying instrument',\n        added: 'FIX.4.4',\n        AbbrName: 'PayAmt',\n        addedEP: 4,\n        Tag: 985,\n        NotReqXML: 0,\n        Name: 'UnderlyingPayAmount',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Amount to collect in order to deliver the underlying instrument',\n        added: 'FIX.4.4',\n        AbbrName: 'ColAmt',\n        addedEP: 4,\n        Tag: 986,\n        NotReqXML: 0,\n        Name: 'UnderlyingCollectAmount',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Date the underlying instrument will settle. Used for derivatives that deliver into more than one underlying instrument. Settlement dates can vary across underlying instruments.',\n        added: 'FIX.4.4',\n        AbbrName: 'StlDt',\n        addedEP: 4,\n        Tag: 987,\n        NotReqXML: 0,\n        Name: 'UnderlyingSettlementDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Settlement status of the underlying instrument. Used for derivatives that deliver into more than one underlying instrument. Settlement can be delayed for an underlying instrument.',\n        added: 'FIX.4.4',\n        AbbrName: 'SetStat',\n        addedEP: 4,\n        Tag: 988,\n        NotReqXML: 0,\n        Name: 'UnderlyingSettlementStatus',\n    },\n    {\n        Type: 'String',\n        Description: 'Will allow the intermediary to specify an allocation ID generated by their system.',\n        added: 'FIX.4.4',\n        AbbrName: 'IndAllocID2',\n        addedEP: 5,\n        Tag: 989,\n        NotReqXML: 0,\n        Name: 'SecondaryIndividualAllocID',\n    },\n    {\n        Type: 'String',\n        Description: 'Additional attribute to store the Trade ID of the Leg.',\n        added: 'FIX.4.4',\n        AbbrName: 'RptID',\n        addedEP: 5,\n        Tag: 990,\n        NotReqXML: 0,\n        Name: 'LegReportID',\n    },\n    {\n        Type: 'Price',\n        Description: 'Specifies average price rounded to quoted precision.',\n        added: 'FIX.4.4',\n        AbbrName: 'RndPx',\n        addedEP: 5,\n        Tag: 991,\n        NotReqXML: 0,\n        Name: 'RndPx',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies whether the allocation is to be sub-allocated or allocated to a third party',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        addedEP: 5,\n        Tag: 992,\n        NotReqXML: 0,\n        Name: 'IndividualAllocType',\n    },\n    {\n        Type: 'String',\n        Description: 'Capacity of customer in the allocation block.',\n        added: 'FIX.4.4',\n        AbbrName: 'CustCpcty',\n        addedEP: 5,\n        Tag: 993,\n        NotReqXML: 0,\n        Name: 'AllocCustomerCapacity',\n    },\n    {\n        Type: 'String',\n        Description: 'The Tier the trade was matched by the clearing system.',\n        added: 'FIX.4.4',\n        AbbrName: 'TierCD',\n        addedEP: 5,\n        Tag: 994,\n        NotReqXML: 0,\n        Name: 'TierCode',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"The unit of measure of the underlying commodity upon which the contract is based. Two groups of units of measure enumerations are supported.\\nFixed Magnitude UOMs are primarily used in energy derivatives and specify a magnitude (such as, MM, Kilo, M, etc.) and the dimension (such as, watt hours, BTU's) to produce standard fixed measures (such as MWh - Megawatt-hours, MMBtu - One million BTUs).\\nThe second group, Variable Quantity UOMs, specifies the dimension as a single unit without a magnitude (or more accurately a magnitude of one) and uses the UnitOfMeasureQty(1147) field to define the quantity of units per contract. Variable Quantity UOMs are used for both commodities (such as lbs of lean cattle, bushels of corn, ounces of gold) and financial futures.\\nExamples:\\nFor lean cattle futures contracts, a UnitOfMeasure of 'lbs' with a UnitOfMeasureQty(1147) of 40,000, means each lean cattle futures contract represents 40,000 lbs of lean cattle.\\nFor Eurodollars futures contracts, a UnitOfMeasure of USD with a UnitOfMeasureQty(1147) of 1,000,000, means a Eurodollar futures contract represents 1,000,000 USD.\\nFor gold futures contracts, a UnitOfMeasure is oz_tr (Troy ounce) with a UnitOfMeasureQty(1147) of 1,000, means each gold futures contract represents 1,000 troy ounces of gold.\",\n        added: 'FIX.4.4',\n        AbbrName: 'UOM',\n        addedEP: 5,\n        Tag: 996,\n        NotReqXML: 0,\n        Name: 'UnitOfMeasure',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unit of time associated with the contract.\\nNOTE: Additional values may be used by mutual agreement of the counterparties',\n        added: 'FIX.4.4',\n        AbbrName: 'TmUnit',\n        addedEP: 5,\n        Tag: 997,\n        NotReqXML: 0,\n        Name: 'TimeUnit',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 996,\n        Description: 'Refer to defintion of UnitOfMeasure(996)',\n        added: 'FIX.4.4',\n        AbbrName: 'UOM',\n        addedEP: 5,\n        Tag: 998,\n        NotReqXML: 0,\n        Name: 'UnderlyingUnitOfMeasure',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 996,\n        Description: 'Refer to defintion of UnitOfMeasure(996)',\n        added: 'FIX.4.4',\n        AbbrName: 'UOM',\n        addedEP: 5,\n        Tag: 999,\n        NotReqXML: 0,\n        Name: 'LegUnitOfMeasure',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 997,\n        Description: 'Same as TimeUnit.',\n        added: 'FIX.4.4',\n        AbbrName: 'TmUnit',\n        addedEP: 5,\n        Tag: 1000,\n        NotReqXML: 0,\n        Name: 'UnderlyingTimeUnit',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 997,\n        Description: 'Same as TimeUnit.',\n        added: 'FIX.4.4',\n        AbbrName: 'TmUnit',\n        addedEP: 5,\n        Tag: 1001,\n        NotReqXML: 0,\n        Name: 'LegTimeUnit',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the method under which a trade quantity was allocated.',\n        added: 'FIX.4.4',\n        AbbrName: 'Meth',\n        addedEP: 5,\n        Tag: 1002,\n        NotReqXML: 0,\n        Name: 'AllocMethod',\n    },\n    {\n        Type: 'String',\n        Description:\n            'The unique ID assigned to the trade entity once it is received or matched by the exchange or central counterparty.',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdID',\n        addedEP: 11,\n        Tag: 1003,\n        NotReqXML: 0,\n        Name: 'TradeID',\n    },\n    {\n        Type: 'String',\n        Description: 'Used on a multi-sided trade to designate the ReportID',\n        added: 'FIX.4.4',\n        AbbrName: 'RptID',\n        addedEP: 5,\n        Tag: 1005,\n        NotReqXML: 0,\n        Name: 'SideTradeReportID',\n    },\n    {\n        Type: 'String',\n        Description: 'Used on a multi-sided trade to convey order routing information',\n        added: 'FIX.4.4',\n        AbbrName: 'FillStationCd',\n        addedEP: 5,\n        Tag: 1006,\n        NotReqXML: 0,\n        Name: 'SideFillStationCd',\n    },\n    {\n        Type: 'String',\n        Description: 'Used on a multi-sided trade to convey reason for execution',\n        added: 'FIX.4.4',\n        AbbrName: 'RsnCD',\n        addedEP: 5,\n        Tag: 1007,\n        NotReqXML: 0,\n        Name: 'SideReasonCd',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 829,\n        Description:\n            'Used on a multi-sided trade to specify the type of trade for a given side. Same values as TrdSubType (829).',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'TrdSubTyp',\n        addedEP: 5,\n        Tag: 1008,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'SideTrdSubTyp',\n    },\n    {\n        Type: 'int',\n        Description: 'Used to indicate the quantity on one of a multi-sided Trade Capture Report',\n        added: 'FIX.4.4',\n        updatedEP: 77,\n        AbbrName: 'SideQty',\n        addedEP: 5,\n        Tag: 1009,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'SideLastQty',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Used to identify the event or source which gave rise to a message.\\nValid values will be based on an exchange\\'s implementation.\\nExample values are:\\n\"MQM\" (originated at Firm Back Office)\\n\"Clear\" (originated in Clearing System)\\n\"Reg\" (static data generated via Register request)',\n        added: 'FIX.4.4',\n        AbbrName: 'MsgEvtSrc',\n        addedEP: 5,\n        Tag: 1011,\n        NotReqXML: 0,\n        Name: 'MessageEventSource',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Will be used in a multi-sided message.\\nTraded Regulatory timestamp value Use to store time information required by government regulators or self regulatory organizations such as an exchange or clearing house',\n        added: 'FIX.4.4',\n        AbbrName: 'TS',\n        addedEP: 5,\n        Tag: 1012,\n        NotReqXML: 0,\n        Name: 'SideTrdRegTimestamp',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 770,\n        Description: 'Same as TrdRegTimeStampType',\n        added: 'FIX.4.4',\n        updatedEP: 77,\n        AbbrName: 'Typ',\n        addedEP: 5,\n        Tag: 1013,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'SideTrdRegTimestampType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Same as TrdRegTimestampOrigin\\nText which identifies the origin i.e. system which was used to generate the time stamp for the Traded Regulatory timestamp value',\n        added: 'FIX.4.4',\n        AbbrName: 'Src',\n        addedEP: 5,\n        Tag: 1014,\n        NotReqXML: 0,\n        Name: 'SideTrdRegTimestampSrc',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Used to indicate that a floor-trade was originally submitted \"as of\" a specific trade date which is earlier than its clearing date.',\n        added: 'FIX.4.4',\n        AbbrName: 'AsOfInd',\n        addedEP: 5,\n        Tag: 1015,\n        NotReqXML: 0,\n        Name: 'AsOfIndicator',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Indicates number of SideTimestamps contained in group',\n        added: 'FIX.4.4',\n        AbbrName: 'NoSideTrdRegTS',\n        addedEP: 5,\n        Tag: 1016,\n        NotReqXML: 1,\n        Name: 'NoSideTrdRegTS',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Expresses the risk of an option leg\\nValue must be between -1 and 1.\\nA Call Option will require a ratio value between 0 and 1\\nA Put Option will require a ratio value between -1 and 0',\n        added: 'FIX.4.4',\n        AbbrName: 'LegOptionRatio',\n        addedEP: 18,\n        Tag: 1017,\n        NotReqXML: 0,\n        Name: 'LegOptionRatio',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Identifies the number of parties identified with an instrument',\n        added: 'FIX.4.4',\n        AbbrName: 'NoInstrmntPty',\n        addedEP: 4,\n        Tag: 1018,\n        NotReqXML: 1,\n        Name: 'NoInstrumentParties',\n    },\n    {\n        Type: 'String',\n        Description: 'PartyID value within an instrument party repeating group. Same values as PartyID (448)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        addedEP: 4,\n        Tag: 1019,\n        NotReqXML: 0,\n        Name: 'InstrumentPartyID',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Used to report volume with a trade',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdVol',\n        addedEP: 7,\n        Tag: 1020,\n        NotReqXML: 0,\n        Name: 'TradeVolume',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Describes the type of book for which the feed is intended. Used when multiple feeds are provided over the same connection',\n        added: 'FIX.4.4',\n        AbbrName: 'MDBkTyp',\n        addedEP: 7,\n        Tag: 1021,\n        NotReqXML: 0,\n        Name: 'MDBookType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Describes a class of service for a given data feed, ie Regular and Market Maker, Bandwidth Intensive or Bandwidth Conservative',\n        added: 'FIX.4.4',\n        AbbrName: 'MDFeedTyp',\n        addedEP: 7,\n        Tag: 1022,\n        NotReqXML: 0,\n        Name: 'MDFeedType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Integer to convey the level of a bid or offer at a given price level. This is in contrast to MDEntryPositionNo which is used to convey the position of an order within a Price level',\n        added: 'FIX.4.4',\n        AbbrName: 'MDPxLvl',\n        addedEP: 7,\n        Tag: 1023,\n        NotReqXML: 0,\n        Name: 'MDPriceLevel',\n    },\n    {\n        Type: 'int',\n        Description: 'Used to describe the origin of an entry in the book',\n        added: 'FIX.4.4',\n        AbbrName: 'MDOrigTyp',\n        addedEP: 7,\n        Tag: 1024,\n        NotReqXML: 0,\n        Name: 'MDOriginType',\n    },\n    {\n        Type: 'Price',\n        Description: 'Indicates the first trade price of the day/session',\n        added: 'FIX.4.4',\n        AbbrName: 'FirstPx',\n        addedEP: 7,\n        Tag: 1025,\n        NotReqXML: 0,\n        Name: 'FirstPx',\n    },\n    {\n        Type: 'float',\n        Description: 'The spot rate for an FX entry',\n        added: 'FIX.4.4',\n        AbbrName: 'MDEntrySpotRt',\n        addedEP: 7,\n        Tag: 1026,\n        NotReqXML: 0,\n        Name: 'MDEntrySpotRate',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'Used for an F/X entry. The forward points to be added to or subtracted from the spot rate to get the \"all-in\" rate in MDEntryPx. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n        added: 'FIX.4.4',\n        AbbrName: 'MDEntryFwdPnts',\n        addedEP: 7,\n        Tag: 1027,\n        NotReqXML: 0,\n        Name: 'MDEntryForwardPoints',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Indicates if the order was initially received manually (as opposed to electronically)',\n        added: 'FIX.4.4',\n        AbbrName: 'ManOrdInd',\n        addedEP: 9,\n        Tag: 1028,\n        NotReqXML: 0,\n        Name: 'ManualOrderIndicator',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Indicates if the customer directed this order to a specific execution venue \"Y\" or not \"N\".\\nA default of \"N\" customer did not direct this order should be used in the case where the information is both missing and essential.',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'CustDrctdOrd',\n        addedEP: 9,\n        Tag: 1029,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'CustDirectedOrder',\n    },\n];\n\nconst batch3: ISpecFields[] = [\n    {\n        Type: 'String',\n        Description: 'Identifies the Broker / Dealer Department that first took the order.',\n        added: 'FIX.4.4',\n        AbbrName: 'RcvdDptID',\n        addedEP: 9,\n        Tag: 1030,\n        NotReqXML: 0,\n        Name: 'ReceivedDeptID',\n    },\n    {\n        Type: 'MultipleStringValue',\n        Description:\n            'Codes that apply special information that the Broker / Dealer needs to report, as specified by the customer.\\nNOTE: This field and its values have no bearing on the ExecInst and TimeInForce fields. These values should not be used instead of ExecInst or TimeInForce. This field and its values are intended for compliance reporting only.\\nValid values are grouped by OrderHandlingInstSource(1032).',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'CustOrdHdlInst',\n        addedEP: 9,\n        Tag: 1031,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'CustOrderHandlingInst',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Identifies the class or source of the \"OrderHandlingInst\" values. Scope of this will apply to both CustOrderHandlingInst and DeskOrderHandlingInst fields.\\nRequired if CustOrderHandlingInst and/or DeskOrderHandlingInst is specified.',\n        added: 'FIX.4.4',\n        AbbrName: 'OrdHndlInstSrc',\n        addedEP: 9,\n        Tag: 1032,\n        NotReqXML: 0,\n        Name: 'OrderHandlingInstSource',\n    },\n    {\n        Type: 'String',\n        Description: 'Type of trading desk.  Valid values are grouped by DeskTypeSource(1034).',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'DskTyp',\n        addedEP: 9,\n        Tag: 1033,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'DeskType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Identifies the class or source of DeskType(1033) values. Required if DeskType(1033) is specified.',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'DskTypSrc',\n        addedEP: 9,\n        Tag: 1034,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'DeskTypeSource',\n    },\n    {\n        Type: 'MultipleStringValue',\n        EnumDatatype: 1031,\n        Description:\n            'Codes that apply special information that the Broker / Dealer needs to report.\\nNOTE: This field and its values have no bearing on the ExecInst and TimeInForce fields. These values should not be used instead of ExecInst or TimeInForce. This field and its values are intended for compliance reporting only.\\nValid values are grouped by OrderHandlingInstSource(1032).',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'DskOrdHndlInst',\n        addedEP: 9,\n        Tag: 1035,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'DeskOrderHandlingInst',\n    },\n    {\n        Type: 'char',\n        Description: 'The status of this execution acknowledgement message.',\n        added: 'FIX.4.4',\n        AbbrName: 'ExecAckStat',\n        addedEP: 10,\n        Tag: 1036,\n        NotReqXML: 0,\n        Name: 'ExecAckStatus',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Indicates the underlying position amount to be delivered',\n        added: 'FIX.4.4',\n        AbbrName: 'UndlyDlvAmt',\n        addedEP: 8,\n        Tag: 1037,\n        NotReqXML: 0,\n        Name: 'UnderlyingDeliveryAmount',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Maximum notional value for a capped financial instrument',\n        added: 'FIX.4.4',\n        AbbrName: 'CapValu',\n        addedEP: 8,\n        Tag: 1038,\n        NotReqXML: 0,\n        Name: 'UnderlyingCapValue',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.4.4',\n        AbbrName: 'SetMeth',\n        addedEP: 8,\n        Tag: 1039,\n        NotReqXML: 0,\n        Name: 'UnderlyingSettlMethod',\n    },\n    {\n        Type: 'String',\n        Description: 'Used to carry an internal trade entity ID which may or may not be reported to the firm',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdID2',\n        addedEP: 11,\n        Tag: 1040,\n        NotReqXML: 0,\n        Name: 'SecondaryTradeID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'The ID assigned to a trade by the Firm to track a trade within the Firm system. This ID can be assigned either before or after submission to the exchange or central counterpary',\n        added: 'FIX.4.4',\n        AbbrName: 'FirmTrdID',\n        addedEP: 11,\n        Tag: 1041,\n        NotReqXML: 0,\n        Name: 'FirmTradeID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Used to carry an internal firm assigned ID which may or may not be reported to the exchange or central counterpary',\n        added: 'FIX.4.4',\n        AbbrName: 'FirmTrdID2',\n        addedEP: 11,\n        Tag: 1042,\n        NotReqXML: 0,\n        Name: 'SecondaryFirmTradeID',\n    },\n    {\n        Type: 'int',\n        Description: 'conveys how the collateral should be/has been applied',\n        added: 'FIX.4.4',\n        AbbrName: 'ApplTyp',\n        addedEP: 12,\n        Tag: 1043,\n        NotReqXML: 0,\n        Name: 'CollApplType',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Unit amount of the underlying security (shares) adjusted for pending corporate action not yet allocated.',\n        added: 'FIX.4.4',\n        AbbrName: 'AdjQty',\n        addedEP: 12,\n        Tag: 1044,\n        NotReqXML: 0,\n        Name: 'UnderlyingAdjustedQuantity',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Foreign exchange rate used to compute UnderlyingCurrentValue(885) (or market value) from UnderlyingCurrency(318) to Currency(15).',\n        added: 'FIX.4.4',\n        AbbrName: 'FxRate',\n        addedEP: 12,\n        Tag: 1045,\n        NotReqXML: 0,\n        Name: 'UnderlyingFXRate',\n    },\n    {\n        Type: 'char',\n        Description: 'Specifies whether the UnderlyingFxRate(1045) should be multiplied or divided.',\n        added: 'FIX.4.4',\n        AbbrName: 'FxRateCalc',\n        addedEP: 12,\n        Tag: 1046,\n        NotReqXML: 0,\n        Name: 'UnderlyingFXRateCalc',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Indicates whether the resulting position after a trade should be an opening position or closing position. Used for omnibus accounting - where accounts are held on a gross basis instead of being netted together.',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocPosEfct',\n        addedEP: 17,\n        Tag: 1047,\n        NotReqXML: 0,\n        Name: 'AllocPositionEffect',\n    },\n    {\n        Type: 'char',\n        Description: 'Identifies role of dealer; Agent, Principal, RisklessPrincipal',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'DealingCpcty',\n        addedEP: 7,\n        Tag: 1048,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'DealingCapacity',\n    },\n    {\n        Type: 'char',\n        Description: 'Method under which assignment was conducted',\n        added: 'FIX.4.4',\n        AbbrName: 'AsgnMeth',\n        addedEP: 4,\n        Tag: 1049,\n        NotReqXML: 0,\n        Name: 'InstrmtAssignmentMethod',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description:\n            'PartyIDSource value within an instrument partyrepeating group.\\nSame values as PartyIDSource (447)',\n        added: 'FIX.4.4',\n        AbbrName: 'Src',\n        addedEP: 4,\n        Tag: 1050,\n        NotReqXML: 0,\n        Name: 'InstrumentPartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description: 'PartyRole value within an instrument partyepeating group.\\nSame values as PartyRole (452)',\n        added: 'FIX.4.4',\n        AbbrName: 'R',\n        addedEP: 4,\n        Tag: 1051,\n        NotReqXML: 0,\n        Name: 'InstrumentPartyRole',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of InstrumentPartySubID (1053) and InstrumentPartySubIDType (1054) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoInstrmntPtySubIDs',\n        addedEP: 4,\n        Tag: 1052,\n        NotReqXML: 1,\n        Name: 'NoInstrumentPartySubIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'PartySubID value within an instrument party repeating group.\\nSame values as PartySubID (523)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        addedEP: 4,\n        Tag: 1053,\n        NotReqXML: 0,\n        Name: 'InstrumentPartySubID',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description: 'Type of InstrumentPartySubID (1053) value.\\nSame values as PartySubIDType (803)',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        addedEP: 4,\n        Tag: 1054,\n        NotReqXML: 0,\n        Name: 'InstrumentPartySubIDType',\n    },\n    {\n        Type: 'String',\n        Description: 'The Currency in which the position Amount is denominated',\n        added: 'FIX.4.4',\n        AbbrName: 'Ccy',\n        addedEP: 8,\n        Tag: 1055,\n        NotReqXML: 0,\n        Name: 'PositionCurrency',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Used for the calculated quantity of the other side of the currency trade. Can be derived from LastQty and LastPx.',\n        added: 'FIX.4.4',\n        AbbrName: 'CalcCcyLastQty',\n        addedEP: 21,\n        Tag: 1056,\n        NotReqXML: 0,\n        Name: 'CalculatedCcyLastQty',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Used to identify whether the order initiator is an aggressor or not in the trade.',\n        added: 'FIX.4.4',\n        AbbrName: 'AgrsrInd',\n        addedEP: 21,\n        Tag: 1057,\n        NotReqXML: 0,\n        Name: 'AggressorIndicator',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Identifies the number of parties identified with an underlying instrument',\n        added: 'FIX.4.4',\n        AbbrName: 'NoInstrmntPty',\n        addedEP: 8,\n        Tag: 1058,\n        NotReqXML: 1,\n        Name: 'NoUndlyInstrumentParties',\n    },\n    {\n        Type: 'String',\n        Description:\n            'PartyID value within an underlying instrument party repeating group.\\nSame values as PartyID (448)',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'ID',\n        addedEP: 8,\n        Tag: 1059,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'UnderlyingInstrumentPartyID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description:\n            'PartyIDSource value within an underlying instrument partyrepeating group.\\nSame values as PartyIDSource (447)',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'Src',\n        addedEP: 8,\n        Tag: 1060,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'UnderlyingInstrumentPartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description:\n            'PartyRole value within an underlying instrument partyepeating group.\\nSame values as PartyRole (452)',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'R',\n        addedEP: 8,\n        Tag: 1061,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'UnderlyingInstrumentPartyRole',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Underlying InstrumentPartySubID (1053) and InstrumentPartySubIDType (1054) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoInstrmntPtySubIDs',\n        addedEP: 8,\n        Tag: 1062,\n        NotReqXML: 1,\n        Name: 'NoUndlyInstrumentPartySubIDs',\n    },\n    {\n        Type: 'String',\n        Description:\n            'PartySubID value within an underlying instrument party repeating group.\\nSame values as PartySubID (523)',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'ID',\n        addedEP: 8,\n        Tag: 1063,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'UnderlyingInstrumentPartySubID',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description: 'Type of underlying InstrumentPartySubID (1053) value.\\nSame values as PartySubIDType (803)',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'Typ',\n        addedEP: 8,\n        Tag: 1064,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'UnderlyingInstrumentPartySubIDType',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'The bid FX Swap points for an FX Swap. It is the \"far bid forward points - near offer forward point\". Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n        added: 'FIX.4.4',\n        AbbrName: 'BidSwapPnts',\n        addedEP: 21,\n        Tag: 1065,\n        NotReqXML: 0,\n        Name: 'BidSwapPoints',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'The offer FX Swap points for an FX Swap. It is the \"far offer forward points - near bid forward points\". Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n        added: 'FIX.4.4',\n        AbbrName: 'OfrSwapPnts',\n        addedEP: 21,\n        Tag: 1066,\n        NotReqXML: 0,\n        Name: 'OfferSwapPoints',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'The bid FX forward points for the leg of an FX Swap. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n        added: 'FIX.4.4',\n        AbbrName: 'LegBidFwdPnts',\n        addedEP: 21,\n        Tag: 1067,\n        NotReqXML: 0,\n        Name: 'LegBidForwardPoints',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            'The offer FX forward points for the leg of an FX Swap. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199',\n        added: 'FIX.4.4',\n        AbbrName: 'LegOfrFwdPnts',\n        addedEP: 21,\n        Tag: 1068,\n        NotReqXML: 0,\n        Name: 'LegOfferForwardPoints',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            \"For FX Swap, this is used to express the differential between the far leg's bid/offer and the near leg's bid/offer. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199\",\n        added: 'FIX.4.4',\n        AbbrName: 'SwapPnts',\n        addedEP: 21,\n        Tag: 1069,\n        NotReqXML: 0,\n        Name: 'SwapPoints',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies market data quote type.',\n        added: 'FIX.4.4',\n        AbbrName: 'MDQteTyp',\n        addedEP: 7,\n        Tag: 1070,\n        NotReqXML: 0,\n        Name: 'MDQuoteType',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            \"For FX Swap, this is used to express the last market event for the differential between the far leg's bid/offer and the near leg's bid/offer in a fill or partial fill. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199\",\n        added: 'FIX.4.4',\n        AbbrName: 'LastSwapPnts',\n        addedEP: 21,\n        Tag: 1071,\n        NotReqXML: 0,\n        Name: 'LastSwapPoints',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'The gross trade amount for this side of the trade. See also GrossTradeAmt (381) for additional definition.',\n        added: 'FIX.4.4',\n        AbbrName: 'SideGrossTradeAmt',\n        addedEP: 25,\n        Tag: 1072,\n        NotReqXML: 0,\n        Name: 'SideGrossTradeAmt',\n    },\n    {\n        Type: 'PriceOffset',\n        Description:\n            \"The forward points for this leg's fill event. Value can be negative. Expressed in decimal form. For example, 61.99 points is expressed and sent as 0.006199\",\n        added: 'FIX.4.4',\n        AbbrName: 'LegLastFwdPnts',\n        addedEP: 21,\n        Tag: 1073,\n        NotReqXML: 0,\n        Name: 'LegLastForwardPoints',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Used for the calculated quantity of the other side of the currency for this leg. Can be derived from LegQty and LegLastPx.',\n        added: 'FIX.4.4',\n        AbbrName: 'LegCalcCcyLastQty',\n        addedEP: 21,\n        Tag: 1074,\n        NotReqXML: 0,\n        Name: 'LegCalculatedCcyLastQty',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'The gross trade amount of the leg. For FX Futures this is used to express the notional value of a fill when LegLastQty and other quantity fields are express in terms of contract size.',\n        added: 'FIX.4.4',\n        AbbrName: 'LegGrossTrdAmt',\n        addedEP: 21,\n        Tag: 1075,\n        NotReqXML: 0,\n        Name: 'LegGrossTradeAmt',\n    },\n    {\n        Type: 'TZTimeOnly',\n        Description: \"Time of security's maturity expressed in local time with offset to UTC specified\",\n        added: 'FIX.4.4',\n        AbbrName: 'MatTm',\n        addedEP: 21,\n        Tag: 1079,\n        NotReqXML: 0,\n        Name: 'MaturityTime',\n    },\n    {\n        Type: 'String',\n        Description: 'The ID reference to the order being hit or taken',\n        added: 'FIX.4.4',\n        AbbrName: 'RefOrdID',\n        addedEP: 22,\n        Tag: 1080,\n        NotReqXML: 0,\n        Name: 'RefOrderID',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Used to specify what identifier, provided in order depth market data, to use when hitting (taking) a specific order.',\n        added: 'FIX.4.4',\n        AbbrName: 'RefOrdIDSrc',\n        addedEP: 22,\n        Tag: 1081,\n        NotReqXML: 0,\n        Name: 'RefOrderIDSource',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Used for reserve orders when DisplayQty applies to the primary execution market (e.g.an ECN) and another quantity is to be shown at other markets (e.g. the exchange). On orders specifies the qty to be displayed, on execution reports the currently displayed quantity.',\n        added: 'FIX.4.4',\n        AbbrName: 'SecDspQty',\n        addedEP: 22,\n        Tag: 1082,\n        NotReqXML: 0,\n        Name: 'SecondaryDisplayQty',\n    },\n    {\n        Type: 'char',\n        Description: 'Instructs when to refresh DisplayQty (1138).',\n        added: 'FIX.4.4',\n        AbbrName: 'DspWhn',\n        addedEP: 22,\n        Tag: 1083,\n        NotReqXML: 0,\n        Name: 'DisplayWhen',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Defines what value to use in DisplayQty (1138). If not specified the default DisplayMethod is \"1\"',\n        added: 'FIX.4.4',\n        AbbrName: 'DspMthd',\n        addedEP: 22,\n        Tag: 1084,\n        NotReqXML: 0,\n        Name: 'DisplayMethod',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Defines the lower quantity limit to a randomized refresh of DisplayQty.',\n        added: 'FIX.4.4',\n        AbbrName: 'DsplLwQty',\n        addedEP: 22,\n        Tag: 1085,\n        NotReqXML: 0,\n        Name: 'DisplayLowQty',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Defines the upper quantity limit to a randomized refresh of DisplayQty.',\n        added: 'FIX.4.4',\n        AbbrName: 'DisplayHighQty',\n        addedEP: 22,\n        Tag: 1086,\n        NotReqXML: 0,\n        Name: 'DisplayHighQty',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Defines the minimum increment to be used when calculating a random refresh of DisplayQty. A user specifies this when he wants a larger increment than the standard provided by the market (e.g. the round lot size).',\n        added: 'FIX.4.4',\n        AbbrName: 'DspMinIncr',\n        addedEP: 22,\n        Tag: 1087,\n        NotReqXML: 0,\n        Name: 'DisplayMinIncr',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Defines the quantity used to refresh DisplayQty.',\n        added: 'FIX.4.4',\n        AbbrName: 'RfrshQty',\n        addedEP: 22,\n        Tag: 1088,\n        NotReqXML: 0,\n        Name: 'RefreshQty',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Allows orders to specify a minimum quantity that applies to every execution (one execution could be for multiple counter-orders). The order may still fill against smaller orders, but the cumulative quantity of the execution must be in multiples of the MatchIncrement.',\n        added: 'FIX.4.4',\n        AbbrName: 'MtchInc',\n        addedEP: 22,\n        Tag: 1089,\n        NotReqXML: 0,\n        Name: 'MatchIncrement',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Allows an order to specify a maximum number of price levels to trade through. Only valid for aggressive orders and during continuous (autoexecution) trading sessions. Property lost when order is put on book. A partially filled order is assigned last trade price as limit price. Non-filled order behaves as ordinary Market or Limit.',\n        added: 'FIX.4.4',\n        AbbrName: 'MxPxLvls',\n        addedEP: 22,\n        Tag: 1090,\n        NotReqXML: 0,\n        Name: 'MaxPriceLevels',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Allows trader to explicitly request anonymity or disclosure in pre-trade market data feeds. Anonymity is relevant in markets where counterparties are regularly disclosed in order depth feeds. Disclosure is relevant when counterparties are not normally visible.',\n        added: 'FIX.4.4',\n        AbbrName: 'PrTrdAnon',\n        addedEP: 22,\n        Tag: 1091,\n        NotReqXML: 0,\n        Name: 'PreTradeAnonymity',\n    },\n    {\n        Type: 'char',\n        Description: 'Defines the type of price protection the customer requires on their order.',\n        added: 'FIX.4.4',\n        AbbrName: 'PxPrtScp',\n        addedEP: 22,\n        Tag: 1092,\n        NotReqXML: 0,\n        Name: 'PriceProtectionScope',\n    },\n    {\n        Type: 'char',\n        Description: 'Defines the lot type assigned to the order.',\n        added: 'FIX.4.4',\n        AbbrName: 'LotTyp',\n        addedEP: 22,\n        Tag: 1093,\n        NotReqXML: 0,\n        Name: 'LotType',\n    },\n    {\n        Type: 'int',\n        Description: 'Defines the type of peg.',\n        added: 'FIX.4.4',\n        AbbrName: 'PegPxTyp',\n        addedEP: 22,\n        Tag: 1094,\n        NotReqXML: 0,\n        Name: 'PegPriceType',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'The value of the reference price that the order is pegged to. PeggedRefPrice + PegOffsetValue (211) = PeggedPrice (839) unless the limit price (44, Price) is breached. The values may not be exact due to rounding.',\n        added: 'FIX.4.4',\n        AbbrName: 'PggdRefPx',\n        addedEP: 22,\n        Tag: 1095,\n        NotReqXML: 0,\n        Name: 'PeggedRefPrice',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description:\n            'Defines the identity of the security off whose prices the order will peg. Same values as SecurityIDSource (22)',\n        added: 'FIX.4.4',\n        AbbrName: 'PegSecurityIDSource',\n        addedEP: 22,\n        Tag: 1096,\n        NotReqXML: 0,\n        Name: 'PegSecurityIDSource',\n    },\n    {\n        Type: 'String',\n        Description: 'Defines the identity of the security off whose prices the order will peg.',\n        added: 'FIX.4.4',\n        AbbrName: 'PegSecID',\n        addedEP: 22,\n        Tag: 1097,\n        NotReqXML: 0,\n        Name: 'PegSecurityID',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Defines the common, 'human understood' representation of the security off whose prices the order will Peg.\",\n        added: 'FIX.4.4',\n        AbbrName: 'PgSymbl',\n        addedEP: 22,\n        Tag: 1098,\n        NotReqXML: 0,\n        Name: 'PegSymbol',\n    },\n    {\n        Type: 'String',\n        Description: 'Security description of the security off whose prices the order will Peg.',\n        added: 'FIX.4.4',\n        AbbrName: 'PegSecDesc',\n        addedEP: 22,\n        Tag: 1099,\n        NotReqXML: 0,\n        Name: 'PegSecurityDesc',\n    },\n    {\n        Type: 'char',\n        Description:\n            'Defines when the trigger will hit, i.e. the action specified by the trigger instructions will come into effect.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrTyp',\n        addedEP: -1,\n        Tag: 1100,\n        NotReqXML: 0,\n        Name: 'TriggerType',\n    },\n    {\n        Type: 'char',\n        Description: 'Defines the type of action to take when the trigger hits.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrActn',\n        addedEP: -1,\n        Tag: 1101,\n        NotReqXML: 0,\n        Name: 'TriggerAction',\n    },\n    {\n        Type: 'Price',\n        Description: 'The price at which the trigger should hit.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrPx',\n        addedEP: -1,\n        Tag: 1102,\n        NotReqXML: 0,\n        Name: 'TriggerPrice',\n    },\n    {\n        Type: 'String',\n        Description:\n            \"Defines the common, 'human understood' representation of the security whose prices will be tracked by the trigger logic.\",\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrSym',\n        addedEP: -1,\n        Tag: 1103,\n        NotReqXML: 0,\n        Name: 'TriggerSymbol',\n    },\n    {\n        Type: 'String',\n        Description: 'Defines the identity of the security whose prices will be tracked by the trigger logic.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrSecID',\n        addedEP: -1,\n        Tag: 1104,\n        NotReqXML: 0,\n        Name: 'TriggerSecurityID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description:\n            'Defines the identity of the security whose prices will be tracked by the trigger logic. Same values as SecurityIDSource (22).',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrSecIDSrc',\n        addedEP: -1,\n        Tag: 1105,\n        NotReqXML: 0,\n        Name: 'TriggerSecurityIDSource',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Defines the security description of the security whose prices will be tracked by the trigger logic.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrSecDesc',\n        addedEP: -1,\n        Tag: 1106,\n        NotReqXML: 0,\n        Name: 'TriggerSecurityDesc',\n    },\n    {\n        Type: 'char',\n        Description: 'The type of price that the trigger is compared to.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrPxTyp',\n        addedEP: -1,\n        Tag: 1107,\n        NotReqXML: 0,\n        Name: 'TriggerPriceType',\n    },\n    {\n        Type: 'char',\n        Description: 'Defines the type of price protection the customer requires on their order.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrPxTypScp',\n        addedEP: -1,\n        Tag: 1108,\n        NotReqXML: 0,\n        Name: 'TriggerPriceTypeScope',\n    },\n    {\n        Type: 'char',\n        Description: 'The side from which the trigger price is reached.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrPxDir',\n        addedEP: -1,\n        Tag: 1109,\n        NotReqXML: 0,\n        Name: 'TriggerPriceDirection',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'The Price that the order should have after the trigger has hit. Could be applicable for any trigger type, but must be specified for Trigger Type 1.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrNewPx',\n        addedEP: -1,\n        Tag: 1110,\n        NotReqXML: 0,\n        Name: 'TriggerNewPrice',\n    },\n    {\n        Type: 'char',\n        Description:\n            'The OrdType the order should have after the trigger has hit. Required to express orders that change from Limit to Market. Other values from OrdType (40) may be used if appropriate and bilaterally agreed upon.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrOrdTyp',\n        addedEP: -1,\n        Tag: 1111,\n        NotReqXML: 0,\n        Name: 'TriggerOrderType',\n    },\n    {\n        Type: 'Qty',\n        Description: 'The Quantity the order should have after the trigger has hit.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrNewQty',\n        addedEP: -1,\n        Tag: 1112,\n        NotReqXML: 0,\n        Name: 'TriggerNewQty',\n    },\n    {\n        Type: 'String',\n        Description: 'Defines the trading session at which the order will be activated.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrTrdSessID',\n        addedEP: -1,\n        Tag: 1113,\n        NotReqXML: 0,\n        Name: 'TriggerTradingSessionID',\n    },\n    {\n        Type: 'String',\n        Description: 'Defines the subordinate trading session at which the order will be activated.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrgrTrdSessSubID',\n        addedEP: -1,\n        Tag: 1114,\n        NotReqXML: 0,\n        Name: 'TriggerTradingSessionSubID',\n    },\n    {\n        Type: 'char',\n        Description: 'Defines the type of interest behind a trade (fill or partial fill).',\n        added: 'FIX.4.4',\n        AbbrName: 'OrdCat',\n        addedEP: 22,\n        Tag: 1115,\n        NotReqXML: 0,\n        Name: 'OrderCategory',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of RootPartyID (1117), RootPartyIDSource (1118), and RootPartyRole (1119) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoRootPartyIDs',\n        addedEP: 22,\n        Tag: 1116,\n        NotReqXML: 1,\n        Name: 'NoRootPartyIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'PartyID value within a root parties component. Same values as PartyID (448)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        addedEP: 22,\n        Tag: 1117,\n        NotReqXML: 0,\n        Name: 'RootPartyID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description: 'PartyIDSource value within a root parties component. Same values as PartyIDSource (447)',\n        added: 'FIX.4.4',\n        AbbrName: 'Src',\n        addedEP: 22,\n        Tag: 1118,\n        NotReqXML: 0,\n        Name: 'RootPartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description: 'PartyRole value within a root parties component. Same values as PartyRole (452)',\n        added: 'FIX.4.4',\n        AbbrName: 'R',\n        addedEP: 22,\n        Tag: 1119,\n        NotReqXML: 0,\n        Name: 'RootPartyRole',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of RootPartySubID (1121) and RootPartySubIDType (1122) entries',\n        added: 'FIX.4.4',\n        AbbrName: 'NoRootPartySubIDs',\n        addedEP: 22,\n        Tag: 1120,\n        NotReqXML: 1,\n        Name: 'NoRootPartySubIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'PartySubID value within a root parties component. Same values as PartySubID (523)',\n        added: 'FIX.4.4',\n        AbbrName: 'ID',\n        addedEP: 22,\n        Tag: 1121,\n        NotReqXML: 0,\n        Name: 'RootPartySubID',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description: 'Type of RootPartySubID (1121) value. Same values as PartySubIDType (803)',\n        added: 'FIX.4.4',\n        AbbrName: 'Typ',\n        addedEP: 22,\n        Tag: 1122,\n        NotReqXML: 0,\n        Name: 'RootPartySubIDType',\n    },\n    {\n        Type: 'char',\n        Description: 'Specified how the Trade Capture Report should be handled by the Respondent.',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdHandlInst',\n        addedEP: 23,\n        Tag: 1123,\n        NotReqXML: 0,\n        Name: 'TradeHandlingInstr',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 1123,\n        Description:\n            'Optionally used with TradeHandlingInstr = 0 to relay the trade handling instruction used when reporting the trade to the marketplace. Same values as TradeHandlingInstr (1123)',\n        added: 'FIX.4.4',\n        AbbrName: 'OrigTrdHandlInst',\n        addedEP: 23,\n        Tag: 1124,\n        NotReqXML: 0,\n        Name: 'OrigTradeHandlingInstr',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description:\n            'Used to preserve original trade date when original trade is being referenced in a subsequent trade transaction such as a transfer',\n        added: 'FIX.4.4',\n        AbbrName: 'OrigTrdDt',\n        addedEP: 23,\n        Tag: 1125,\n        NotReqXML: 0,\n        Name: 'OrigTradeDate',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Used to preserve original trade id when original trade is being referenced in a subsequent trade transaction such as a transfer',\n        added: 'FIX.4.4',\n        AbbrName: 'OrigTrdID',\n        addedEP: 23,\n        Tag: 1126,\n        NotReqXML: 0,\n        Name: 'OrigTradeID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Used to preserve original secondary trade id when original trade is being referenced in a subsequent trade transaction such as a transfer',\n        added: 'FIX.4.4',\n        AbbrName: 'OrignTrdID2',\n        addedEP: 23,\n        Tag: 1127,\n        NotReqXML: 0,\n        Name: 'OrigSecondaryTradeID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Specifies the service pack release being applied at message level. Enumerated field with values assigned at time of service pack release',\n        added: 'FIX.4.4',\n        AbbrName: 'ApplVerID',\n        addedEP: 16,\n        Tag: 1128,\n        NotReqXML: 0,\n        Name: 'ApplVerID',\n    },\n    {\n        Type: 'String',\n        Description: 'Specifies a custom extension to a message being applied at the message level. Enumerated field',\n        added: 'FIX.4.4',\n        AbbrName: 'CstmApplVerID',\n        addedEP: 16,\n        Tag: 1129,\n        NotReqXML: 1,\n        Name: 'CstmApplVerID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 1128,\n        Description:\n            'Specifies the service pack release being applied to a message at the session level. Enumerated field with values assigned at time of service pack release. Uses same values as ApplVerID',\n        added: 'FIX.4.4',\n        AbbrName: 'RefApplVerID',\n        addedEP: 16,\n        Tag: 1130,\n        NotReqXML: 0,\n        Name: 'RefApplVerID',\n    },\n    {\n        Type: 'String',\n        Description: 'Specifies a custom extension to a message being applied at the session level.',\n        added: 'FIX.4.4',\n        AbbrName: 'RefCstmApplVerID',\n        addedEP: 16,\n        Tag: 1131,\n        NotReqXML: 0,\n        Name: 'RefCstmApplVerID',\n    },\n    {\n        Type: 'TZTimestamp',\n        Description: 'Transact time in the local date-time stamp with a TZ offset to UTC identified',\n        added: 'FIX.4.4',\n        AbbrName: 'TZTransactTime',\n        addedEP: 26,\n        Tag: 1132,\n        NotReqXML: 0,\n        Name: 'TZTransactTime',\n    },\n    {\n        Type: 'char',\n        Description: 'The ID source of ExDestination',\n        added: 'FIX.4.4',\n        AbbrName: 'ExDestIDSrc',\n        addedEP: 26,\n        Tag: 1133,\n        NotReqXML: 0,\n        Name: 'ExDestinationIDSource',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Indicates that the reported price that is different from the market price. The price difference should be stated by using field 828 TrdType and, if required, field 829 TrdSubType',\n        added: 'FIX.4.4',\n        AbbrName: 'ReportedPxDiff',\n        addedEP: 26,\n        Tag: 1134,\n        NotReqXML: 0,\n        Name: 'ReportedPxDiff',\n    },\n    {\n        Type: 'String',\n        Description: 'Indicates the system or medium on which the report has been published',\n        added: 'FIX.4.4',\n        AbbrName: 'RptSys',\n        addedEP: 26,\n        Tag: 1135,\n        NotReqXML: 0,\n        Name: 'RptSys',\n    },\n    {\n        Type: 'String',\n        Description: 'ClearingFeeIndicator(635) for Allocation, see ClearingFeeIndicator(635) for permitted values.',\n        added: 'FIX.4.4',\n        AbbrName: 'ClrFeeInd',\n        addedEP: 25,\n        Tag: 1136,\n        NotReqXML: 0,\n        Name: 'AllocClearingFeeIndicator',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 1128,\n        Description:\n            'Specifies the service pack release being applied, by default, to message at the session level. Enumerated field with values assigned at time of service pack release. Uses same values as ApplVerID',\n        added: 'FIX.4.4',\n        AbbrName: 'DefApplVerID',\n        addedEP: 16,\n        Tag: 1137,\n        NotReqXML: 0,\n        Name: 'DefaultApplVerID',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'The quantity to be displayed . Required for reserve orders. On orders specifies the qty to be displayed, on execution reports the currently displayed quantity.',\n        added: 'FIX.4.4',\n        AbbrName: 'DisplayQty',\n        addedEP: 22,\n        Tag: 1138,\n        NotReqXML: 0,\n        Name: 'DisplayQty',\n    },\n    {\n        Type: 'String',\n        Description: 'Free format text string related to exchange.',\n        added: 'FIX.4.4',\n        updatedEP: 95,\n        AbbrName: 'ExchSpeclInstr',\n        addedEP: 29,\n        Tag: 1139,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'ExchangeSpecialInstructions',\n    },\n    {\n        Type: 'TZTimeOnly',\n        Description: \"Time of security's maturity expressed in local time with offset to UTC specified\",\n        added: 'FIX.5.0',\n        AbbrName: 'MatTm',\n        addedEP: 41,\n        Tag: 1213,\n        NotReqXML: 0,\n        Name: 'UnderlyingMaturityTime',\n    },\n    {\n        Type: 'TZTimeOnly',\n        Description: \"Time of security's maturity expressed in local time with offset to UTC specified\",\n        added: 'FIX.5.0',\n        AbbrName: 'MatTm',\n        addedEP: 41,\n        Tag: 1212,\n        NotReqXML: 0,\n        Name: 'LegMaturityTime',\n    },\n    {\n        Type: 'Qty',\n        Description: 'The maximum order quantity that can be submitted for a security.',\n        added: 'FIX.5.0',\n        AbbrName: 'MaxTrdVol',\n        addedEP: 42,\n        Tag: 1140,\n        NotReqXML: 0,\n        Name: 'MaxTradeVol',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'The number of feed types and corresponding book depths associated with a security',\n        added: 'FIX.5.0',\n        AbbrName: 'NoMDFeedTypes',\n        addedEP: 42,\n        Tag: 1141,\n        NotReqXML: 1,\n        Name: 'NoMDFeedTypes',\n    },\n    {\n        Type: 'String',\n        Description:\n            'The types of algorithm used to match orders in a specific security. Possilbe value types are FIFO, Allocation, Pro-rata, Lead Market Maker, Currency Calender.',\n        added: 'FIX.5.0',\n        AbbrName: 'MtchAlgo',\n        addedEP: 42,\n        Tag: 1142,\n        NotReqXML: 0,\n        Name: 'MatchAlgorithm',\n    },\n    {\n        Type: 'float',\n        Description: 'The maximum price variation of an execution from one event to the next for a given security.',\n        added: 'FIX.5.0',\n        AbbrName: 'MxPxVar',\n        addedEP: 42,\n        Tag: 1143,\n        NotReqXML: 0,\n        Name: 'MaxPriceVariation',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Indicates that an implied market should be created for either the legs of a multi-leg instrument (Implied-in) or for the multi-leg instrument based on the existence of the legs (Implied-out). Determination as to whether implied markets should be created is generally done at the level of the multi-leg instrument. Commonly used in listed derivatives.',\n        added: 'FIX.5.0',\n        AbbrName: 'ImpldMktInd',\n        addedEP: 42,\n        Tag: 1144,\n        NotReqXML: 0,\n        Name: 'ImpliedMarketIndicator',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'Specific time of event. To be used in combination with EventDate [866]',\n        added: 'FIX.5.0',\n        AbbrName: 'Tm',\n        addedEP: 42,\n        Tag: 1145,\n        NotReqXML: 0,\n        Name: 'EventTime',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Minimum price increment amount associated with the MinPriceIncrement ( tag 969). For listed derivatives, the value can be calculated by multiplying MinPriceIncrement by ContractValueFactor(231).',\n        added: 'FIX.5.0',\n        AbbrName: 'MinPxIncrAmt',\n        addedEP: 42,\n        Tag: 1146,\n        NotReqXML: 0,\n        Name: 'MinPriceIncrementAmount',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Used to indicate the quantity of the underlying commodity unit of measure on which the contract is based, such as, 2500 lbs of lean cattle, 1000 barrels of crude oil, 1000 bushels of corn, etc. UnitOfMeasureQty is required for UnitOfMeasure(996) Variable Quantity UOMs enumerations. Refer to the definition of UnitOfMeasure(996) for more information on the use of UnitOfMeasureQty.',\n        added: 'FIX.5.0',\n        AbbrName: 'UOMQty',\n        addedEP: 42,\n        Tag: 1147,\n        NotReqXML: 0,\n        Name: 'UnitOfMeasureQty',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Allowable low limit price for the trading day. A key parameter in validating order price. Used as the lower band for validating order prices. Orders submitted with prices below the lower limit will be rejected',\n        added: 'FIX.5.0',\n        AbbrName: 'LowLmtPx',\n        addedEP: 42,\n        Tag: 1148,\n        NotReqXML: 0,\n        Name: 'LowLimitPrice',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Allowable high limit price for the trading day. A key parameter in validating order price. Used as the upper band for validating order prices. Orders submitted with prices above the upper limit will be rejected',\n        added: 'FIX.5.0',\n        updatedEP: 76,\n        AbbrName: 'HiLmtPx',\n        addedEP: 42,\n        Tag: 1149,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'HighLimitPrice',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Reference price for the current trading price range usually representing the mid price between the HighLimitPrice and LowLimitPrice. The value may be the settlement price or closing price of the prior trading day.',\n        added: 'FIX.5.0',\n        AbbrName: 'TrdgRefPx',\n        addedEP: 42,\n        Tag: 1150,\n        NotReqXML: 0,\n        Name: 'TradingReferencePrice',\n    },\n    {\n        Type: 'String',\n        Description:\n            'An exchange specific name assigned to a group of related securities which may be concurrently affected by market events and actions.',\n        added: 'FIX.5.0',\n        AbbrName: 'SecGrp',\n        addedEP: 42,\n        Tag: 1151,\n        NotReqXML: 0,\n        Name: 'SecurityGroup',\n    },\n    {\n        Type: 'int',\n        Description: 'Allow sequencing of Legs for a Strategy to be captured',\n        added: 'FIX.5.0',\n        AbbrName: 'LegNo',\n        addedEP: 44,\n        Tag: 1152,\n        NotReqXML: 0,\n        Name: 'LegNumber',\n    },\n    {\n        Type: 'int',\n        Description: 'Settlement cycle in which the settlement obligation was generated',\n        added: 'FIX.5.0',\n        AbbrName: 'CycleNo',\n        addedEP: 44,\n        Tag: 1153,\n        NotReqXML: 0,\n        Name: 'SettlementCycleNo',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Used to identify the trading currency on the Trade Capture Report Side',\n        added: 'FIX.5.0',\n        AbbrName: 'Ccy',\n        addedEP: 44,\n        Tag: 1154,\n        NotReqXML: 0,\n        Name: 'SideCurrency',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Used to identify the settlement currency on the Trade Capture Report Side',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlCcy',\n        addedEP: 44,\n        Tag: 1155,\n        NotReqXML: 0,\n        Name: 'SideSettlCurrency',\n    },\n    {\n        Type: 'Amt',\n        Description: 'Net flow of Currency 1',\n        added: 'FIX.5.0',\n        AbbrName: 'CcyAmt',\n        addedEP: 44,\n        Tag: 1157,\n        NotReqXML: 0,\n        Name: 'CcyAmt',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Used to group Each Settlement Party',\n        added: 'FIX.5.0',\n        AbbrName: 'NoSettlDetails',\n        addedEP: 44,\n        Tag: 1158,\n        NotReqXML: 1,\n        Name: 'NoSettlDetails',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Used to identify the reporting mode of the settlement obligation which is either preliminary or final',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlMode',\n        addedEP: 44,\n        Tag: 1159,\n        NotReqXML: 0,\n        Name: 'SettlObligMode',\n    },\n    {\n        Type: 'String',\n        Description: 'Message identifier for Settlement Obligation Report',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlMsgID',\n        addedEP: 44,\n        Tag: 1160,\n        NotReqXML: 0,\n        Name: 'SettlObligMsgID',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique ID for this settlement instruction.',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlID',\n        addedEP: 44,\n        Tag: 1161,\n        NotReqXML: 0,\n        Name: 'SettlObligID',\n    },\n    {\n        Type: 'char',\n        Description: 'Transaction Type - required except where SettlInstMode is 5=Reject SSI request',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlTransTyp',\n        addedEP: 44,\n        Tag: 1162,\n        NotReqXML: 0,\n        Name: 'SettlObligTransType',\n    },\n    {\n        Type: 'String',\n        Description: 'Required where SettlInstTransType is Cancel or Replace',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlRefID',\n        addedEP: 44,\n        Tag: 1163,\n        NotReqXML: 0,\n        Name: 'SettlObligRefID',\n    },\n    {\n        Type: 'char',\n        Description: 'Used to identify whether these delivery instructions are for the buyside or the sellside.',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlSrc',\n        addedEP: 44,\n        Tag: 1164,\n        NotReqXML: 0,\n        Name: 'SettlObligSource',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of settlement obligations',\n        added: 'FIX.5.0',\n        AbbrName: 'NoSettlOblig',\n        addedEP: 44,\n        Tag: 1165,\n        NotReqXML: 1,\n        Name: 'NoSettlOblig',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for a quote message.',\n        added: 'FIX.5.0',\n        AbbrName: 'QtMsgID',\n        addedEP: 45,\n        Tag: 1166,\n        NotReqXML: 0,\n        Name: 'QuoteMsgID',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Identifies the status of an individual quote. See also QuoteStatus(297) which is used for single Quotes.',\n        added: 'FIX.5.0',\n        updatedEP: 95,\n        AbbrName: 'QtEntSts',\n        addedEP: 45,\n        Tag: 1167,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'QuoteEntryStatus',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the number of canceled quotes',\n        added: 'FIX.5.0',\n        AbbrName: 'TotNoCxldQts',\n        addedEP: 45,\n        Tag: 1168,\n        NotReqXML: 0,\n        Name: 'TotNoCxldQuotes',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the number of accepted quotes',\n        added: 'FIX.5.0',\n        AbbrName: 'TotNoAccQts',\n        addedEP: 45,\n        Tag: 1169,\n        NotReqXML: 0,\n        Name: 'TotNoAccQuotes',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the number of rejected quotes',\n        added: 'FIX.5.0',\n        AbbrName: 'TotNoRejQts',\n        addedEP: 45,\n        Tag: 1170,\n        NotReqXML: 0,\n        Name: 'TotNoRejQuotes',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Specifies whether a quote is public, i.e. available to the market, or private, i.e. available to a specified counterparty only.',\n        added: 'FIX.5.0',\n        AbbrName: 'PrvtQt',\n        addedEP: 46,\n        Tag: 1171,\n        NotReqXML: 0,\n        Name: 'PrivateQuote',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the type of respondents requested.',\n        added: 'FIX.5.0',\n        AbbrName: 'RspdntTyp',\n        addedEP: 46,\n        Tag: 1172,\n        NotReqXML: 0,\n        Name: 'RespondentType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Describes a class of sub book, e.g. for the separation of various lot types. The Sub Book Type indicates that the following Market Data Entries belong to a non-integrated Sub Book. Whenever provided the Sub Book must be used together with MDPriceLevel and MDEntryPositionNo in order to sort the order properly.\\nValues are bilaterally agreed.',\n        added: 'FIX.5.0',\n        AbbrName: 'MDSubBkTyp',\n        addedEP: 47,\n        Tag: 1173,\n        NotReqXML: 0,\n        Name: 'MDSubBookType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Identifies an event related to a SecurityTradingStatus(326). An event occurs and is gone, it is not a state that applies for a period of time.',\n        added: 'FIX.5.0',\n        AbbrName: 'SecTrdEvnt',\n        addedEP: 47,\n        Tag: 1174,\n        NotReqXML: 0,\n        Name: 'SecurityTradingEvent',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of statistics indicator repeating group entries',\n        added: 'FIX.5.0',\n        AbbrName: 'NoStatsInds',\n        addedEP: 47,\n        Tag: 1175,\n        NotReqXML: 1,\n        Name: 'NoStatsIndicators',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of statistics',\n        added: 'FIX.5.0',\n        AbbrName: 'StatsTyp',\n        addedEP: 47,\n        Tag: 1176,\n        NotReqXML: 0,\n        Name: 'StatsType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'The number of secondary sizes specifies in this entry',\n        added: 'FIX.5.0',\n        AbbrName: 'NoSecSzs',\n        addedEP: 47,\n        Tag: 1177,\n        NotReqXML: 1,\n        Name: 'NoOfSecSizes',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Specifies the type of secondary size.',\n        added: 'FIX.5.0',\n        AbbrName: 'MDSecSizeType',\n        addedEP: 47,\n        Tag: 1178,\n        NotReqXML: 0,\n        Name: 'MDSecSizeType',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'A part of the MDEntrySize(271) that represents secondary interest as specified by MDSecSizeType(1178).',\n        added: 'FIX.5.0',\n        AbbrName: 'MDSecSize',\n        addedEP: 47,\n        Tag: 1179,\n        NotReqXML: 0,\n        Name: 'MDSecSize',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifies the application with which a message is associated. Used only if application sequencing is in effect.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplID',\n        addedEP: 48,\n        Tag: 1180,\n        NotReqXML: 0,\n        Name: 'ApplID',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Data sequence number to be used when FIX session is not in effect',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplSeqNum',\n        addedEP: 48,\n        Tag: 1181,\n        NotReqXML: 0,\n        Name: 'ApplSeqNum',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Beginning range of application sequence numbers',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplBegSeqNum',\n        addedEP: 48,\n        Tag: 1182,\n        NotReqXML: 0,\n        Name: 'ApplBegSeqNum',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Ending range of application sequence numbers',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplEndSeq',\n        addedEP: 48,\n        Tag: 1183,\n        NotReqXML: 0,\n        Name: 'ApplEndSeqNum',\n    },\n    {\n        Type: 'Length',\n        Description: 'Lenght of the SecurityXML data block.',\n        added: 'FIX.5.0',\n        AssociatedDataTag: 1185,\n        AbbrName: 'SecXMLLen',\n        addedEP: 49,\n        Tag: 1184,\n        NotReqXML: 1,\n        Name: 'SecurityXMLLen',\n    },\n    {\n        Type: 'XMLData',\n        Description: 'Actual XML data stream describing a security, normally FpML.',\n        added: 'FIX.5.0',\n        AbbrName: 'SecXML',\n        addedEP: 49,\n        Tag: 1185,\n        NotReqXML: 1,\n        Name: 'SecurityXML',\n    },\n    {\n        Type: 'String',\n        Description: 'The schema used to validate the contents of SecurityXML',\n        added: 'FIX.5.0',\n        AbbrName: 'Schema',\n        addedEP: 49,\n        Tag: 1186,\n        NotReqXML: 0,\n        Name: 'SecurityXMLSchema',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            \"Set by the sender to tell the receiver to perform an immediate refresh of the book due to disruptions in the accompanying real-time feed\\n'Y' - Mandatory refresh by all participants\\n'N' - Process as required\",\n        added: 'FIX.5.0',\n        AbbrName: 'RefInd',\n        addedEP: 50,\n        Tag: 1187,\n        NotReqXML: 0,\n        Name: 'RefreshIndicator',\n    },\n    {\n        Type: 'float',\n        Description: 'Annualized volatility for option model calculations',\n        added: 'FIX.5.0',\n        AbbrName: 'Vol',\n        addedEP: 51,\n        Tag: 1188,\n        NotReqXML: 0,\n        Name: 'Volatility',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Time to expiration in years calculated as the number of days remaining to expiration divided by 365 days per year.',\n        added: 'FIX.5.0',\n        AbbrName: 'TmToExp',\n        addedEP: 51,\n        Tag: 1189,\n        NotReqXML: 0,\n        Name: 'TimeToExpiration',\n    },\n    {\n        Type: 'float',\n        Description: 'Interest rate. Usually some form of short term rate.',\n        added: 'FIX.5.0',\n        AbbrName: 'RFR',\n        addedEP: 51,\n        Tag: 1190,\n        NotReqXML: 0,\n        Name: 'RiskFreeRate',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 996,\n        Description:\n            'Used to express the UOM of the price if different from the contract. In futures, this can be different for cross-rate products in which the price is quoted in units differently from the contract',\n        added: 'FIX.5.0',\n        AbbrName: 'PxUOM',\n        addedEP: 52,\n        Tag: 1191,\n        NotReqXML: 0,\n        Name: 'PriceUnitOfMeasure',\n    },\n    {\n        Type: 'Qty',\n        Description:\n            'Used to express the UOM Quantity of the price if different from the contract. In futures, this can be different for physically delivered products in which price is quoted in a unit size different from the contract, i.e. a Cattle Future contract has a UOMQty of 40,000 and a PriceUOMQty of 100.',\n        added: 'FIX.5.0',\n        AbbrName: 'PxUOMQty',\n        addedEP: 52,\n        Tag: 1192,\n        NotReqXML: 0,\n        Name: 'PriceUnitOfMeasureQty',\n    },\n    {\n        Type: 'char',\n        Description: 'Settlement method for a contract. Can be used as an alternative to CFI Code value',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlMeth',\n        addedEP: 52,\n        Tag: 1193,\n        NotReqXML: 0,\n        Name: 'SettlMethod',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of exercise of a derivatives security',\n        added: 'FIX.5.0',\n        AbbrName: 'ExerStyle',\n        addedEP: 52,\n        Tag: 1194,\n        NotReqXML: 0,\n        Name: 'ExerciseStyle',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1194,\n        Description: 'Type of exercise of a derivatives security',\n        added: 'FIX.5.0',\n        AbbrName: 'ExerStyle',\n        addedEP: 52,\n        Tag: 1419,\n        NotReqXML: 0,\n        Name: 'UnderlyingExerciseStyle',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1194,\n        Description: 'Type of exercise of a derivatives security',\n        added: 'FIX.5.0',\n        AbbrName: 'ExerStyle',\n        addedEP: 52,\n        Tag: 1420,\n        NotReqXML: 0,\n        Name: 'LegExerciseStyle',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount. \\nConditionally required if OptPayoutType(1482) is set to binary.',\n        added: 'FIX.5.0',\n        updatedEP: 92,\n        AbbrName: 'OptPayAmt',\n        addedEP: 52,\n        Tag: 1195,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'OptPayoutAmount',\n    },\n    {\n        Type: 'String',\n        Description: 'Method for price quotation',\n        added: 'FIX.5.0',\n        AbbrName: 'PxQteMeth',\n        addedEP: 52,\n        Tag: 1196,\n        NotReqXML: 0,\n        Name: 'PriceQuoteMethod',\n    },\n    {\n        Type: 'String',\n        Description: 'Specifies the type of valuation method applied.',\n        added: 'FIX.5.0',\n        updatedEP: 83,\n        AbbrName: 'ValMeth',\n        addedEP: 52,\n        Tag: 1197,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'ValuationMethod',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates whether instruments are pre-listed only or can also be defined via user request',\n        added: 'FIX.5.0',\n        AbbrName: 'ListMeth',\n        addedEP: 52,\n        Tag: 1198,\n        NotReqXML: 0,\n        Name: 'ListMethod',\n    },\n    {\n        Type: 'Price',\n        Description: 'Used to express the ceiling price of a capped call',\n        added: 'FIX.5.0',\n        AbbrName: 'CapPx',\n        addedEP: 52,\n        Tag: 1199,\n        NotReqXML: 0,\n        Name: 'CapPrice',\n    },\n    {\n        Type: 'Price',\n        Description: 'Used to express the floor price of a capped put',\n        added: 'FIX.5.0',\n        AbbrName: 'FlrPx',\n        addedEP: 52,\n        Tag: 1200,\n        NotReqXML: 0,\n        Name: 'FloorPrice',\n    },\n    {\n        Type: 'NumInGroup',\n        Description:\n            'Number of strike rule entries. This block specifies the rules for determining how new strikes should be listed within the stated price range of the underlying instrument',\n        added: 'FIX.5.0',\n        addedEP: 52,\n        Tag: 1201,\n        NotReqXML: 1,\n        Name: 'NoStrikeRules',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Starting price for the range to which the StrikeIncrement applies. Price refers to the price of the underlying',\n        added: 'FIX.5.0',\n        AbbrName: 'StartStrkPxRng',\n        addedEP: 52,\n        Tag: 1202,\n        NotReqXML: 0,\n        Name: 'StartStrikePxRange',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Ending price of the range to which the StrikeIncrement applies. Price refers to the price of the underlying',\n        added: 'FIX.5.0',\n        AbbrName: 'EndStrkPxRng',\n        addedEP: 52,\n        Tag: 1203,\n        NotReqXML: 0,\n        Name: 'EndStrikePxRange',\n    },\n    {\n        Type: 'float',\n        Description: 'Value by which strike price should be incremented within the specified price range.',\n        added: 'FIX.5.0',\n        AbbrName: 'StrkIncr',\n        addedEP: 52,\n        Tag: 1204,\n        NotReqXML: 0,\n        Name: 'StrikeIncrement',\n    },\n    {\n        Type: 'NumInGroup',\n        Description:\n            'Number of tick rules. This block specifies the rules for determining how a security ticks, i.e. the price increments at which it can be quoted and traded, depending on the current price of the security',\n        added: 'FIX.5.0',\n        addedEP: 52,\n        Tag: 1205,\n        NotReqXML: 1,\n        Name: 'NoTickRules',\n    },\n    {\n        Type: 'Price',\n        Description: 'Starting price range for specified tick increment',\n        added: 'FIX.5.0',\n        AbbrName: 'StartTickPxRng',\n        addedEP: 52,\n        Tag: 1206,\n        NotReqXML: 0,\n        Name: 'StartTickPriceRange',\n    },\n    {\n        Type: 'Price',\n        Description: 'Ending price range for the specified tick increment',\n        added: 'FIX.5.0',\n        AbbrName: 'EndTickPxRng',\n        addedEP: 52,\n        Tag: 1207,\n        NotReqXML: 0,\n        Name: 'EndTickPriceRange',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Tick increment for stated price range. Specifies the valid price increments at which a security can be quoted and traded',\n        added: 'FIX.5.0',\n        AbbrName: 'TickIncr',\n        addedEP: 52,\n        Tag: 1208,\n        NotReqXML: 0,\n        Name: 'TickIncrement',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the type of tick rule which is being described',\n        added: 'FIX.5.0',\n        AbbrName: 'TickRuleTyp',\n        addedEP: 52,\n        Tag: 1209,\n        NotReqXML: 0,\n        Name: 'TickRuleType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 871,\n        Description: 'Code to represent the type of instrument attribute',\n        added: 'FIX.5.0',\n        AbbrName: 'Typ',\n        addedEP: 52,\n        Tag: 1210,\n        NotReqXML: 0,\n        Name: 'NestedInstrAttribType',\n    },\n    {\n        Type: 'String',\n        Description: 'Attribute value appropriate to the NestedInstrAttribType field',\n        added: 'FIX.5.0',\n        AbbrName: 'Val',\n        addedEP: 52,\n        Tag: 1211,\n        NotReqXML: 0,\n        Name: 'NestedInstrAttribValue',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for Symbol(55)',\n        added: 'FIX.5.0',\n        AbbrName: 'Sym',\n        addedEP: 52,\n        Tag: 1214,\n        NotReqXML: 0,\n        Name: 'DerivativeSymbol',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 65,\n        Description: 'Refer to definition for SymbolSfx(65)',\n        added: 'FIX.5.0',\n        AbbrName: 'Sfx',\n        addedEP: 52,\n        Tag: 1215,\n        NotReqXML: 0,\n        Name: 'DerivativeSymbolSfx',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecurityID(48)',\n        added: 'FIX.5.0',\n        AbbrName: 'ID',\n        addedEP: 52,\n        Tag: 1216,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description: 'Refer to definition for SecurityIDSoruce(22)',\n        added: 'FIX.5.0',\n        AbbrName: 'Src',\n        addedEP: 52,\n        Tag: 1217,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityIDSource',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Refer to definition for NoSecurityAltID(454)',\n        added: 'FIX.5.0',\n        AbbrName: 'NoDerivativeSecurityAltID',\n        addedEP: 52,\n        Tag: 1218,\n        NotReqXML: 1,\n        Name: 'NoDerivativeSecurityAltID',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecurityAltID(455)',\n        added: 'FIX.5.0',\n        AbbrName: 'ID',\n        addedEP: 52,\n        Tag: 1219,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityAltID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 22,\n        Description: 'Refer to definition for SecurityAltIDSource(456)',\n        added: 'FIX.5.0',\n        AbbrName: 'Src',\n        addedEP: 52,\n        Tag: 1220,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityAltIDSource',\n    },\n    {\n        Type: 'Price',\n        Description: 'Refer to definition of LowLimitPrice(1148)',\n        added: 'FIX.5.0',\n        AbbrName: 'LowLmtPx',\n        addedEP: 52,\n        Tag: 1221,\n        NotReqXML: 0,\n        Name: 'SecondaryLowLimitPrice',\n    },\n    {\n        Type: 'Price',\n        Description: 'Refer to definition of HighLimitPrice(1149)',\n        added: 'FIX.5.0',\n        AbbrName: 'HiLmtPx',\n        addedEP: 52,\n        Tag: 1230,\n        NotReqXML: 0,\n        Name: 'SecondaryHighLimitPrice',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Allows maturity rule to be referenced via an identifier so that rules do not need to be explicitly enumerated',\n        added: 'FIX.5.0',\n        AbbrName: 'MatRuleID',\n        addedEP: 52,\n        Tag: 1222,\n        NotReqXML: 0,\n        Name: 'MaturityRuleID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Allows strike rule to be referenced via an identifier so that rules do not need to be explicitly enumerated',\n        added: 'FIX.5.0',\n        AbbrName: 'StrkRule',\n        addedEP: 52,\n        Tag: 1223,\n        NotReqXML: 0,\n        Name: 'StrikeRuleID',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Cash amount indicating the pay out associated with an option. For binary options this is a fixed amount',\n        added: 'FIX.5.0',\n        AbbrName: 'OptPayAmt',\n        addedEP: 52,\n        Tag: 1225,\n        NotReqXML: 0,\n        Name: 'DerivativeOptPayAmount',\n    },\n    {\n        Type: 'MonthYear',\n        Description: 'Ending maturity month year for an option class',\n        added: 'FIX.5.0',\n        AbbrName: 'EndMMY',\n        addedEP: 52,\n        Tag: 1226,\n        NotReqXML: 0,\n        Name: 'EndMaturityMonthYear',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifies an entire suite of products for a given market. In Futures this may be \"interest rates\", \"agricultural\", \"equity indexes\", etc.',\n        added: 'FIX.5.0',\n        AbbrName: 'ProdCmplx',\n        addedEP: 52,\n        Tag: 1227,\n        NotReqXML: 0,\n        Name: 'ProductComplex',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to ProductComplex(1227)',\n        added: 'FIX.5.0',\n        AbbrName: 'ProdCmplx',\n        addedEP: 52,\n        Tag: 1228,\n        NotReqXML: 0,\n        Name: 'DerivativeProductComplex',\n    },\n    {\n        Type: 'int',\n        Description: 'Increment between successive maturities for an option class',\n        added: 'FIX.5.0',\n        AbbrName: 'MMYIncr',\n        addedEP: 52,\n        Tag: 1229,\n        NotReqXML: 0,\n        Name: 'MaturityMonthYearIncrement',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Minimum lot size allowed based on lot type specified in LotType(1093)',\n        added: 'FIX.5.0',\n        AbbrName: 'MinLotSz',\n        addedEP: 52,\n        Tag: 1231,\n        NotReqXML: 0,\n        Name: 'MinLotSize',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of execution instructions',\n        added: 'FIX.5.0',\n        AbbrName: 'NoExecInstRules',\n        addedEP: 52,\n        Tag: 1232,\n        NotReqXML: 1,\n        Name: 'NoExecInstRules',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Lot Type Rules',\n        added: 'FIX.5.0',\n        AbbrName: 'NoLotTypeRules',\n        addedEP: 52,\n        Tag: 1234,\n        NotReqXML: 1,\n        Name: 'NoLotTypeRules',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Match Rules',\n        added: 'FIX.5.0',\n        AbbrName: 'NoMatchRules',\n        addedEP: 52,\n        Tag: 1235,\n        NotReqXML: 1,\n        Name: 'NoMatchRules',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of maturity rules in MarurityRules component block',\n        added: 'FIX.5.0',\n        AbbrName: 'NoMaturityRules',\n        addedEP: 52,\n        Tag: 1236,\n        NotReqXML: 1,\n        Name: 'NoMaturityRules',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of order types',\n        added: 'FIX.5.0',\n        AbbrName: 'NoOrdTypeRules',\n        addedEP: 52,\n        Tag: 1237,\n        NotReqXML: 1,\n        Name: 'NoOrdTypeRules',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of time in force techniques',\n        added: 'FIX.5.0',\n        AbbrName: 'NoTimeInForceRules',\n        addedEP: 52,\n        Tag: 1239,\n        NotReqXML: 1,\n        Name: 'NoTimeInForceRules',\n    },\n    {\n        Type: 'Price',\n        Description: 'Refer to definition for TradingReferencePrice(1150)',\n        added: 'FIX.5.0',\n        AbbrName: 'TrdgRefPx',\n        addedEP: 52,\n        Tag: 1240,\n        NotReqXML: 0,\n        Name: 'SecondaryTradingReferencePrice',\n    },\n    {\n        Type: 'MonthYear',\n        Description: 'Starting maturity month year for an option class',\n        added: 'FIX.5.0',\n        AbbrName: 'StartMMY',\n        addedEP: 52,\n        Tag: 1241,\n        NotReqXML: 0,\n        Name: 'StartMaturityMonthYear',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Used to indicate if a product or group of product supports the creation of flexible securities',\n        added: 'FIX.5.0',\n        AbbrName: 'FlexProdElig',\n        addedEP: 52,\n        Tag: 1242,\n        NotReqXML: 0,\n        Name: 'FlexProductEligibilityIndicator',\n    },\n    {\n        Type: 'Boolean',\n        Description: 'Refer to FlexProductEligibilityIndicator(1242)',\n        added: 'FIX.5.0',\n        AbbrName: 'FlexProdElig',\n        addedEP: 52,\n        Tag: 1243,\n        NotReqXML: 0,\n        Name: 'DerivFlexProductEligibilityIndicator',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Used to indicate a derivatives security that can be defined using flexible terms. The terms commonly permitted to be defined by market participants are expiration date and strike price. FlexibleIndicator is an alternative CFICode(461) Standard/Non-standard attribute.',\n        added: 'FIX.5.0',\n        AbbrName: 'FlexInd',\n        addedEP: 52,\n        Tag: 1244,\n        NotReqXML: 0,\n        Name: 'FlexibleIndicator',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Used when the trading currency can differ from the price currency',\n        added: 'FIX.5.0',\n        AbbrName: 'TrdCcy',\n        addedEP: 52,\n        Tag: 1245,\n        NotReqXML: 0,\n        Name: 'TradingCurrency',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 460,\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Prod',\n        addedEP: 52,\n        Tag: 1246,\n        NotReqXML: 0,\n        Name: 'DerivativeProduct',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'SecGrp',\n        addedEP: 52,\n        Tag: 1247,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityGroup',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'CFI',\n        addedEP: 52,\n        Tag: 1248,\n        NotReqXML: 0,\n        Name: 'DerivativeCFICode',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 167,\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'SecTyp',\n        addedEP: 52,\n        Tag: 1249,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityType',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'SecSubTyp',\n        addedEP: 52,\n        Tag: 1250,\n        NotReqXML: 0,\n        Name: 'DerivativeSecuritySubType',\n    },\n    {\n        Type: 'MonthYear',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'MMY',\n        addedEP: 52,\n        Tag: 1251,\n        NotReqXML: 0,\n        Name: 'DerivativeMaturityMonthYear',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'MatDt',\n        addedEP: 52,\n        Tag: 1252,\n        NotReqXML: 0,\n        Name: 'DerivativeMaturityDate',\n    },\n    {\n        Type: 'TZTimeOnly',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'MatTm',\n        addedEP: 52,\n        Tag: 1253,\n        NotReqXML: 0,\n        Name: 'DerivativeMaturityTime',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'OpenCloseSettlFlag',\n        addedEP: 52,\n        Tag: 1254,\n        NotReqXML: 0,\n        Name: 'DerivativeSettleOnOpenFlag',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 1049,\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'AsgnMeth',\n        addedEP: 52,\n        Tag: 1255,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrmtAssignmentMethod',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 965,\n        Description: '',\n        added: 'FIX.5.0',\n        updatedEP: 76,\n        AbbrName: 'Status',\n        addedEP: 52,\n        Tag: 1256,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'DerivativeSecurityStatus',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Rgstry',\n        addedEP: 52,\n        Tag: 1257,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrRegistry',\n    },\n    {\n        Type: 'Country',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Ctry',\n        addedEP: 52,\n        Tag: 1258,\n        NotReqXML: 0,\n        Name: 'DerivativeCountryOfIssue',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'StPrv',\n        addedEP: 52,\n        Tag: 1259,\n        NotReqXML: 0,\n        Name: 'DerivativeStateOrProvinceOfIssue',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Lcl',\n        addedEP: 52,\n        Tag: 1260,\n        NotReqXML: 0,\n        Name: 'DerivativeLocaleOfIssue',\n    },\n    {\n        Type: 'Price',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'StrkPx',\n        addedEP: 52,\n        Tag: 1261,\n        NotReqXML: 0,\n        Name: 'DerivativeStrikePrice',\n    },\n    {\n        Type: 'Currency',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'StrkCcy',\n        addedEP: 52,\n        Tag: 1262,\n        NotReqXML: 0,\n        Name: 'DerivativeStrikeCurrency',\n    },\n    {\n        Type: 'float',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'StrkMult',\n        addedEP: 52,\n        Tag: 1263,\n        NotReqXML: 0,\n        Name: 'DerivativeStrikeMultiplier',\n    },\n    {\n        Type: 'float',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'StrkValu',\n        addedEP: 52,\n        Tag: 1264,\n        NotReqXML: 0,\n        Name: 'DerivativeStrikeValue',\n    },\n    {\n        Type: 'char',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'OptAt',\n        addedEP: 52,\n        Tag: 1265,\n        NotReqXML: 0,\n        Name: 'DerivativeOptAttribute',\n    },\n    {\n        Type: 'float',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Mult',\n        addedEP: 52,\n        Tag: 1266,\n        NotReqXML: 0,\n        Name: 'DerivativeContractMultiplier',\n    },\n    {\n        Type: 'float',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'MinPxIncr',\n        addedEP: 52,\n        Tag: 1267,\n        NotReqXML: 0,\n        Name: 'DerivativeMinPriceIncrement',\n    },\n    {\n        Type: 'Amt',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'MinPxIncrAmt',\n        addedEP: 52,\n        Tag: 1268,\n        NotReqXML: 0,\n        Name: 'DerivativeMinPriceIncrementAmount',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 996,\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'UOM',\n        addedEP: 52,\n        Tag: 1269,\n        NotReqXML: 0,\n        Name: 'DerivativeUnitOfMeasure',\n    },\n    {\n        Type: 'Qty',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'UOMQty',\n        addedEP: 52,\n        Tag: 1270,\n        NotReqXML: 0,\n        Name: 'DerivativeUnitOfMeasureQty',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 997,\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'TmUnit',\n        addedEP: 52,\n        Tag: 1271,\n        NotReqXML: 0,\n        Name: 'DerivativeTimeUnit',\n    },\n    {\n        Type: 'Exchange',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Exch',\n        addedEP: 52,\n        Tag: 1272,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityExchange',\n    },\n    {\n        Type: 'int',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'PosLmt',\n        addedEP: 52,\n        Tag: 1273,\n        NotReqXML: 0,\n        Name: 'DerivativePositionLimit',\n    },\n    {\n        Type: 'int',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'NTPosLmt',\n        addedEP: 52,\n        Tag: 1274,\n        NotReqXML: 0,\n        Name: 'DerivativeNTPositionLimit',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Issr',\n        addedEP: 52,\n        Tag: 1275,\n        NotReqXML: 0,\n        Name: 'DerivativeIssuer',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'IssDt',\n        addedEP: 52,\n        Tag: 1276,\n        NotReqXML: 0,\n        Name: 'DerivativeIssueDate',\n    },\n    {\n        Type: 'Length',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'EncIssrLen',\n        addedEP: 52,\n        Tag: 1277,\n        NotReqXML: 0,\n        Name: 'DerivativeEncodedIssuerLen',\n    },\n    {\n        Type: 'data',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'EncIssr',\n        addedEP: 52,\n        Tag: 1278,\n        NotReqXML: 0,\n        Name: 'DerivativeEncodedIssuer',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Desc',\n        addedEP: 52,\n        Tag: 1279,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityDesc',\n    },\n    {\n        Type: 'Length',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'EncSecDescLen',\n        addedEP: 52,\n        Tag: 1280,\n        NotReqXML: 0,\n        Name: 'DerivativeEncodedSecurityDescLen',\n    },\n    {\n        Type: 'data',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'EncSecDesc',\n        addedEP: 52,\n        Tag: 1281,\n        NotReqXML: 0,\n        Name: 'DerivativeEncodedSecurityDesc',\n    },\n    {\n        Type: 'Length',\n        Description: 'Refer to definition SecurityXMLLen(1184)',\n        added: 'FIX.5.0',\n        AssociatedDataTag: 1283,\n        AbbrName: 'SecXMLLen',\n        addedEP: 52,\n        Tag: 1282,\n        NotReqXML: 1,\n        Name: 'DerivativeSecurityXMLLen',\n    },\n    {\n        Type: 'data',\n        Description: 'Refer to definition of SecurityXML(1185)',\n        added: 'FIX.5.0',\n        AbbrName: 'SecXML',\n        addedEP: 52,\n        Tag: 1283,\n        NotReqXML: 1,\n        Name: 'DerivativeSecurityXML',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition of SecurityXMLSchema(1186)',\n        added: 'FIX.5.0',\n        AbbrName: 'Schema',\n        addedEP: 52,\n        Tag: 1284,\n        NotReqXML: 0,\n        Name: 'DerivativeSecurityXMLSchema',\n    },\n    {\n        Type: 'MonthYear',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'CSetMo',\n        addedEP: 52,\n        Tag: 1285,\n        NotReqXML: 0,\n        Name: 'DerivativeContractSettlMonth',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'NoDerivativeEvents',\n        addedEP: 52,\n        Tag: 1286,\n        NotReqXML: 1,\n        Name: 'NoDerivativeEvents',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 865,\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'EventTyp',\n        addedEP: 52,\n        Tag: 1287,\n        NotReqXML: 0,\n        Name: 'DerivativeEventType',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Dt',\n        addedEP: 52,\n        Tag: 1288,\n        NotReqXML: 0,\n        Name: 'DerivativeEventDate',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Tm',\n        addedEP: 52,\n        Tag: 1289,\n        NotReqXML: 0,\n        Name: 'DerivativeEventTime',\n    },\n    {\n        Type: 'Price',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Px',\n        addedEP: 52,\n        Tag: 1290,\n        NotReqXML: 0,\n        Name: 'DerivativeEventPx',\n    },\n    {\n        Type: 'String',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'Txt',\n        addedEP: 52,\n        Tag: 1291,\n        NotReqXML: 0,\n        Name: 'DerivativeEventText',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Refer to definition of NoParties(453)',\n        added: 'FIX.5.0',\n        addedEP: 52,\n        Tag: 1292,\n        NotReqXML: 1,\n        Name: 'NoDerivativeInstrumentParties',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition of PartyID(448)',\n        added: 'FIX.5.0',\n        AbbrName: 'ID',\n        addedEP: 52,\n        Tag: 1293,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrumentPartyID',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 447,\n        Description: 'Refer to definition of PartyIDSource(447)',\n        added: 'FIX.5.0',\n        AbbrName: 'Src',\n        addedEP: 52,\n        Tag: 1294,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrumentPartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description: 'REfer to definition of PartyRole(452)',\n        added: 'FIX.5.0',\n        AbbrName: 'R',\n        addedEP: 52,\n        Tag: 1295,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrumentPartyRole',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Refer to definition for NoPartySubIDs(802)',\n        added: 'FIX.5.0',\n        addedEP: 52,\n        Tag: 1296,\n        NotReqXML: 1,\n        Name: 'NoDerivativeInstrumentPartySubIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for PartySubID(523)',\n        added: 'FIX.5.0',\n        AbbrName: 'ID',\n        addedEP: 52,\n        Tag: 1297,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrumentPartySubID',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description: 'Refer to definition for PartySubIDType(803)',\n        added: 'FIX.5.0',\n        AbbrName: 'Typ',\n        addedEP: 52,\n        Tag: 1298,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrumentPartySubIDType',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 1194,\n        Description: 'Type of exercise of a derivatives security',\n        added: 'FIX.5.0',\n        AbbrName: 'ExerStyle',\n        addedEP: 52,\n        Tag: 1299,\n        NotReqXML: 0,\n        Name: 'DerivativeExerciseStyle',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifies the market segment',\n        added: 'FIX.5.0',\n        AbbrName: 'MktSegID',\n        addedEP: 52,\n        Tag: 1300,\n        NotReqXML: 0,\n        Name: 'MarketSegmentID',\n    },\n    {\n        Type: 'Exchange',\n        Description: 'Identifies the Market',\n        added: 'FIX.5.0',\n        AbbrName: 'MktID',\n        addedEP: 52,\n        Tag: 1301,\n        NotReqXML: 0,\n        Name: 'MarketID',\n    },\n    {\n        Type: 'int',\n        Description: 'Unit of measure for the Maturity Month Year Increment',\n        added: 'FIX.5.0',\n        AbbrName: 'MMYIncrUnits',\n        addedEP: 52,\n        Tag: 1302,\n        NotReqXML: 0,\n        Name: 'MaturityMonthYearIncrementUnits',\n    },\n    {\n        Type: 'int',\n        Description: 'Format used to generate the MaturityMonthYear for each option',\n        added: 'FIX.5.0',\n        AbbrName: 'MMYFmt',\n        addedEP: 52,\n        Tag: 1303,\n        NotReqXML: 0,\n        Name: 'MaturityMonthYearFormat',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1194,\n        Description: 'Expiration Style for an option class:',\n        added: 'FIX.5.0',\n        AbbrName: 'StrkExrStyle',\n        addedEP: 52,\n        Tag: 1304,\n        NotReqXML: 0,\n        Name: 'StrikeExerciseStyle',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1306,\n        Description: 'Describes the how the price limits are expressed',\n        added: 'FIX.5.0',\n        AbbrName: 'PxLmtTyp',\n        addedEP: 52,\n        Tag: 1305,\n        NotReqXML: 0,\n        Name: 'SecondaryPriceLimitType',\n    },\n    {\n        Type: 'int',\n        Description: 'Describes the how the price limits are expressed',\n        added: 'FIX.5.0',\n        AbbrName: 'PxLmtTyp',\n        addedEP: 52,\n        Tag: 1306,\n        NotReqXML: 0,\n        Name: 'PriceLimitType',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 18,\n        Description: 'Indicates execution instructions that are valid for the specified market segment',\n        added: 'FIX.5.0',\n        AbbrName: 'ExecInstValu',\n        addedEP: 52,\n        Tag: 1308,\n        NotReqXML: 0,\n        Name: 'ExecInstValue',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Allows trading rules to be expressed by trading session',\n        added: 'FIX.5.0',\n        addedEP: 52,\n        Tag: 1309,\n        NotReqXML: 1,\n        Name: 'NoTradingSessionRules',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Market Segments on which a security may trade.',\n        added: 'FIX.5.0',\n        addedEP: 52,\n        Tag: 1310,\n        NotReqXML: 1,\n        Name: 'NoMarketSegments',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: '',\n        added: 'FIX.5.0',\n        addedEP: 52,\n        Tag: 1311,\n        NotReqXML: 1,\n        Name: 'NoDerivativeInstrAttrib',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: '',\n        added: 'FIX.5.0',\n        addedEP: 52,\n        Tag: 1312,\n        NotReqXML: 1,\n        Name: 'NoNestedInstrAttrib',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 871,\n        Description: 'Refer to definition of InstrAttribType(871)',\n        added: 'FIX.5.0',\n        AbbrName: 'Typ',\n        addedEP: 52,\n        Tag: 1313,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrAttribType',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition of InstrAttribValue(872)',\n        added: 'FIX.5.0',\n        AbbrName: 'Val',\n        addedEP: 52,\n        Tag: 1314,\n        NotReqXML: 0,\n        Name: 'DerivativeInstrAttribValue',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 996,\n        Description: 'Refer to definition for PriceUnitOfMeasure(1191)',\n        added: 'FIX.5.0',\n        AbbrName: 'PxUOM',\n        addedEP: 52,\n        Tag: 1315,\n        NotReqXML: 0,\n        Name: 'DerivativePriceUnitOfMeasure',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Refer to definition of PriceUnitOfMeasureQty(1192)',\n        added: 'FIX.5.0',\n        AbbrName: 'PxUOMQty',\n        addedEP: 52,\n        Tag: 1316,\n        NotReqXML: 0,\n        Name: 'DerivativePriceUnitOfMeasureQty',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 1193,\n        Description: 'Refer to definition of SettlMethod(1193)',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlMeth',\n        addedEP: 52,\n        Tag: 1317,\n        NotReqXML: 0,\n        Name: 'DerivativeSettlMethod',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 1196,\n        Description: 'Refer to definition of PriceQuoteMethod(1196)',\n        added: 'FIX.5.0',\n        AbbrName: 'PxQteMeth',\n        addedEP: 52,\n        Tag: 1318,\n        NotReqXML: 0,\n        Name: 'DerivativePriceQuoteMethod',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 1197,\n        Description: 'Refer to definition of ValuationMethod(1197).',\n        added: 'FIX.5.0',\n        updatedEP: 83,\n        AbbrName: 'ValMeth',\n        addedEP: 52,\n        Tag: 1319,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'DerivativeValuationMethod',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1198,\n        Description: 'Indicates whether instruments are pre-listed only or can also be defined via user request',\n        added: 'FIX.5.0',\n        AbbrName: 'ListMeth',\n        addedEP: 52,\n        Tag: 1320,\n        NotReqXML: 0,\n        Name: 'DerivativeListMethod',\n    },\n    {\n        Type: 'Price',\n        Description: 'Refer to definition of CapPrice(1199)',\n        added: 'FIX.5.0',\n        AbbrName: 'CapPx',\n        addedEP: 52,\n        Tag: 1321,\n        NotReqXML: 0,\n        Name: 'DerivativeCapPrice',\n    },\n    {\n        Type: 'Price',\n        Description: 'Refer to definition of FloorPrice(1200)',\n        added: 'FIX.5.0',\n        AbbrName: 'FlrPx',\n        addedEP: 52,\n        Tag: 1322,\n        NotReqXML: 0,\n        Name: 'DerivativeFloorPrice',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 201,\n        Description: 'Indicates whether an Option is for a put or call',\n        added: 'FIX.5.0',\n        AbbrName: 'PutCall',\n        addedEP: 52,\n        Tag: 1323,\n        NotReqXML: 0,\n        Name: 'DerivativePutOrCall',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 980,\n        Description: 'If provided, then Instrument occurrence has explicitly changed',\n        added: 'FIX.5.0',\n        AbbrName: 'ListUpdActn',\n        addedEP: 52,\n        Tag: 1324,\n        NotReqXML: 0,\n        Name: 'ListUpdateAction',\n    },\n    {\n        Type: 'int',\n        Description: 'Refer to definition of PutOrCall(201)',\n        added: 'FIX.5.0',\n        AbbrName: 'PutCall',\n        addedEP: 52,\n        Tag: 1358,\n        NotReqXML: 0,\n        Name: 'LegPutOrCall',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Refer to definition of UnitOfMeasureQty(1147)',\n        added: 'FIX.5.0',\n        AbbrName: 'UOMQty',\n        addedEP: 52,\n        Tag: 1224,\n        NotReqXML: 0,\n        Name: 'LegUnitOfMeasureQty',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 996,\n        Description: 'Refer to definition for PriceUnitOfMeasure(1191)',\n        added: 'FIX.5.0',\n        AbbrName: 'PxUOM',\n        addedEP: 52,\n        Tag: 1421,\n        NotReqXML: 0,\n        Name: 'LegPriceUnitOfMeasure',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Refer to definition of PriceUnitOfMeasureQty(1192)',\n        added: 'FIX.5.0',\n        AbbrName: 'PxUOMQty',\n        addedEP: 52,\n        Tag: 1422,\n        NotReqXML: 0,\n        Name: 'LegPriceUnitOfMeasureQty',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Refer to definition of UnitOfMeasureQty(1147)',\n        added: 'FIX.5.0',\n        AbbrName: 'UOMQty',\n        addedEP: 52,\n        Tag: 1423,\n        NotReqXML: 0,\n        Name: 'UnderlyingUnitOfMeasureQty',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 996,\n        Description: 'Refer to definition for PriceUnitOfMeasure(1191)',\n        added: 'FIX.5.0',\n        AbbrName: 'PxUOM',\n        addedEP: 52,\n        Tag: 1424,\n        NotReqXML: 0,\n        Name: 'UnderlyingPriceUnitOfMeasure',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Refer to definition of PriceUnitOfMeasureQty(1192)',\n        added: 'FIX.5.0',\n        AbbrName: 'PxUOMQty',\n        addedEP: 52,\n        Tag: 1425,\n        NotReqXML: 0,\n        Name: 'UnderlyingPriceUnitOfMeasureQty',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique ID of a Market Definition Request message.',\n        added: 'FIX.5.0',\n        AbbrName: 'MktReqID',\n        addedEP: 53,\n        Tag: 1393,\n        NotReqXML: 0,\n        Name: 'MarketReqID',\n    },\n    {\n        Type: 'String',\n        Description: 'Market Definition message identifier.',\n        added: 'FIX.5.0',\n        AbbrName: 'MktRptID',\n        addedEP: 53,\n        Tag: 1394,\n        NotReqXML: 0,\n        Name: 'MarketReportID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 980,\n        Description: 'Specifies the action taken for the specified MarketID(1301) + MarketSegmentID(1300).',\n        added: 'FIX.5.0',\n        AbbrName: 'MktUpdtActn',\n        addedEP: 53,\n        Tag: 1395,\n        NotReqXML: 0,\n        Name: 'MarketUpdateAction',\n    },\n    {\n        Type: 'String',\n        Description: 'Description or name of Market Segment',\n        added: 'FIX.5.0',\n        AbbrName: 'MarketSegmentDesc',\n        addedEP: 53,\n        Tag: 1396,\n        NotReqXML: 0,\n        Name: 'MarketSegmentDesc',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedMktSegmDesc(1324) field.',\n        added: 'FIX.5.0',\n        AbbrName: 'EncodedMktSegmDescLen',\n        addedEP: 53,\n        Tag: 1397,\n        NotReqXML: 0,\n        Name: 'EncodedMktSegmDescLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the MarketSegmDesc(1396) field in the encoded format specified via the MessageEncoding(347) field. If used, the ASCII (English) representation should also be specified in the MarketSegmDesc field.',\n        added: 'FIX.5.0',\n        AbbrName: 'EncodedMktSegmDesc',\n        addedEP: 53,\n        Tag: 1398,\n        NotReqXML: 0,\n        Name: 'EncodedMktSegmDesc',\n    },\n    {\n        Type: 'String',\n        Description: 'Reference to a parent Market Segment. See MarketSegmentID(1300)',\n        added: 'FIX.5.0',\n        AbbrName: 'ParentMktSegmID',\n        addedEP: 53,\n        Tag: 1325,\n        NotReqXML: 0,\n        Name: 'ParentMktSegmID',\n    },\n    {\n        Type: 'String',\n        Description: 'Trading Session description',\n        added: 'FIX.5.0',\n        AbbrName: 'TradingSessionDesc',\n        addedEP: 53,\n        Tag: 1326,\n        NotReqXML: 0,\n        Name: 'TradingSessionDesc',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 980,\n        Description: 'Specifies the action taken for the specified trading sessions.',\n        added: 'FIX.5.0',\n        AbbrName: 'TradSesUpdtActn',\n        addedEP: 53,\n        Tag: 1327,\n        NotReqXML: 0,\n        Name: 'TradSesUpdateAction',\n    },\n    {\n        Type: 'String',\n        Description: 'Those will be used by Firms to send a reason for rejecting a trade in an allocate claim model.',\n        added: 'FIX.5.0',\n        AbbrName: 'RejTxt',\n        addedEP: 55,\n        Tag: 1328,\n        NotReqXML: 0,\n        Name: 'RejectText',\n    },\n    {\n        Type: 'float',\n        Description:\n            'This is a multiplier that Clearing (Fee system) will use to calculate fees and will be sent to the firms on their confirms.',\n        added: 'FIX.5.0',\n        AbbrName: 'FeeMult',\n        addedEP: 55,\n        Tag: 1329,\n        NotReqXML: 0,\n        Name: 'FeeMultiplier',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for Symbol(55)',\n        added: 'FIX.5.0',\n        AbbrName: 'Sym',\n        addedEP: 55,\n        Tag: 1330,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSymbol',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SymbolSfx(65)',\n        added: 'FIX.5.0',\n        AbbrName: 'Sfx',\n        addedEP: 55,\n        Tag: 1331,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSymbolSfx',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecurityID(48)',\n        added: 'FIX.5.0',\n        AbbrName: 'ID',\n        addedEP: 55,\n        Tag: 1332,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSecurityID',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecurityIDSource(22)',\n        added: 'FIX.5.0',\n        AbbrName: 'Src',\n        addedEP: 55,\n        Tag: 1333,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSecurityIDSource',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Refer to definition for NoSecurityAltID(454)',\n        added: 'FIX.5.0',\n        AbbrName: 'NoUnderlyingLegSecurityAltID',\n        addedEP: 55,\n        Tag: 1334,\n        NotReqXML: 1,\n        Name: 'NoUnderlyingLegSecurityAltID',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecurityAltID(455)',\n        added: 'FIX.5.0',\n        AbbrName: 'AltID',\n        addedEP: 55,\n        Tag: 1335,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSecurityAltID',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecurityAltIDSource(456)',\n        added: 'FIX.5.0',\n        AbbrName: 'AltIDSrc',\n        addedEP: 55,\n        Tag: 1336,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSecurityAltIDSource',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecurityType(167)',\n        added: 'FIX.5.0',\n        AbbrName: 'SecType',\n        addedEP: 55,\n        Tag: 1337,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSecurityType',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecuritySubType(762)',\n        added: 'FIX.5.0',\n        AbbrName: 'SubType',\n        addedEP: 55,\n        Tag: 1338,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSecuritySubType',\n    },\n    {\n        Type: 'MonthYear',\n        Description: 'Refer to definition for MaturityMonthYear(200)',\n        added: 'FIX.5.0',\n        AbbrName: 'MMY',\n        addedEP: 55,\n        Tag: 1339,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegMaturityMonthYear',\n    },\n    {\n        Type: 'int',\n        Description: 'Refer to definition for PutOrCall(201)',\n        added: 'FIX.5.0',\n        AbbrName: 'PutCall',\n        addedEP: 55,\n        Tag: 1343,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegPutOrCall',\n    },\n    {\n        Type: 'Price',\n        Description: 'Refer to definition for StrikePrice(202)',\n        added: 'FIX.5.0',\n        AbbrName: 'StrkPx',\n        addedEP: 55,\n        Tag: 1340,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegStrikePrice',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for SecurityExchange(207)',\n        added: 'FIX.5.0',\n        AbbrName: 'Exch',\n        addedEP: 55,\n        Tag: 1341,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSecurityExchange',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Underlyings, Identifies the Underlying of the Leg',\n        added: 'FIX.5.0',\n        AbbrName: 'NoOfLegUnderlyings',\n        addedEP: 55,\n        Tag: 1342,\n        NotReqXML: 1,\n        Name: 'NoOfLegUnderlyings',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition for CFICode(461)',\n        added: 'FIX.5.0',\n        AbbrName: 'CFI',\n        addedEP: 55,\n        Tag: 1344,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegCFICode',\n    },\n    {\n        Type: 'LocalMktDate',\n        Description: 'Date of maturity.',\n        added: 'FIX.5.0',\n        AbbrName: 'MatDt',\n        addedEP: 55,\n        Tag: 1345,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegMaturityDate',\n    },\n    {\n        Type: 'TZTimeOnly',\n        Description: \"Time of security's maturity expressed in local time with offset to UTC specified\",\n        added: 'FIX.5.0',\n        AbbrName: 'MatTm',\n        addedEP: 55,\n        Tag: 1405,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegMaturityTime',\n    },\n    {\n        Type: 'char',\n        Description: 'Refer to definition of OptAttribute(206)',\n        added: 'FIX.5.0',\n        AbbrName: 'OptAt',\n        addedEP: 55,\n        Tag: 1391,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegOptAttribute',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition of SecurityDesc(107)',\n        added: 'FIX.5.0',\n        AbbrName: 'Desc',\n        addedEP: 55,\n        Tag: 1392,\n        NotReqXML: 0,\n        Name: 'UnderlyingLegSecurityDesc',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Enumeration defining the encryption method used to encrypt password fields.\\nAt this time there are no encryption methods defined by FPL.',\n        added: 'FIX.5.0',\n        AbbrName: 'EncPwdMethod',\n        addedEP: 56,\n        Tag: 1400,\n        NotReqXML: 0,\n        Name: 'EncryptedPasswordMethod',\n    },\n    {\n        Type: 'Length',\n        Description: 'Length of the EncryptedPassword(1402) field',\n        added: 'FIX.5.0',\n        AssociatedDataTag: 1402,\n        AbbrName: 'EncPwdLen',\n        addedEP: 56,\n        Tag: 1401,\n        NotReqXML: 1,\n        Name: 'EncryptedPasswordLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encrypted password - encrypted via the method specified in the field EncryptedPasswordMethod(1400)',\n        added: 'FIX.5.0',\n        AbbrName: 'EncPwd',\n        addedEP: 56,\n        Tag: 1402,\n        NotReqXML: 0,\n        Name: 'EncryptedPassword',\n    },\n    {\n        Type: 'Length',\n        Description: 'Length of the EncryptedNewPassword(1404) field',\n        added: 'FIX.5.0',\n        AssociatedDataTag: 1404,\n        AbbrName: 'EncNewPwdLen',\n        addedEP: 56,\n        Tag: 1403,\n        NotReqXML: 1,\n        Name: 'EncryptedNewPasswordLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encrypted new password - encrypted via the method specified in the field EncryptedPasswordMethod(1400)',\n        added: 'FIX.5.0',\n        AbbrName: 'EncNewPwd',\n        addedEP: 56,\n        Tag: 1404,\n        NotReqXML: 0,\n        Name: 'EncryptedNewPassword',\n    },\n    {\n        Type: 'int',\n        Description: 'The extension pack number associated with an application message.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplExtID',\n        addedEP: 56,\n        Tag: 1156,\n        NotReqXML: 1,\n        Name: 'ApplExtID',\n    },\n    {\n        Type: 'int',\n        Description: 'The extension pack number associated with an application message.',\n        added: 'FIX.5.0',\n        AbbrName: 'RefApplExtID',\n        addedEP: 56,\n        Tag: 1406,\n        NotReqXML: 0,\n        Name: 'RefApplExtID',\n    },\n    {\n        Type: 'int',\n        Description: 'The extension pack number that is the default for a FIX session.',\n        added: 'FIX.5.0',\n        AbbrName: 'DfltApplExtID',\n        addedEP: 56,\n        Tag: 1407,\n        NotReqXML: 0,\n        Name: 'DefaultApplExtID',\n    },\n    {\n        Type: 'String',\n        Description: 'The default custom application version ID that is the default for a session.',\n        added: 'FIX.5.0',\n        AbbrName: 'DefaultCstmApplVerID',\n        addedEP: 56,\n        Tag: 1408,\n        NotReqXML: 1,\n        Name: 'DefaultCstmApplVerID',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Status of a FIX session',\n        added: 'FIX.5.0',\n        AbbrName: 'SessStat',\n        addedEP: 56,\n        Tag: 1409,\n        NotReqXML: 0,\n        Name: 'SessionStatus',\n    },\n    {\n        Type: 'Boolean',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'DfltVerInd',\n        addedEP: 56,\n        Tag: 1410,\n        NotReqXML: 0,\n        Name: 'DefaultVerIndicator',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of Usernames to which this this response is directed',\n        added: 'FIX.4.4',\n        AbbrName: 'NoUsers',\n        Tag: 809,\n        NotReqXML: 1,\n        Name: 'NoUsernames',\n    },\n    {\n        Type: 'Currency',\n        Description: 'Identifies settlement currency for the leg level allocation.',\n        added: 'FIX.5.0',\n        AbbrName: 'AllocSettlCcy',\n        addedEP: 58,\n        Tag: 1367,\n        NotReqXML: 0,\n        Name: 'LegAllocSettlCurrency',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Total number of fill entries across all messages. Should be the sum of all NoFills(1362) in each message that has repeating list of fill entries related to the same ExecID(17). Used to support fragmentation.',\n        added: 'FIX.5.0',\n        AbbrName: 'TotNoFills',\n        addedEP: 58,\n        Tag: 1361,\n        NotReqXML: 0,\n        Name: 'TotNoFills',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: '',\n        added: 'FIX.5.0',\n        AbbrName: 'NoFills',\n        addedEP: 58,\n        Tag: 1362,\n        NotReqXML: 1,\n        Name: 'NoFills',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Refer to ExecID(17). Used when multiple partial fills are reported in single Execution Report. ExecID and FillExecID should not overlap,',\n        added: 'FIX.5.0',\n        AbbrName: 'FillExecID',\n        addedEP: 58,\n        Tag: 1363,\n        NotReqXML: 0,\n        Name: 'FillExecID',\n    },\n    {\n        Type: 'Price',\n        Description: 'Price of Fill. Refer to LastPx(31).',\n        added: 'FIX.5.0',\n        AbbrName: 'FillPx',\n        addedEP: 58,\n        Tag: 1364,\n        NotReqXML: 0,\n        Name: 'FillPx',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Quantity of Fill. Refer to LastQty(32).',\n        added: 'FIX.5.0',\n        AbbrName: 'FillQty',\n        addedEP: 58,\n        Tag: 1365,\n        NotReqXML: 0,\n        Name: 'FillQty',\n    },\n    {\n        Type: 'String',\n        Description: 'The AllocID(70) of an individual leg of a multileg order.',\n        added: 'FIX.5.0',\n        AbbrName: 'LegAllocID',\n        addedEP: 58,\n        Tag: 1366,\n        NotReqXML: 0,\n        Name: 'LegAllocID',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Identifies an event related to a TradSesStatus(340). An event occurs and is gone, it is not a state that applies for a period of time.',\n        added: 'FIX.5.0',\n        AbbrName: 'TradSesEvent',\n        addedEP: 58,\n        Tag: 1368,\n        NotReqXML: 0,\n        Name: 'TradSesEvent',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Unique identifier of Order Mass Cancel Report or Order Mass Action Report message as assigned by sell-side (broker, exchange, ECN)',\n        added: 'FIX.5.0',\n        AbbrName: 'MassActionReportID',\n        addedEP: 58,\n        Tag: 1369,\n        NotReqXML: 0,\n        Name: 'MassActionReportID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of not affected orders in the repeating group of order ids.',\n        added: 'FIX.5.0',\n        AbbrName: 'NoNotAffectedOrders',\n        addedEP: 58,\n        Tag: 1370,\n        NotReqXML: 1,\n        Name: 'NoNotAffectedOrders',\n    },\n    {\n        Type: 'String',\n        Description: 'OrderID(37) of an order not affected by a mass cancel request.',\n        added: 'FIX.5.0',\n        AbbrName: 'NotAffectedOrderID',\n        addedEP: 58,\n        Tag: 1371,\n        NotReqXML: 0,\n        Name: 'NotAffectedOrderID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'ClOrdID(11) of the previous order (NOT the initial order of the day) as assigned by the institution, used to identify the previous order in cancel and cancel/replace requests.',\n        added: 'FIX.5.0',\n        AbbrName: 'NotAffOrigClOrdID',\n        addedEP: 58,\n        Tag: 1372,\n        NotReqXML: 0,\n        Name: 'NotAffOrigClOrdID',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the type of action requested',\n        added: 'FIX.5.0',\n        AbbrName: 'MassActionType',\n        addedEP: 58,\n        Tag: 1373,\n        NotReqXML: 0,\n        Name: 'MassActionType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Specifies scope of Order Mass Action Request.',\n        added: 'FIX.5.0',\n        updatedEP: 85,\n        AbbrName: 'MassActionScope',\n        addedEP: 58,\n        Tag: 1374,\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        Name: 'MassActionScope',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Specifies the action taken by counterparty order handling system as a result of the action type indicated in MassActionType of the Order Mass Action Request.',\n        added: 'FIX.5.0',\n        AbbrName: 'MassActionResponse',\n        addedEP: 58,\n        Tag: 1375,\n        NotReqXML: 0,\n        Name: 'MassActionResponse',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Reason Order Mass Action Request was rejected',\n        added: 'FIX.5.0',\n        AbbrName: 'MassActionRejectReason',\n        addedEP: 58,\n        Tag: 1376,\n        NotReqXML: 0,\n        Name: 'MassActionRejectReason',\n    },\n    {\n        Type: 'int',\n        Description: 'Specifies the type of multileg order.',\n        added: 'FIX.5.0',\n        AbbrName: 'MlegModel',\n        addedEP: 59,\n        Tag: 1377,\n        NotReqXML: 0,\n        Name: 'MultilegModel',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Code to represent how the multileg price is to be interpreted when applied to the legs.\\n(See Volume : \"Glossary\" for further value definitions)',\n        added: 'FIX.5.0',\n        AbbrName: 'MlegPxMeth',\n        addedEP: 59,\n        Tag: 1378,\n        NotReqXML: 0,\n        Name: 'MultilegPriceMethod',\n    },\n    {\n        Type: 'float',\n        Description: 'Specifies the volatility of an instrument leg.',\n        added: 'FIX.5.0',\n        AbbrName: 'LegVolatility',\n        addedEP: 59,\n        Tag: 1379,\n        NotReqXML: 0,\n        Name: 'LegVolatility',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'The continuously-compounded annualized dividend yield of the underlying(s) of an option. Used as a parameter to theoretical option pricing models.',\n        added: 'FIX.5.0',\n        AbbrName: 'DividendYield',\n        addedEP: 59,\n        Tag: 1380,\n        NotReqXML: 0,\n        Name: 'DividendYield',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Refer to definition for DividendYield(1380).',\n        added: 'FIX.5.0',\n        AbbrName: 'LegDividendYield',\n        addedEP: 59,\n        Tag: 1381,\n        NotReqXML: 0,\n        Name: 'LegDividendYield',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Specifies the currency ratio between the currency used for a multileg price and the currency used by the outright book defined by the leg. Example: Multileg quoted in EUR, outright leg in USD and 1 EUR = 0,7 USD then CurrencyRatio = 0.7',\n        added: 'FIX.5.0',\n        AbbrName: 'CurrencyRatio',\n        addedEP: 59,\n        Tag: 1382,\n        NotReqXML: 0,\n        Name: 'CurrencyRatio',\n    },\n    {\n        Type: 'float',\n        Description:\n            'Specifies the currency ratio between the currency used for a multileg price and the currency used by the outright book defined by the leg. Example: Multileg quoted in EUR, outright leg in USD and 1 EUR = 0,7 USD then LegCurrencyRatio = 0.7',\n        added: 'FIX.5.0',\n        AbbrName: 'LegCurrencyRatio',\n        addedEP: 59,\n        Tag: 1383,\n        NotReqXML: 0,\n        Name: 'LegCurrencyRatio',\n    },\n    {\n        Type: 'MultipleCharValue',\n        EnumDatatype: 18,\n        Description: 'Refer to ExecInst(18)\\nSame values as ExecInst(18)',\n        added: 'FIX.5.0',\n        AbbrName: 'LegExecInst',\n        addedEP: 59,\n        Tag: 1384,\n        NotReqXML: 0,\n        Name: 'LegExecInst',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Defines the type of contingency.',\n        added: 'FIX.5.0',\n        AbbrName: 'ContingencyType',\n        addedEP: 60,\n        Tag: 1385,\n        NotReqXML: 0,\n        Name: 'ContingencyType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Identifies the reason for rejection of a New Order List message. Note that OrdRejReason(103) is used if the rejection is based on properties of an individual order part of the List.',\n        added: 'FIX.5.0',\n        AbbrName: 'ListRejectReason',\n        addedEP: 60,\n        Tag: 1386,\n        NotReqXML: 0,\n        Name: 'ListRejectReason',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of trade reporting indicators',\n        added: 'FIX.5.0',\n        AbbrName: 'NoTrdRepIndicators',\n        addedEP: 61,\n        Tag: 1387,\n        NotReqXML: 1,\n        Name: 'NoTrdRepIndicators',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description: 'Identifies the type of party for trade reporting. Same values as PartyRole(452).',\n        added: 'FIX.5.0',\n        AbbrName: 'PtyRole',\n        addedEP: 61,\n        Tag: 1388,\n        NotReqXML: 0,\n        Name: 'TrdRepPartyRole',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            'Specifies whether the trade should be reported (or not) to parties of the provided TrdRepPartyRole(1388). Used to override standard reporting behavior by the receiver of the trade report and thereby complements the PublTrdIndicator( tag1390).',\n        added: 'FIX.5.0',\n        AbbrName: 'TrdRepInd',\n        addedEP: 61,\n        Tag: 1389,\n        NotReqXML: 0,\n        Name: 'TrdRepIndicator',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Indicates if a trade should be reported via a market reporting service. The indicator governs all reporting services of the recipient. Replaces PublishTrdIndicator(852).',\n        added: 'FIX.5.0',\n        AbbrName: 'TrdPubInd',\n        addedEP: 61,\n        Tag: 1390,\n        NotReqXML: 0,\n        Name: 'TradePublishIndicator',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for request',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplReqID',\n        addedEP: 63,\n        Tag: 1346,\n        NotReqXML: 0,\n        Name: 'ApplReqID',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of Application Message Request being made.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplReqTyp',\n        addedEP: 63,\n        Tag: 1347,\n        NotReqXML: 0,\n        Name: 'ApplReqType',\n    },\n    {\n        Type: 'int',\n        Description: 'Used to indicate the type of acknowledgement being sent.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplRespTyp',\n        addedEP: 63,\n        Tag: 1348,\n        NotReqXML: 0,\n        Name: 'ApplResponseType',\n    },\n    {\n        Type: 'int',\n        Description: 'Total number of messages included in transmission.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplTotMsgCnt',\n        addedEP: 63,\n        Tag: 1349,\n        NotReqXML: 0,\n        Name: 'ApplTotalMessageCount',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Application sequence number of last message in transmission',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplLastSeqNum',\n        addedEP: 63,\n        Tag: 1350,\n        NotReqXML: 0,\n        Name: 'ApplLastSeqNum',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Specifies number of application id occurrences',\n        added: 'FIX.5.0',\n        AbbrName: 'NoApplIDs',\n        addedEP: 63,\n        Tag: 1351,\n        NotReqXML: 1,\n        Name: 'NoApplIDs',\n    },\n    {\n        Type: 'Boolean',\n        Description:\n            \"Used to indicate that a message is being sent in response to an Application Message Request. It is possible for both ApplResendFlag and PossDupFlag to be set on the same message if the Sender's cache size is greater than zero and the message is being resent due to a session level resend request\",\n        added: 'FIX.5.0',\n        AbbrName: 'ApplResendFlag',\n        addedEP: 63,\n        Tag: 1352,\n        NotReqXML: 0,\n        Name: 'ApplResendFlag',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifier for the Applicaton Message Request Ack',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplRespID',\n        addedEP: 63,\n        Tag: 1353,\n        NotReqXML: 0,\n        Name: 'ApplResponseID',\n    },\n    {\n        Type: 'int',\n        Description: 'Used to return an error code or text associated with a response to an Application Request.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplRespErr',\n        addedEP: 63,\n        Tag: 1354,\n        NotReqXML: 0,\n        Name: 'ApplResponseError',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Reference to the unique application identifier which corresponds to ApplID(1180) from the Application Sequence Group component',\n        added: 'FIX.5.0',\n        AbbrName: 'RefApplID',\n        addedEP: 63,\n        Tag: 1355,\n        NotReqXML: 0,\n        Name: 'RefApplID',\n    },\n    {\n        Type: 'String',\n        Description: 'Identifier for the Application Sequence Reset',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplRptID',\n        addedEP: 63,\n        Tag: 1356,\n        NotReqXML: 0,\n        Name: 'ApplReportID',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Application sequence number of last message in transmission.',\n        added: 'FIX.5.0',\n        AbbrName: 'RefApplLastSeqNum',\n        addedEP: 63,\n        Tag: 1357,\n        NotReqXML: 0,\n        Name: 'RefApplLastSeqNum',\n    },\n    {\n        Type: 'SeqNum',\n        Description: 'Used to specify a new application sequence number.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplNewSeqNum',\n        addedEP: 63,\n        Tag: 1399,\n        NotReqXML: 0,\n        Name: 'ApplNewSeqNum',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of report',\n        added: 'FIX.5.0SP2',\n        AbbrName: 'ApplRptTyp',\n        Tag: 1426,\n        NotReqXML: 0,\n        Name: 'ApplReportType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 803,\n        Description: 'Refer to definition of PartySubIDType(803)',\n        added: 'FIX.5.0',\n        AbbrName: 'Typ',\n        addedEP: 69,\n        Tag: 1411,\n        NotReqXML: 0,\n        Name: 'Nested4PartySubIDType',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition of PartySubID(523)',\n        added: 'FIX.5.0',\n        AbbrName: 'ID',\n        addedEP: 69,\n        Tag: 1412,\n        NotReqXML: 0,\n        Name: 'Nested4PartySubID',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Refer to definition of NoPartySubIDs(802)',\n        added: 'FIX.5.0',\n        AbbrName: 'NoNested4PartySubIDs',\n        addedEP: 69,\n        Tag: 1413,\n        NotReqXML: 0,\n        Name: 'NoNested4PartySubIDs',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Refer to definition of NoPartyIDs(453)',\n        added: 'FIX.5.0',\n        AbbrName: 'NoNested4PartyIDs',\n        addedEP: 69,\n        Tag: 1414,\n        NotReqXML: 0,\n        Name: 'NoNested4PartyIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'Refer to definition of PartyID(448)',\n        added: 'FIX.5.0',\n        AbbrName: 'ID',\n        addedEP: 69,\n        Tag: 1415,\n        NotReqXML: 0,\n        Name: 'Nested4PartyID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description: 'Refer to definition of PartyIDSource(447)',\n        added: 'FIX.5.0',\n        AbbrName: 'Src',\n        addedEP: 69,\n        Tag: 1416,\n        NotReqXML: 0,\n        Name: 'Nested4PartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description: 'Refer to definition of PartyRole(452)',\n        added: 'FIX.5.0',\n        AbbrName: 'R',\n        addedEP: 69,\n        Tag: 1417,\n        NotReqXML: 0,\n        Name: 'Nested4PartyRole',\n    },\n    {\n        Type: 'Qty',\n        Description: 'Fill quantity for the leg instrument',\n        added: 'FIX.5.0',\n        AbbrName: 'LastQty',\n        addedEP: 72,\n        Tag: 1418,\n        NotReqXML: 0,\n        Name: 'LegLastQty',\n    },\n    {\n        Type: 'String',\n        Description:\n            'When reporting trades, used to reference the identifier of the execution (ExecID) being reported if different ExecIDs were assigned to each side of the trade.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'SideExecID',\n        addedEP: 77,\n        Tag: 1427,\n        NotReqXML: 0,\n        Name: 'SideExecID',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Time lapsed from order entry until match, based on the unit of time specified in OrderDelayUnit.  Default is seconds if OrderDelayUnit is not specified. Value = 0, indicates the aggressor (the initiating side of the trade).',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'OrdDelay',\n        addedEP: 77,\n        Tag: 1428,\n        NotReqXML: 0,\n        Name: 'OrderDelay',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Time unit in which the OrderDelay(1428) is expressed',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'OrdDelayUnit',\n        addedEP: 77,\n        Tag: 1429,\n        NotReqXML: 0,\n        Name: 'OrderDelayUnit',\n    },\n    {\n        Type: 'char',\n        Description: 'Identifies the type of venue where a trade was executed',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'VenuTyp',\n        addedEP: 77,\n        Tag: 1430,\n        NotReqXML: 0,\n        Name: 'VenueType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'The reason for updating the RefOrdID',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RefOrdIDRsn',\n        addedEP: 77,\n        Tag: 1431,\n        NotReqXML: 0,\n        Name: 'RefOrdIDReason',\n    },\n    {\n        Type: 'int',\n        Description:\n            'The customer capacity for this trade at the time of the order/execution.\\nPrimarily used by futures exchanges to indicate the CTICode (customer type indicator) as required by the US CFTC (Commodity Futures Trading Commission).',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'OrigCustOrdCpcty',\n        addedEP: 77,\n        Tag: 1432,\n        NotReqXML: 0,\n        Name: 'OrigCustOrderCapacity',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Used to reference a previously submitted ApplReqID (1346) from within a subsequent ApplicationMessageRequest(MsgType=BW)',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RefID',\n        addedEP: 78,\n        Tag: 1433,\n        NotReqXML: 0,\n        Name: 'RefApplReqID',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of pricing model used',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ModelTyp',\n        addedEP: 79,\n        Tag: 1434,\n        NotReqXML: 0,\n        Name: 'ModelType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit ContractMultiplier(tag 231) is expressed in.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'MultTyp',\n        addedEP: 80,\n        Tag: 1435,\n        NotReqXML: 0,\n        Name: 'ContractMultiplierUnit',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1435,\n        Description:\n            '\"Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit LegContractMultiplier(tag 614) is expressed in.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'MultTyp',\n        addedEP: 80,\n        Tag: 1436,\n        NotReqXML: 0,\n        Name: 'LegContractMultiplierUnit',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1435,\n        Description:\n            'Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit UndlyContractMultiplier(tag 436) is expressed in.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'MultTyp',\n        addedEP: 80,\n        Tag: 1437,\n        NotReqXML: 0,\n        Name: 'UnderlyingContractMultiplierUnit',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1435,\n        Description:\n            'Indicates the type of multiplier being applied to the contract. Can be optionally used to further define what unit DerivativeContractMultiplier(tag 1266)is expressed in.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'MultTyp',\n        addedEP: 80,\n        Tag: 1438,\n        NotReqXML: 0,\n        Name: 'DerivativeContractMultiplierUnit',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\".',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'FlowSchedTyp',\n        addedEP: 80,\n        Tag: 1439,\n        NotReqXML: 0,\n        Name: 'FlowScheduleType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1439,\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\".',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'FlowSchedTyp',\n        addedEP: 80,\n        Tag: 1440,\n        NotReqXML: 0,\n        Name: 'LegFlowScheduleType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1439,\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\".',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'FlowSchedTyp',\n        addedEP: 80,\n        Tag: 1441,\n        NotReqXML: 0,\n        Name: 'UnderlyingFlowScheduleType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 1439,\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'The industry standard flow schedule by which electricity or natural gas is traded. Schedules exist by regions and on-peak and off-peak status, such as \"Western Peak\".',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'FlowSchedTyp',\n        addedEP: 80,\n        Tag: 1442,\n        NotReqXML: 0,\n        Name: 'DerivativeFlowScheduleType',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 851,\n        Description:\n            'Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrdStatus of Partial or Filled',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'LqdtyInd',\n        addedEP: 81,\n        Tag: 1443,\n        NotReqXML: 0,\n        Name: 'FillLiquidityInd',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 851,\n        Description:\n            'Indicator to identify whether this fill was a result of a liquidity provider providing or liquidity taker taking the liquidity. Applicable only for OrdStatus of Partial or Filled.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'LqdtyInd',\n        addedEP: 81,\n        Tag: 1444,\n        NotReqXML: 0,\n        Name: 'SideLiquidityInd',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of rate sources being specified.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'NoRtSrc',\n        addedEP: 82,\n        Tag: 1445,\n        NotReqXML: 1,\n        Name: 'NoRateSources',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Identifies the source of rate information.\\nFor FX, the reference source to be used for the FX spot rate.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RtSrc',\n        addedEP: 82,\n        Tag: 1446,\n        NotReqXML: 0,\n        Name: 'RateSource',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates whether the rate source specified is a primary or secondary source.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RtSrcTyp',\n        addedEP: 82,\n        Tag: 1447,\n        NotReqXML: 0,\n        Name: 'RateSourceType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Identifies the reference \"page\" from the rate source.\\nFor FX, the reference page to the spot rate to be used for the reference FX spot rate.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RefPg',\n        addedEP: 82,\n        Tag: 1448,\n        NotReqXML: 0,\n        Name: 'ReferencePage',\n    },\n    {\n        Type: 'String',\n        Description:\n            'A category of CDS credit even in which the underlying bond experiences a restructuring.\\nUsed to define a CDS instrument.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RestrctTyp',\n        addedEP: 83,\n        Tag: 1449,\n        NotReqXML: 0,\n        Name: 'RestructuringType',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Specifies which issue (underlying bond) will receive payment priority in the event of a default.\\nUsed to define a CDS instrument.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'Snrty',\n        addedEP: 83,\n        Tag: 1450,\n        NotReqXML: 0,\n        Name: 'Seniority',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'Indicates the notional percentage of the deal that is still outstanding based on the remaining components of the index.\\nUsed to calculate the true value of a CDS trade or position.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'NotlPctOut',\n        addedEP: 83,\n        Tag: 1451,\n        NotReqXML: 0,\n        Name: 'NotionalPercentageOutstanding',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'Used to reflect the Original value prior to the application of a credit event. See NotionalPercentageOutstanding(1451).',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'OrigNotlPctOut',\n        addedEP: 83,\n        Tag: 1452,\n        NotReqXML: 0,\n        Name: 'OriginalNotionalPercentageOutstanding',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 1449,\n        Description: 'See RestructuringType(1449)',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RestrctTyp',\n        addedEP: 83,\n        Tag: 1453,\n        NotReqXML: 0,\n        Name: 'UnderlyingRestructuringType',\n    },\n    {\n        Type: 'String',\n        EnumDatatype: 1450,\n        Description: 'See Seniority(1450)',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'Snrty',\n        addedEP: 83,\n        Tag: 1454,\n        NotReqXML: 0,\n        Name: 'UnderlyingSeniority',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'See NotionalPercentageOutstanding(1451)',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'NotlPctOut',\n        addedEP: 83,\n        Tag: 1455,\n        NotReqXML: 0,\n        Name: 'UnderlyingNotionalPercentageOutstanding',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'See OriginalNotionalPercentageOutstanding(1452)',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'OrigNotlPctOut',\n        addedEP: 83,\n        Tag: 1456,\n        NotReqXML: 0,\n        Name: 'UnderlyingOriginalNotionalPercentageOutstanding',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Lower bound percentage of the loss that the tranche can endure.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'AttchPnt',\n        addedEP: 83,\n        Tag: 1457,\n        NotReqXML: 0,\n        Name: 'AttachmentPoint',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'Upper bound percentage of the loss the tranche can endure.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'DetchPnt',\n        addedEP: 83,\n        Tag: 1458,\n        NotReqXML: 0,\n        Name: 'DetachmentPoint',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'See AttachmentPoint(1457).',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'AttchPnt',\n        addedEP: 83,\n        Tag: 1459,\n        NotReqXML: 0,\n        Name: 'UnderlyingAttachmentPoint',\n    },\n    {\n        Type: 'Percentage',\n        Description: 'See DetachmentPoint(1458).',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'DetchPnt',\n        addedEP: 83,\n        Tag: 1460,\n        NotReqXML: 0,\n        Name: 'UnderlyingDetachmentPoint',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Identifies the number of target parties identified in a mass action.',\n        added: 'FIX.5.0SP1',\n        addedEP: 85,\n        Tag: 1461,\n        NotReqXML: 1,\n        Name: 'NoTargetPartyIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'PartyID value within an target party repeating group.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ID',\n        addedEP: 85,\n        Tag: 1462,\n        NotReqXML: 0,\n        Name: 'TargetPartyID',\n    },\n    {\n        Type: 'char',\n        EnumDatatype: 447,\n        Description: 'PartyIDSource value within an target party repeating group.\\nSame values as PartyIDSource (447)',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'Src',\n        addedEP: 85,\n        Tag: 1463,\n        NotReqXML: 0,\n        Name: 'TargetPartyIDSource',\n    },\n    {\n        Type: 'int',\n        EnumDatatype: 452,\n        Description: 'PartyRole value within an target party repeating group.\\nSame values as PartyRole (452)',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'R',\n        addedEP: 85,\n        Tag: 1464,\n        NotReqXML: 0,\n        Name: 'TargetPartyRole',\n    },\n    {\n        Type: 'String',\n        Description: 'Specifies an identifier for a Security List',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ListID',\n        addedEP: 87,\n        Tag: 1465,\n        NotReqXML: 0,\n        Name: 'SecurityListID',\n    },\n    {\n        Type: 'String',\n        Description:\n            'Specifies a reference from one Security List to another. Used to support a hierarchy of Security Lists.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ListRefID',\n        addedEP: 87,\n        Tag: 1466,\n        NotReqXML: 0,\n        Name: 'SecurityListRefID',\n    },\n    {\n        Type: 'String',\n        Description: 'Specifies a description or name of a Security List.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ListDesc',\n        addedEP: 87,\n        Tag: 1467,\n        NotReqXML: 0,\n        Name: 'SecurityListDesc',\n    },\n    {\n        Type: 'Length',\n        Description: 'Byte length of encoded (non-ASCII characters) EncodedSecurityListDesc (tbd) field.',\n        added: 'FIX.5.0SP1',\n        AssociatedDataTag: 1469,\n        addedEP: 87,\n        Tag: 1468,\n        NotReqXML: 1,\n        Name: 'EncodedSecurityListDescLen',\n    },\n    {\n        Type: 'data',\n        Description:\n            'Encoded (non-ASCII characters) representation of the SecurityListDesc (1467) field in the encoded format specified via the MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the SecurityListDesc field.',\n        added: 'FIX.5.0SP1',\n        addedEP: 87,\n        Tag: 1469,\n        NotReqXML: 1,\n        Name: 'EncodedSecurityListDesc',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Specifies a type of Security List.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ListTyp',\n        addedEP: 87,\n        Tag: 1470,\n        NotReqXML: 0,\n        Name: 'SecurityListType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Specifies a specific source for a SecurityListType. Relevant when a certain type can be provided from various sources.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'LstTypSrc',\n        addedEP: 87,\n        Tag: 1471,\n        NotReqXML: 0,\n        Name: 'SecurityListTypeSource',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for a News message',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ID',\n        addedEP: 90,\n        Tag: 1472,\n        NotReqXML: 0,\n        Name: 'NewsID',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Category of news mesage.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'NewsCatgy',\n        addedEP: 90,\n        Tag: 1473,\n        NotReqXML: 0,\n        Name: 'NewsCategory',\n    },\n    {\n        Type: 'Language',\n        Description: 'The national language in which the news item is provided.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'LangCd',\n        addedEP: 90,\n        Tag: 1474,\n        NotReqXML: 0,\n        Name: 'LanguageCode',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of News reference items',\n        added: 'FIX.5.0SP1',\n        addedEP: 90,\n        Tag: 1475,\n        NotReqXML: 1,\n        Name: 'NoNewsRefIDs',\n    },\n    {\n        Type: 'String',\n        Description: 'Reference to another News message identified by NewsID(1474).',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RefID',\n        addedEP: 90,\n        Tag: 1476,\n        NotReqXML: 0,\n        Name: 'NewsRefID',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Type of reference to another News Message item. Defines if the referenced news item is a replacement, is in a different language, or is complimentary.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RefTyp',\n        addedEP: 90,\n        Tag: 1477,\n        NotReqXML: 0,\n        Name: 'NewsRefType',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description:\n            'Specifies how the strike price is determined at the point of option exercise. The strike may be fixed throughout the life of the option, set at expiration to the value of the underlying, set to the average value of the underlying , or set to the optimal value of the underlying.  \\nConditionally, required if value is other than \"fixed\".',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'StrkPxDtrmnMeth',\n        addedEP: 92,\n        Tag: 1478,\n        NotReqXML: 0,\n        Name: 'StrikePriceDeterminationMethod',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Specifies the boundary condition to be used for the strike price relative to the underlying price at the point of option exercise.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'StrkPxBndryMeth',\n        addedEP: 92,\n        Tag: 1479,\n        NotReqXML: 0,\n        Name: 'StrikePriceBoundaryMethod',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'Used in combination with StrikePriceBoundaryMethod to specify the percentage of the strike price in relation to the  underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'StrkPxBndryPrcsn',\n        addedEP: 92,\n        Tag: 1480,\n        NotReqXML: 0,\n        Name: 'StrikePriceBoundaryPrecision',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Specifies how the underlying price is determined at the point of option exercise. The underlying price may be set to the current settlement price, set to a special reference, set to the optimal value of the underlying during the defined period (\"Look-back\") or set to the average value of the underlying during the defined period (\"Asian option\").',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'PxDtrmnMeth',\n        addedEP: 92,\n        Tag: 1481,\n        NotReqXML: 0,\n        Name: 'UnderlyingPriceDeterminationMethod',\n    },\n    {\n        Type: 'int',\n        Description: 'Indicates the type of payout that will result from an in-the-money option.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'OptPayoutTyp',\n        addedEP: 92,\n        Tag: 1482,\n        NotReqXML: 0,\n        Name: 'OptPayoutType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of complex event occurrences.',\n        added: 'FIX.5.0SP1',\n        addedEP: 92,\n        Tag: 1483,\n        NotReqXML: 1,\n        Name: 'NoComplexEvents',\n    },\n    {\n        Type: 'int',\n        Description: 'Identifies the type of complex event.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'Typ',\n        addedEP: 92,\n        Tag: 1484,\n        NotReqXML: 0,\n        Name: 'ComplexEventType',\n    },\n    {\n        Type: 'Amt',\n        Description:\n            'Cash amount indicating the pay out associated with an event. For binary options this is a fixed amount.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'OptPayAmt',\n        addedEP: 92,\n        Tag: 1485,\n        NotReqXML: 0,\n        Name: 'ComplexOptPayoutAmount',\n    },\n    {\n        Type: 'Price',\n        Description:\n            'Specifies the price at which the complex event takes effect. Impact of the event price is determined by the ComplexEventType(1484).',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'Px',\n        addedEP: 92,\n        Tag: 1486,\n        NotReqXML: 0,\n        Name: 'ComplexEventPrice',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Specifies the boundary condition to be used for the event price relative to the underlying price at the point the complex event outcome takes effect as determined by the ComplexEventPriceTimeType.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'PxBndryMeth',\n        addedEP: 92,\n        Tag: 1487,\n        NotReqXML: 0,\n        Name: 'ComplexEventPriceBoundaryMethod',\n    },\n    {\n        Type: 'Percentage',\n        Description:\n            'Used in combination with ComplexEventPriceBoundaryMethod to specify the percentage of the strike price in relation to the  underlying price. The percentage is generally 100 or greater for puts and 100 or less for calls.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'PxBndryPrcsn',\n        addedEP: 92,\n        Tag: 1488,\n        NotReqXML: 0,\n        Name: 'ComplexEventPriceBoundaryPrecision',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Specifies when the complex event outcome takes effect. The outcome of a complex event is a payout or barrier action as specified by the ComplexEventType.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'PxTmTyp',\n        addedEP: 92,\n        Tag: 1489,\n        NotReqXML: 0,\n        Name: 'ComplexEventPriceTimeType',\n    },\n    {\n        Type: 'int',\n        Description:\n            'Specifies the condition between complex events when more than one event is specified.  \\nMultiple barrier events would use an \"or\" condition since only one can be effective at a given time. A set of digital range events would use an \"and\" condition since both conditions must be in effect for a payout to result.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'Cond',\n        addedEP: 92,\n        Tag: 1490,\n        NotReqXML: 0,\n        Name: 'ComplexEventCondition',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of complex event date occurrences for a given complex event.',\n        added: 'FIX.5.0SP1',\n        addedEP: 92,\n        Tag: 1491,\n        NotReqXML: 1,\n        Name: 'NoComplexEventDates',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Specifies the start date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options\\nComplexEventStartDate must always be less than or equal to ComplexEventEndDate.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'StartDt',\n        addedEP: 92,\n        Tag: 1492,\n        NotReqXML: 0,\n        Name: 'ComplexEventStartDate',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description:\n            'Specifies the end date of the date range on which a complex event is effective. The start date will be set equal to the end date for single day events such as Bermuda options\\nComplexEventEndDate must always be greater than or equal to ComplexEventStartDate.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'EndDt',\n        addedEP: 92,\n        Tag: 1493,\n        NotReqXML: 0,\n        Name: 'ComplexEventEndDate',\n    },\n    {\n        Type: 'NumInGroup',\n        Description:\n            'Number of complex event time occurrences for a given complex event date\\nThe default in case of an absence of time fields is 00:00:00-23:59:59.',\n        added: 'FIX.5.0SP1',\n        addedEP: 92,\n        Tag: 1494,\n        NotReqXML: 1,\n        Name: 'NoComplexEventTimes',\n    },\n    {\n        Type: 'UTCTimeOnly',\n        Description:\n            'Specifies the start time of the time range on which a complex event date is effective. \\nComplexEventStartTime must always be less than or equal to ComplexEventEndTime.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'StartTm',\n        addedEP: 92,\n        Tag: 1495,\n        NotReqXML: 0,\n        Name: 'ComplexEventStartTime',\n    },\n    {\n        Type: 'UTCTimeOnly',\n        Description:\n            'Specifies the end time of the time range on which a complex event date is effective.\\nComplexEventEndTime must always be greater than or equal to ComplexEventStartTime.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'EndTm',\n        addedEP: 92,\n        Tag: 1496,\n        NotReqXML: 0,\n        Name: 'ComplexEventEndTime',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier for the stream assignment request provided by the requester.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ReqID',\n        addedEP: 93,\n        Tag: 1497,\n        NotReqXML: 0,\n        Name: 'StreamAsgnReqID',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of stream assignment request.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'AsgnReqTyp',\n        addedEP: 93,\n        Tag: 1498,\n        NotReqXML: 0,\n        Name: 'StreamAsgnReqType',\n    },\n    {\n        Type: 'NumInGroup',\n        Description: 'Number of assignment requests.',\n        added: 'FIX.5.0SP1',\n        addedEP: 93,\n        Tag: 1499,\n        NotReqXML: 1,\n        Name: 'NoAsgnReqs',\n    },\n    {\n        Type: 'String',\n        Description: 'The identifier or name of the price stream.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'MDStrmID',\n        addedEP: 93,\n        Tag: 1500,\n        NotReqXML: 0,\n        Name: 'MDStreamID',\n    },\n    {\n        Type: 'String',\n        Description: 'Unique identifier of the stream assignment report provided by the respondent.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RptID',\n        addedEP: 93,\n        Tag: 1501,\n        NotReqXML: 0,\n        Name: 'StreamAsgnRptID',\n    },\n    {\n        Type: 'int',\n        UnionDataType: 'Reserved100Plus',\n        Description: 'Reason code for stream assignment request reject.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'RejRsn',\n        addedEP: 93,\n        Tag: 1502,\n        NotReqXML: 0,\n        Name: 'StreamAsgnRejReason',\n    },\n    {\n        Type: 'int',\n        Description: 'Type of acknowledgement.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'ActTyp',\n        addedEP: 93,\n        Tag: 1503,\n        NotReqXML: 0,\n        Name: 'StreamAsgnAckType',\n    },\n    {\n        Type: 'int',\n        Description: 'The type of assignment being affected in the Stream Assignment Report.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'AsgnTyp',\n        addedEP: 93,\n        Tag: 1617,\n        NotReqXML: 0,\n        Name: 'StreamAsgnType',\n    },\n    {\n        Type: 'UTCTimestamp',\n        Description: 'See TransactTime(60)',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'TxnTm',\n        addedEP: 94,\n        Tag: 1504,\n        NotReqXML: 0,\n        Name: 'RelSymTransactTime',\n    },\n];\n\nexport const FIELDS: ISpecFields[] = batch1.concat(batch2).concat(batch3);\n", "export interface ISpecMessages {\n    ComponentID: number;\n    MsgType: string;\n    Name: string;\n    CategoryID: string;\n    SectionID: string;\n    Description: string;\n    AbbrName: string;\n    NotReqXML: number;\n    added: string;\n    addedEP?: number;\n    updated?: string;\n    updatedEP?: number;\n}\n\nexport const MESSAGES: ISpecMessages[] = [\n    {\n        CategoryID: 'Session',\n        Description:\n            'The Heartbeat monitors the status of the communication link and identifies when the last of a string of messages was not received.',\n        added: 'FIX.2.7',\n        AbbrName: 'Heartbeat',\n        MsgType: '0',\n        NotReqXML: 1,\n        ComponentID: 1,\n        SectionID: 'Session',\n        Name: 'Heartbeat',\n    },\n    {\n        CategoryID: 'Session',\n        Description:\n            'The test request message forces a heartbeat from the opposing application. The test request message checks sequence numbers or verifies communication line status. The opposite application responds to the Test Request with a Heartbeat containing the TestReqID.',\n        added: 'FIX.2.7',\n        AbbrName: 'TestRequest',\n        MsgType: '1',\n        NotReqXML: 1,\n        ComponentID: 2,\n        SectionID: 'Session',\n        Name: 'TestRequest',\n    },\n    {\n        CategoryID: 'Session',\n        Description:\n            'The resend request is sent by the receiving application to initiate the retransmission of messages. This function is utilized if a sequence number gap is detected, if the receiving application lost a message, or as a function of the initialization process.',\n        added: 'FIX.2.7',\n        AbbrName: 'ResendRequest',\n        MsgType: '2',\n        NotReqXML: 1,\n        ComponentID: 3,\n        SectionID: 'Session',\n        Name: 'ResendRequest',\n    },\n    {\n        CategoryID: 'Session',\n        Description:\n            'The reject message should be issued when a message is received but cannot be properly processed due to a session-level rule violation. An example of when a reject may be appropriate would be the receipt of a message with invalid basic data which successfully passes de-encryption, CheckSum and BodyLength checks.',\n        added: 'FIX.2.7',\n        AbbrName: 'Reject',\n        MsgType: '3',\n        NotReqXML: 1,\n        ComponentID: 4,\n        SectionID: 'Session',\n        Name: 'Reject',\n    },\n    {\n        CategoryID: 'Session',\n        Description:\n            'The sequence reset message is used by the sending application to reset the incoming sequence number on the opposing side.',\n        added: 'FIX.2.7',\n        AbbrName: 'SequenceReset',\n        MsgType: '4',\n        NotReqXML: 1,\n        ComponentID: 5,\n        SectionID: 'Session',\n        Name: 'SequenceReset',\n    },\n    {\n        CategoryID: 'Session',\n        Description:\n            'The logout message initiates or confirms the termination of a FIX session. Disconnection without the exchange of logout messages should be interpreted as an abnormal condition.',\n        added: 'FIX.2.7',\n        AbbrName: 'Logout',\n        MsgType: '5',\n        NotReqXML: 1,\n        ComponentID: 6,\n        SectionID: 'Session',\n        Name: 'Logout',\n    },\n    {\n        CategoryID: 'Indication',\n        Description:\n            'Indication of interest messages are used to market merchandise which the broker is buying or selling in either a proprietary or agency capacity. The indications can be time bound with a specific expiration value. Indications are distributed with the understanding that other firms may react to the message first and that the merchandise may no longer be available due to prior trade.\\nIndication messages can be transmitted in various transaction types; NEW, CANCEL, and REPLACE. All message types other than NEW modify the state of the message identified in IOIRefID.',\n        added: 'FIX.2.7',\n        AbbrName: 'IOI',\n        MsgType: '6',\n        NotReqXML: 0,\n        ComponentID: 7,\n        SectionID: 'PreTrade',\n        Name: 'IOI',\n    },\n    {\n        CategoryID: 'Indication',\n        Description:\n            'Advertisement messages are used to announce completed transactions. The advertisement message can be transmitted in various transaction types; NEW, CANCEL and REPLACE. All message types other than NEW modify the state of a previously transmitted advertisement identified in AdvRefID.',\n        added: 'FIX.2.7',\n        AbbrName: 'Adv',\n        MsgType: '7',\n        NotReqXML: 0,\n        ComponentID: 8,\n        SectionID: 'PreTrade',\n        Name: 'Advertisement',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        Description:\n            'The execution report message is used to:\\n1. confirm the receipt of an order\\n2. confirm changes to an existing order (i.e. accept cancel and replace requests)\\n3. relay order status information\\n4. relay fill information on working orders\\n5. relay fill information on tradeable or restricted tradeable quotes\\n6. reject orders\\n7. report post-trade fees calculations associated with a trade',\n        added: 'FIX.2.7',\n        AbbrName: 'ExecRpt',\n        MsgType: '8',\n        NotReqXML: 0,\n        ComponentID: 9,\n        SectionID: 'Trade',\n        Name: 'ExecutionReport',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        Description:\n            'The order cancel reject message is issued by the broker upon receipt of a cancel request or cancel/replace request message which cannot be honored.',\n        added: 'FIX.2.7',\n        AbbrName: 'OrdCxlRej',\n        MsgType: '9',\n        NotReqXML: 0,\n        ComponentID: 10,\n        SectionID: 'Trade',\n        Name: 'OrderCancelReject',\n    },\n    {\n        CategoryID: 'Session',\n        Description:\n            'The logon message authenticates a user establishing a connection to a remote system. The logon message must be the first message sent by the application requesting to initiate a FIX session.',\n        added: 'FIX.2.7',\n        AbbrName: 'Logon',\n        MsgType: 'A',\n        NotReqXML: 1,\n        ComponentID: 11,\n        SectionID: 'Session',\n        Name: 'Logon',\n    },\n    {\n        CategoryID: 'EventCommunication',\n        Description:\n            \"The news message is a general free format message between the broker and institution. The message contains flags to identify the news item's urgency and to allow sorting by subject company (symbol). The News message can be originated at either the broker or institution side, or exchanges and other marketplace venues.\",\n        added: 'FIX.2.7',\n        AbbrName: 'News',\n        MsgType: 'B',\n        NotReqXML: 0,\n        ComponentID: 12,\n        SectionID: 'PreTrade',\n        Name: 'News',\n    },\n    {\n        CategoryID: 'EventCommunication',\n        Description:\n            'The email message is similar to the format and purpose of the News message, however, it is intended for private use between two parties.',\n        added: 'FIX.2.7',\n        AbbrName: 'Email',\n        MsgType: 'C',\n        NotReqXML: 0,\n        ComponentID: 13,\n        SectionID: 'PreTrade',\n        Name: 'Email',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        Description:\n            'The new order message type is used by institutions wishing to electronically submit securities and forex orders to a broker for execution.\\nThe New Order message type may also be used by institutions or retail intermediaries wishing to electronically submit Collective Investment Vehicle (CIV) orders to a broker or fund manager for execution.',\n        added: 'FIX.2.7',\n        AbbrName: 'Order',\n        MsgType: 'D',\n        NotReqXML: 0,\n        ComponentID: 14,\n        SectionID: 'Trade',\n        Name: 'NewOrderSingle',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        Description:\n            'The NewOrderList Message can be used in one of two ways depending on which market conventions are being followed.',\n        added: 'FIX.2.7',\n        AbbrName: 'NewOrdList',\n        MsgType: 'E',\n        NotReqXML: 0,\n        ComponentID: 15,\n        SectionID: 'Trade',\n        Name: 'NewOrderList',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        Description:\n            'The order cancel request message requests the cancellation of all of the remaining quantity of an existing order. Note that the Order Cancel/Replace Request should be used to partially cancel (reduce) an order).',\n        added: 'FIX.2.7',\n        AbbrName: 'OrdCxlReq',\n        MsgType: 'F',\n        NotReqXML: 0,\n        ComponentID: 16,\n        SectionID: 'Trade',\n        Name: 'OrderCancelRequest',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        Description:\n            'The order cancel/replace request is used to change the parameters of an existing order.\\nDo not use this message to cancel the remaining quantity of an outstanding order, use the Order Cancel Request message for this purpose.',\n        added: 'FIX.2.7',\n        AbbrName: 'OrdCxlRplcReq',\n        MsgType: 'G',\n        NotReqXML: 0,\n        ComponentID: 17,\n        SectionID: 'Trade',\n        Name: 'OrderCancelReplaceRequest',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        Description:\n            'The order status request message is used by the institution to generate an order status message back from the broker.',\n        added: 'FIX.2.7',\n        AbbrName: 'OrdStatReq',\n        MsgType: 'H',\n        NotReqXML: 0,\n        ComponentID: 18,\n        SectionID: 'Trade',\n        Name: 'OrderStatusRequest',\n    },\n    {\n        CategoryID: 'Allocation',\n        Description:\n            'The Allocation Instruction message provides the ability to specify how an order or set of orders should be subdivided amongst one or more accounts. In versions of FIX prior to version 4.4, this same message was known as the Allocation message. Note in versions of FIX prior to version 4.4, the allocation message was also used to communicate fee and expense details from the Sellside to the Buyside. This role has now been removed from the Allocation Instruction and is now performed by the new (to version 4.4) Allocation Report and Confirmation messages.,The Allocation Report message should be used for the Sell-side Initiated Allocation role as defined in previous versions of the protocol.',\n        added: 'FIX.2.7',\n        AbbrName: 'AllocInstrctn',\n        MsgType: 'J',\n        NotReqXML: 0,\n        ComponentID: 19,\n        SectionID: 'PostTrade',\n        Name: 'AllocationInstruction',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        Description:\n            'The List Cancel Request message type is used by institutions wishing to cancel previously submitted lists either before or during execution.',\n        added: 'FIX.2.7',\n        AbbrName: 'ListCxlReq',\n        MsgType: 'K',\n        NotReqXML: 0,\n        ComponentID: 20,\n        SectionID: 'Trade',\n        Name: 'ListCancelRequest',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        Description:\n            'The List Execute message type is used by institutions to instruct the broker to begin execution of a previously submitted list. This message may or may not be used, as it may be mirroring a phone conversation.',\n        added: 'FIX.2.7',\n        AbbrName: 'ListExct',\n        MsgType: 'L',\n        NotReqXML: 0,\n        ComponentID: 21,\n        SectionID: 'Trade',\n        Name: 'ListExecute',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        Description:\n            'The list status request message type is used by institutions to instruct the broker to generate status messages for a list.',\n        added: 'FIX.2.7',\n        AbbrName: 'ListStatReq',\n        MsgType: 'M',\n        NotReqXML: 0,\n        ComponentID: 22,\n        SectionID: 'Trade',\n        Name: 'ListStatusRequest',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        Description:\n            \"The list status message is issued as the response to a List Status Request message sent in an unsolicited fashion by the sell-side. It indicates the current state of the orders within the list as they exist at the broker's site. This message may also be used to respond to the List Cancel Request.\",\n        added: 'FIX.2.7',\n        AbbrName: 'ListStat',\n        MsgType: 'N',\n        NotReqXML: 0,\n        ComponentID: 23,\n        SectionID: 'Trade',\n        Name: 'ListStatus',\n    },\n    {\n        CategoryID: 'Allocation',\n        Description:\n            'In versions of FIX prior to version 4.4, this message was known as the Allocation ACK message.\\nThe Allocation Instruction Ack message is used to acknowledge the receipt of and provide status for an Allocation Instruction message.',\n        added: 'FIX.2.7',\n        AbbrName: 'AllocInstrctnAck',\n        MsgType: 'P',\n        NotReqXML: 0,\n        ComponentID: 24,\n        SectionID: 'PostTrade',\n        Name: 'AllocationInstructionAck',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        Description:\n            'The Don\u2019t Know Trade (DK) message notifies a trading partner that an electronically received execution has been rejected. This message can be thought of as an execution reject message.',\n        added: 'FIX.4.0',\n        AbbrName: 'DkTrd',\n        MsgType: 'Q',\n        NotReqXML: 0,\n        ComponentID: 25,\n        SectionID: 'Trade',\n        Name: 'DontKnowTrade',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'In some markets it is the practice to request quotes from brokers prior to placement of an order. The quote request message is used for this purpose. This message is commonly referred to as an Request For Quote (RFQ)',\n        added: 'FIX.4.0',\n        AbbrName: 'QuotReq',\n        MsgType: 'R',\n        NotReqXML: 0,\n        ComponentID: 26,\n        SectionID: 'PreTrade',\n        Name: 'QuoteRequest',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'The Quote message is used as the response to a Quote Request or a Quote Response message in both indicative, tradeable, and restricted tradeable quoting markets.',\n        added: 'FIX.4.0',\n        AbbrName: 'Quot',\n        MsgType: 'S',\n        NotReqXML: 0,\n        ComponentID: 27,\n        SectionID: 'PreTrade',\n        Name: 'Quote',\n    },\n    {\n        CategoryID: 'SettlementInstruction',\n        Description:\n            'The Settlement Instructions message provides the broker\u2019s, the institution\u2019s, or the intermediary\u2019s instructions for trade settlement. This message has been designed so that it can be sent from the broker to the institution, from the institution to the broker, or from either to an independent \"standing instructions\" database or matching system or, for CIV, from an intermediary to a fund manager.',\n        added: 'FIX.4.1',\n        AbbrName: 'SettlInstrctns',\n        MsgType: 'T',\n        NotReqXML: 0,\n        ComponentID: 28,\n        SectionID: 'PostTrade',\n        Name: 'SettlementInstructions',\n    },\n    {\n        CategoryID: 'MarketData',\n        Description:\n            'Some systems allow the transmission of real-time quote, order, trade, trade volume, open interest, and/or other price information on a subscription basis. A Market Data Request is a general request for market data on specific securities or forex quotes.',\n        added: 'FIX.4.2',\n        AbbrName: 'MktDataReq',\n        MsgType: 'V',\n        NotReqXML: 0,\n        ComponentID: 29,\n        SectionID: 'PreTrade',\n        Name: 'MarketDataRequest',\n    },\n    {\n        CategoryID: 'MarketData',\n        Description:\n            'The Market Data messages are used as the response to a Market Data Request message. In all cases, one Market Data message refers only to one Market Data Request. It can be used to transmit a 2-sided book of orders or list of quotes, a list of trades, index values, opening, closing, settlement, high, low, or VWAP prices, the trade volume or open interest for a security, or any combination of these.',\n        added: 'FIX.4.2',\n        AbbrName: 'MktDataFull',\n        MsgType: 'W',\n        NotReqXML: 0,\n        ComponentID: 30,\n        SectionID: 'PreTrade',\n        Name: 'MarketDataSnapshotFullRefresh',\n    },\n    {\n        CategoryID: 'MarketData',\n        Description:\n            'The Market Data message for incremental updates may contain any combination of new, changed, or deleted Market Data Entries, for any combination of instruments, with any combination of trades, imbalances, quotes, index values, open, close, settlement, high, low, and VWAP prices, trade volume and open interest so long as the maximum FIX message size is not exceeded. All of these types of Market Data Entries can be changed and deleted.',\n        added: 'FIX.4.2',\n        AbbrName: 'MktDataInc',\n        MsgType: 'X',\n        NotReqXML: 0,\n        ComponentID: 31,\n        SectionID: 'PreTrade',\n        Name: 'MarketDataIncrementalRefresh',\n    },\n    {\n        CategoryID: 'MarketData',\n        Description:\n            'The Market Data Request Reject is used when the broker cannot honor the Market Data Request, due to business or technical reasons. Brokers may choose to limit various parameters, such as the size of requests, whether just the top of book or the entire book may be displayed, and whether Full or Incremental updates must be used.',\n        added: 'FIX.4.2',\n        AbbrName: 'MktDataReqRej',\n        MsgType: 'Y',\n        NotReqXML: 0,\n        ComponentID: 32,\n        SectionID: 'PreTrade',\n        Name: 'MarketDataRequestReject',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'The Quote Cancel message is used by an originator of quotes to cancel quotes.\\nThe Quote Cancel message supports cancellation of:\\n\u2022 All quotes\\n\u2022 Quotes for a specific symbol or security ID\\n\u2022 All quotes for a security type\\n\u2022 All quotes for an underlying',\n        added: 'FIX.4.2',\n        AbbrName: 'QuotCxl',\n        MsgType: 'Z',\n        NotReqXML: 0,\n        ComponentID: 33,\n        SectionID: 'PreTrade',\n        Name: 'QuoteCancel',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'The quote status request message is used for the following purposes in markets that employ tradeable or restricted tradeable quotes:\\n\u2022 For the issuer of a quote in a market to query the status of that quote (using the QuoteID to specify the target quote).\\n\u2022 To subscribe and unsubscribe for Quote Status Report messages for one or more securities.',\n        added: 'FIX.4.2',\n        AbbrName: 'QuotStatReq',\n        MsgType: 'a',\n        NotReqXML: 0,\n        ComponentID: 34,\n        SectionID: 'PreTrade',\n        Name: 'QuoteStatusRequest',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description: 'Mass Quote Acknowledgement is used as the application level response to a Mass Quote message.',\n        added: 'FIX.4.2',\n        AbbrName: 'MassQuotAck',\n        MsgType: 'b',\n        NotReqXML: 0,\n        ComponentID: 35,\n        SectionID: 'PreTrade',\n        Name: 'MassQuoteAcknowledgement',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Security Definition Request message is used for the following:\\n1. Request a specific Security to be traded with the second party. The request security can be defined as a multileg security made up of one or more instrument legs.\\n2. Request a set of individual securities for a single market segment.\\n3. Request all securities, independent of market segment.',\n        added: 'FIX.4.2',\n        updatedEP: 97,\n        AbbrName: 'SecDefReq',\n        MsgType: 'c',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 36,\n        SectionID: 'PreTrade',\n        Name: 'SecurityDefinitionRequest',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            \"The Security Definition message is used for the following:\\n1. Accept the security defined in a Security Definition message.\\n2. Accept the security defined in a Security Definition message with changes to the definition and/or identity of the security.\\n3. Reject the security requested in a Security Definition message.\\n4. Respond to a request for securities within a specified market segment.\\n5. Convey comprehensive security definition for all market segments that the security participates in.\\n6. Convey the security's trading rules that differ from default rules for the market segment.\",\n        added: 'FIX.4.2',\n        updatedEP: 97,\n        AbbrName: 'SecDef',\n        MsgType: 'd',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 37,\n        SectionID: 'PreTrade',\n        Name: 'SecurityDefinition',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Security Status Request message provides for the ability to request the status of a security. One or more Security Status messages are returned as a result of a Security Status Request message.',\n        added: 'FIX.4.2',\n        updatedEP: 97,\n        AbbrName: 'SecStatReq',\n        MsgType: 'e',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 38,\n        SectionID: 'PreTrade',\n        Name: 'SecurityStatusRequest',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Security Status message provides for the ability to report changes in status to a security. The Security Status message contains fields to indicate trading status, corporate actions, financial status of the company. The Security Status message is used by one trading entity (for instance an exchange) to report changes in the state of a security.',\n        added: 'FIX.4.2',\n        updatedEP: 97,\n        AbbrName: 'SecStat',\n        MsgType: 'f',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 39,\n        SectionID: 'PreTrade',\n        Name: 'SecurityStatus',\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        Description:\n            'The Trading Session Status Request is used to request information on the status of a market. With the move to multiple sessions occurring for a given trading party (morning and evening sessions for instance) there is a need to be able to provide information on what product is trading on what market.',\n        added: 'FIX.4.2',\n        updatedEP: 97,\n        AbbrName: 'TrdgSesStatReq',\n        MsgType: 'g',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 40,\n        SectionID: 'PreTrade',\n        Name: 'TradingSessionStatusRequest',\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        Description:\n            'The Trading Session Status provides information on the status of a market. For markets multiple trading sessions on multiple-markets occurring (morning and evening sessions for instance), this message is able to provide information on what products are trading on what market during what trading session.',\n        added: 'FIX.4.2',\n        updatedEP: 97,\n        AbbrName: 'TrdgSesStat',\n        MsgType: 'h',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 41,\n        SectionID: 'PreTrade',\n        Name: 'TradingSessionStatus',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'The Mass Quote message can contain quotes for multiple securities to support applications that allow for the mass quoting of an option series. Two levels of repeating groups have been provided to minimize the amount of data required to submit a set of quotes for a class of options (e.g. all option series for IBM).',\n        added: 'FIX.4.2',\n        AbbrName: 'MassQuot',\n        MsgType: 'i',\n        NotReqXML: 0,\n        ComponentID: 42,\n        SectionID: 'PreTrade',\n        Name: 'MassQuote',\n    },\n    {\n        CategoryID: 'BusinessReject',\n        Description:\n            'The Business Message Reject message can reject an application-level message which fulfills session-level rules and cannot be rejected via any other means. Note if the message fails a session-level rule (e.g. body length is incorrect), a session-level Reject message should be issued.',\n        added: 'FIX.4.2',\n        AbbrName: 'BizMsgRej',\n        MsgType: 'j',\n        NotReqXML: 0,\n        ComponentID: 43,\n        SectionID: 'Infrastructure',\n        Name: 'BusinessMessageReject',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        Description:\n            'The BidRequest Message can be used in one of two ways depending on which market conventions are being followed.\\n      In the \"Non disclosed\" convention (e.g. US/European model) the BidRequest message can be used to request a bid based on the sector, country, index and liquidity information contained within the message itself. In the \"Non disclosed\" convention the entry repeating group is used to define liquidity of the program. See \" Program/Basket/List Trading\"  for an example.\\n      In the \"Disclosed\" convention (e.g. Japanese model) the BidRequest message can be used to request bids based on the ListOrderDetail messages sent in advance of BidRequest message. In the \"Disclosed\" convention the list repeating group is used to define which ListOrderDetail messages a bid is being sort for and the directions of the required bids.',\n        added: 'FIX.4.2',\n        AbbrName: 'BidReq',\n        MsgType: 'k',\n        NotReqXML: 0,\n        ComponentID: 44,\n        SectionID: 'Trade',\n        Name: 'BidRequest',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        Description:\n            'The Bid Response message can be used in one of two ways depending on which market conventions are being followed.\\n      In the \"Non disclosed\" convention the Bid Response message can be used to supply a bid based on the sector, country, index and liquidity information contained within the corresponding bid request message. See \"Program/Basket/List Trading\"  for an example.\\n      In the \"Disclosed\" convention the Bid Response message can be used to supply bids based on the List Order Detail messages sent in advance of the corresponding Bid Request message.',\n        added: 'FIX.4.2',\n        AbbrName: 'BidRsp',\n        MsgType: 'l',\n        NotReqXML: 0,\n        ComponentID: 45,\n        SectionID: 'Trade',\n        Name: 'BidResponse',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        Description:\n            'The strike price message is used to exchange strike price information for principal trades. It can also be used to exchange reference prices for agency trades.',\n        added: 'FIX.4.2',\n        AbbrName: 'ListStrkPx',\n        MsgType: 'm',\n        NotReqXML: 0,\n        ComponentID: 46,\n        SectionID: 'Trade',\n        Name: 'ListStrikePrice',\n    },\n    {\n        CategoryID: 'Session',\n        Description: '',\n        added: 'FIX.4.3',\n        AbbrName: 'XMLnonFIX',\n        MsgType: 'n',\n        NotReqXML: 1,\n        ComponentID: 47,\n        SectionID: 'Session',\n        Name: 'XMLnonFIX',\n    },\n    {\n        CategoryID: 'RegistrationInstruction',\n        Description:\n            'The Registration Instructions message type may be used by institutions or retail intermediaries wishing to electronically submit registration information to a broker or fund manager (for CIV) for an order or for an allocation.',\n        added: 'FIX.4.3',\n        AbbrName: 'RgstInstrctns',\n        MsgType: 'o',\n        NotReqXML: 0,\n        ComponentID: 48,\n        SectionID: 'PostTrade',\n        Name: 'RegistrationInstructions',\n    },\n    {\n        CategoryID: 'RegistrationInstruction',\n        Description:\n            'The Registration Instructions Response message type may be used by broker or fund manager (for CIV) in response to a Registration Instructions message submitted by an institution or retail intermediary for an order or for an allocation.',\n        added: 'FIX.4.3',\n        AbbrName: 'RgstInstrctnsRsp',\n        MsgType: 'p',\n        NotReqXML: 0,\n        ComponentID: 49,\n        SectionID: 'PostTrade',\n        Name: 'RegistrationInstructionsResponse',\n    },\n    {\n        CategoryID: 'OrderMassHandling',\n        Description:\n            'The order mass cancel request message requests the cancellation of all of the remaining quantity of a group of orders matching criteria specified within the request. NOTE: This message can only be used to cancel order messages (reduce the full quantity).',\n        added: 'FIX.4.3',\n        AbbrName: 'OrdMassCxlReq',\n        MsgType: 'q',\n        NotReqXML: 0,\n        ComponentID: 50,\n        SectionID: 'Trade',\n        Name: 'OrderMassCancelRequest',\n    },\n    {\n        CategoryID: 'OrderMassHandling',\n        Description:\n            'The Order Mass Cancel Report is used to acknowledge an Order Mass Cancel Request. Note that each affected order that is canceled is acknowledged with a separate Execution Report or Order Cancel Reject message.',\n        added: 'FIX.4.3',\n        AbbrName: 'OrdMassCxlRpt',\n        MsgType: 'r',\n        NotReqXML: 0,\n        ComponentID: 51,\n        SectionID: 'Trade',\n        Name: 'OrderMassCancelReport',\n    },\n    {\n        CategoryID: 'CrossOrders',\n        Description:\n            'Used to submit a cross order into a market. The cross order contains two order sides (a buy and a sell). The cross order is identified by its CrossID.',\n        added: 'FIX.4.3',\n        AbbrName: 'NewOrdCrss',\n        MsgType: 's',\n        NotReqXML: 0,\n        ComponentID: 52,\n        SectionID: 'Trade',\n        Name: 'NewOrderCross',\n    },\n    {\n        CategoryID: 'CrossOrders',\n        Description:\n            'Used to modify a cross order previously submitted using the New Order - Cross message. See Order Cancel Replace Request for details concerning message usage.',\n        added: 'FIX.4.3',\n        AbbrName: 'CrssOrdCxlRplcReq',\n        MsgType: 't',\n        NotReqXML: 0,\n        ComponentID: 53,\n        SectionID: 'Trade',\n        Name: 'CrossOrderCancelReplaceRequest',\n    },\n    {\n        CategoryID: 'CrossOrders',\n        Description: 'Used to fully cancel the remaining open quantity of a cross order.',\n        added: 'FIX.4.3',\n        AbbrName: 'CrssOrdCxlReq',\n        MsgType: 'u',\n        NotReqXML: 0,\n        ComponentID: 54,\n        SectionID: 'Trade',\n        Name: 'CrossOrderCancelRequest',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Security Type Request message is used to return a list of security types available from a counterparty or market.',\n        added: 'FIX.4.3',\n        updatedEP: 97,\n        AbbrName: 'SecTypReq',\n        MsgType: 'v',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 55,\n        SectionID: 'PreTrade',\n        Name: 'SecurityTypeRequest',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Security Type Request message is used to return a list of security types available from a counterparty or market.',\n        added: 'FIX.4.3',\n        updatedEP: 97,\n        AbbrName: 'SecTyps',\n        MsgType: 'w',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 56,\n        SectionID: 'PreTrade',\n        Name: 'SecurityTypes',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request',\n        added: 'FIX.4.3',\n        updatedEP: 97,\n        AbbrName: 'SecListReq',\n        MsgType: 'x',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 57,\n        SectionID: 'PreTrade',\n        Name: 'SecurityListRequest',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Security List message is used to return a list of securities that matches the criteria specified in a Security List Request.',\n        added: 'FIX.4.3',\n        updatedEP: 97,\n        AbbrName: 'SecList',\n        MsgType: 'y',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 58,\n        SectionID: 'PreTrade',\n        Name: 'SecurityList',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Derivative Security List Request message is used to return a list of securities from the counterparty that match criteria provided on the request',\n        added: 'FIX.4.3',\n        updatedEP: 97,\n        AbbrName: 'DerivSecListReq',\n        MsgType: 'z',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 59,\n        SectionID: 'PreTrade',\n        Name: 'DerivativeSecurityListRequest',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Derivative Security List message is used to return a list of securities that matches the criteria specified in a Derivative Security List Request.',\n        added: 'FIX.4.3',\n        updatedEP: 97,\n        AbbrName: 'DerivSecList',\n        MsgType: 'AA',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 60,\n        SectionID: 'PreTrade',\n        Name: 'DerivativeSecurityList',\n    },\n    {\n        CategoryID: 'MultilegOrders',\n        Description:\n            'The New Order - Multileg is provided to submit orders for securities that are made up of multiple securities, known as legs.',\n        added: 'FIX.4.3',\n        AbbrName: 'NewOrdMleg',\n        MsgType: 'AB',\n        NotReqXML: 0,\n        ComponentID: 61,\n        SectionID: 'Trade',\n        Name: 'NewOrderMultileg',\n    },\n    {\n        CategoryID: 'MultilegOrders',\n        Description:\n            'Used to modify a multileg order previously submitted using the New Order - Multileg message. See Order Cancel Replace Request for details concerning message usage.',\n        added: 'FIX.4.3',\n        AbbrName: 'MlegOrdCxlRplc',\n        MsgType: 'AC',\n        NotReqXML: 0,\n        ComponentID: 62,\n        SectionID: 'Trade',\n        Name: 'MultilegOrderCancelReplace',\n    },\n    {\n        CategoryID: 'TradeCapture',\n        Description:\n            'The Trade Capture Report Request can be used to:\\n\u2022 Request one or more trade capture reports based upon selection criteria provided on the trade capture report request\\n\u2022 Subscribe for trade capture reports based upon selection criteria provided on the trade capture report request.',\n        added: 'FIX.4.3',\n        AbbrName: 'TrdCaptRptReq',\n        MsgType: 'AD',\n        NotReqXML: 0,\n        ComponentID: 63,\n        SectionID: 'PostTrade',\n        Name: 'TradeCaptureReportRequest',\n    },\n    {\n        CategoryID: 'TradeCapture',\n        Description:\n            'The Trade Capture Report message can be:\\n\u2022 Used to report trades between counterparties.\\n\u2022 Used to report trades to a trade matching system\\n\u2022 Can be sent unsolicited between counterparties.\\n\u2022 Sent as a reply to a Trade Capture Report Request.\\n\u2022 Can be used to report unmatched and matched trades.',\n        added: 'FIX.4.3',\n        AbbrName: 'TrdCaptRpt',\n        MsgType: 'AE',\n        NotReqXML: 0,\n        ComponentID: 64,\n        SectionID: 'PostTrade',\n        Name: 'TradeCaptureReport',\n    },\n    {\n        CategoryID: 'OrderMassHandling',\n        Description:\n            'The order mass status request message requests the status for orders matching criteria specified within the request.',\n        added: 'FIX.4.3',\n        AbbrName: 'OrdMassStatReq',\n        MsgType: 'AF',\n        NotReqXML: 0,\n        ComponentID: 65,\n        SectionID: 'Trade',\n        Name: 'OrderMassStatusRequest',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'The Quote Request Reject message is used to reject Quote Request messages for all quoting models.',\n        added: 'FIX.4.3',\n        AbbrName: 'QuotReqRej',\n        MsgType: 'AG',\n        NotReqXML: 0,\n        ComponentID: 66,\n        SectionID: 'PreTrade',\n        Name: 'QuoteRequestReject',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'In tradeable and restricted tradeable quoting markets \u2013 Quote Requests are issued by counterparties interested in ascertaining the market for an instrument. Quote Requests are then distributed by the market to liquidity providers who make markets in the instrument. The RFQ Request is used by liquidity providers to indicate to the market for which instruments they are interested in receiving Quote Requests. It can be used to register interest in receiving quote requests for a single instrument or for multiple instruments',\n        added: 'FIX.4.3',\n        AbbrName: 'RFQReq',\n        MsgType: 'AH',\n        NotReqXML: 0,\n        ComponentID: 67,\n        SectionID: 'PreTrade',\n        Name: 'RFQRequest',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'The quote status report message is used:\\n\u2022 as the response to a Quote Status Request message\\n\u2022 as a response to a Quote Cancel message\\n\u2022 as a response to a Quote Response message in a negotiation dialog (see Volume 7 \u2013 PRODUCT: FIXED INCOME and USER GROUP: EXCHANGES AND MARKETS)',\n        added: 'FIX.4.3',\n        AbbrName: 'QuotStatRpt',\n        MsgType: 'AI',\n        NotReqXML: 0,\n        ComponentID: 68,\n        SectionID: 'PreTrade',\n        Name: 'QuoteStatusReport',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        Description:\n            'The Quote Response message is used to respond to a IOI message or Quote message. It is also used to counter a Quote or end a negotiation dialog.',\n        added: 'FIX.4.4',\n        AbbrName: 'QuotRsp',\n        MsgType: 'AJ',\n        NotReqXML: 0,\n        ComponentID: 69,\n        SectionID: 'PreTrade',\n        Name: 'QuoteResponse',\n    },\n    {\n        CategoryID: 'Confirmation',\n        Description:\n            'The Confirmation messages are used to provide individual trade level confirmations from the sell side to the buy side. In versions of FIX prior to version 4.4, this role was performed by the allocation message. Unlike the allocation message, the confirmation message operates at an allocation account (trade) level rather than block level, allowing for the affirmation or rejection of individual confirmations.',\n        added: 'FIX.4.4',\n        AbbrName: 'Cnfm',\n        MsgType: 'AK',\n        NotReqXML: 0,\n        ComponentID: 70,\n        SectionID: 'PostTrade',\n        Name: 'Confirmation',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        Description:\n            'The Position Maintenance Request message allows the position owner to submit requests to the holder of a position which will result in a specific action being taken which will affect the position. Generally, the holder of the position is a central counter party or clearing organization but can also be a party providing investment services.',\n        added: 'FIX.4.4',\n        AbbrName: 'PosMntReq',\n        MsgType: 'AL',\n        NotReqXML: 0,\n        ComponentID: 71,\n        SectionID: 'PostTrade',\n        Name: 'PositionMaintenanceRequest',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        Description:\n            'The Position Maintenance Report message is sent by the holder of a positon in response to a Position Maintenance Request and is used to confirm that a request has been successfully processed or rejected.',\n        added: 'FIX.4.4',\n        AbbrName: 'PosMntRpt',\n        MsgType: 'AM',\n        NotReqXML: 0,\n        ComponentID: 72,\n        SectionID: 'PostTrade',\n        Name: 'PositionMaintenanceReport',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        Description:\n            'The Request For Positions message is used by the owner of a position to request a Position Report from the holder of the position, usually the central counter party or clearing organization. The request can be made at several levels of granularity.',\n        added: 'FIX.4.4',\n        AbbrName: 'ReqForPoss',\n        MsgType: 'AN',\n        NotReqXML: 0,\n        ComponentID: 73,\n        SectionID: 'PostTrade',\n        Name: 'RequestForPositions',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        Description:\n            'The Request for Positions Ack message is returned by the holder of the position in response to a Request for Positions message. The purpose of the message is to acknowledge that a request has been received and is being processed.',\n        added: 'FIX.4.4',\n        AbbrName: 'ReqForPossAck',\n        MsgType: 'AO',\n        NotReqXML: 0,\n        ComponentID: 74,\n        SectionID: 'PostTrade',\n        Name: 'RequestForPositionsAck',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        Description:\n            'The Position Report message is returned by the holder of a position in response to a Request for Position message. The purpose of the message is to report all aspects of a position and may be provided on a standing basis to report end of day positions to an owner.',\n        added: 'FIX.4.4',\n        AbbrName: 'PosRpt',\n        MsgType: 'AP',\n        NotReqXML: 0,\n        ComponentID: 75,\n        SectionID: 'PostTrade',\n        Name: 'PositionReport',\n    },\n    {\n        CategoryID: 'TradeCapture',\n        Description:\n            'The Trade Capture Request Ack message is used to:\\n\u2022 Provide an acknowledgement to a Trade Capture Report Request in the case where the Trade Capture Report Request is used to specify a subscription or delivery of reports via an out-of-band ResponseTransmissionMethod.\\n\u2022 Provide an acknowledgement to a Trade Capture Report Request in the case when the return of the Trade Capture Reports matching that request will be delayed or delivered asynchronously. This is useful in distributed trading system environments.\\n\u2022 Indicate that no trades were found that matched the selection criteria specified on the Trade Capture Report Request\\n\u2022 The Trade Capture Request was invalid for some business reason, such as request is not authorized, invalid or unknown instrument, party, trading session, etc.',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdCaptRptReqAck',\n        MsgType: 'AQ',\n        NotReqXML: 0,\n        ComponentID: 76,\n        SectionID: 'PostTrade',\n        Name: 'TradeCaptureReportRequestAck',\n    },\n    {\n        CategoryID: 'TradeCapture',\n        Description:\n            'The Trade Capture Report Ack message can be:\\n\u2022 Used to acknowledge trade capture reports received from a counterparty\\n\u2022 Used to reject a trade capture report received from a counterparty',\n        added: 'FIX.4.4',\n        AbbrName: 'TrdCaptRptAck',\n        MsgType: 'AR',\n        NotReqXML: 0,\n        ComponentID: 77,\n        SectionID: 'PostTrade',\n        Name: 'TradeCaptureReportAck',\n    },\n    {\n        CategoryID: 'Allocation',\n        Description:\n            'Sent from sell-side to buy-side, sell-side to 3rd-party or 3rd-party to buy-side, the Allocation Report (Claim) provides account breakdown of an order or set of orders plus any additional follow-up front-office information developed post-trade during the trade allocation, matching and calculation phase. In versions of FIX prior to version 4.4, this functionality was provided through the Allocation message. Depending on the needs of the market and the timing of \"confirmed\" status, the role of Allocation Report can be taken over in whole or in part by the Confirmation message.',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocRpt',\n        MsgType: 'AS',\n        NotReqXML: 0,\n        ComponentID: 78,\n        SectionID: 'PostTrade',\n        Name: 'AllocationReport',\n    },\n    {\n        CategoryID: 'Allocation',\n        Description:\n            'The Allocation Report Ack message is used to acknowledge the receipt of and provide status for an Allocation Report message.',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocRptAck',\n        MsgType: 'AT',\n        NotReqXML: 0,\n        ComponentID: 79,\n        SectionID: 'PostTrade',\n        Name: 'AllocationReportAck',\n    },\n    {\n        CategoryID: 'Confirmation',\n        Description: 'The Confirmation Ack (aka Affirmation) message is used to respond to a Confirmation message.',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmAck',\n        MsgType: 'AU',\n        NotReqXML: 0,\n        ComponentID: 80,\n        SectionID: 'PostTrade',\n        Name: 'ConfirmationAck',\n    },\n    {\n        CategoryID: 'SettlementInstruction',\n        Description:\n            'The Settlement Instruction Request message is used to request standing settlement instructions from another party.',\n        added: 'FIX.4.4',\n        AbbrName: 'SettlInstrctnReq',\n        MsgType: 'AV',\n        NotReqXML: 0,\n        ComponentID: 81,\n        SectionID: 'PostTrade',\n        Name: 'SettlementInstructionRequest',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        Description:\n            'Assignment Reports are sent from a clearing house to counterparties, such as a clearing firm as a result of the assignment process.',\n        added: 'FIX.4.4',\n        AbbrName: 'AsgnRpt',\n        MsgType: 'AW',\n        NotReqXML: 0,\n        ComponentID: 82,\n        SectionID: 'PostTrade',\n        Name: 'AssignmentReport',\n    },\n    {\n        CategoryID: 'CollateralManagement',\n        Description:\n            'An initiator that requires collateral from a respondent sends a Collateral Request. The initiator can be either counterparty to a trade in a two party model or an intermediary such as an ATS or clearinghouse in a three party model. A Collateral Assignment is expected as a response to a request for collateral.',\n        added: 'FIX.4.4',\n        AbbrName: 'CollReq',\n        MsgType: 'AX',\n        NotReqXML: 0,\n        ComponentID: 83,\n        SectionID: 'PostTrade',\n        Name: 'CollateralRequest',\n    },\n    {\n        CategoryID: 'CollateralManagement',\n        Description:\n            'Used to assign collateral to cover a trading position. This message can be sent unsolicited or in reply to a Collateral Request message.',\n        added: 'FIX.4.4',\n        AbbrName: 'CollAsgn',\n        MsgType: 'AY',\n        NotReqXML: 0,\n        ComponentID: 84,\n        SectionID: 'PostTrade',\n        Name: 'CollateralAssignment',\n    },\n    {\n        CategoryID: 'CollateralManagement',\n        Description: 'Used to respond to a Collateral Assignment message.',\n        added: 'FIX.4.4',\n        AbbrName: 'CollRsp',\n        MsgType: 'AZ',\n        NotReqXML: 0,\n        ComponentID: 85,\n        SectionID: 'PostTrade',\n        Name: 'CollateralResponse',\n    },\n    {\n        CategoryID: 'CollateralManagement',\n        Description: 'Used to report collateral status when responding to a Collateral Inquiry message.',\n        added: 'FIX.4.4',\n        AbbrName: 'CollRpt',\n        MsgType: 'BA',\n        NotReqXML: 0,\n        ComponentID: 86,\n        SectionID: 'PostTrade',\n        Name: 'CollateralReport',\n    },\n    {\n        CategoryID: 'CollateralManagement',\n        Description: 'Used to inquire for collateral status.',\n        added: 'FIX.4.4',\n        AbbrName: 'CollInq',\n        MsgType: 'BB',\n        NotReqXML: 0,\n        ComponentID: 87,\n        SectionID: 'PostTrade',\n        Name: 'CollateralInquiry',\n    },\n    {\n        CategoryID: 'Network',\n        Description:\n            'This message is send either immediately after logging on to inform a network (counterparty system) of the type of updates required or to at any other time in the FIX conversation to change the nature of the types of status updates required. It can also be used with a NetworkRequestType of Snapshot to request a one-off report of the status of a network (or counterparty) system. Finally this message can also be used to cancel a request to receive updates into the status of the counterparties on a network by sending a NetworkRequestStatusMessage with a NetworkRequestType of StopSubscribing.',\n        added: 'FIX.4.4',\n        AbbrName: 'NtwkSysStatReq',\n        MsgType: 'BC',\n        NotReqXML: 0,\n        ComponentID: 88,\n        SectionID: 'Infrastructure',\n        Name: 'NetworkCounterpartySystemStatusRequest',\n    },\n    {\n        CategoryID: 'Network',\n        Description: 'This message is sent in response to a Network (Counterparty System) Status Request Message.',\n        added: 'FIX.4.4',\n        AbbrName: 'NtwkSysStatRsp',\n        MsgType: 'BD',\n        NotReqXML: 0,\n        ComponentID: 89,\n        SectionID: 'Infrastructure',\n        Name: 'NetworkCounterpartySystemStatusResponse',\n    },\n    {\n        CategoryID: 'UserManagement',\n        Description:\n            \"This message is used to initiate a user action, logon, logout or password change. It can also be used to request a report on a user's status.\",\n        added: 'FIX.4.4',\n        AbbrName: 'UserReq',\n        MsgType: 'BE',\n        NotReqXML: 0,\n        ComponentID: 90,\n        SectionID: 'Infrastructure',\n        Name: 'UserRequest',\n    },\n    {\n        CategoryID: 'UserManagement',\n        Description:\n            'This message is used to respond to a user request message, it reports the status of the user after the completion of any action requested in the user request message.',\n        added: 'FIX.4.4',\n        AbbrName: 'UserRsp',\n        MsgType: 'BF',\n        NotReqXML: 0,\n        ComponentID: 91,\n        SectionID: 'Infrastructure',\n        Name: 'UserResponse',\n    },\n    {\n        CategoryID: 'CollateralManagement',\n        Description:\n            'Used to respond to a Collateral Inquiry in the following situations:\\n\u2022 When the CollateralInquiry will result in an out of band response (such as a file transfer).\\n\u2022 When the inquiry is otherwise valid but no collateral is found to match the criteria specified on the Collateral Inquiry message.\\n\u2022 When the Collateral Inquiry is invalid based upon the business rules of the counterparty.',\n        added: 'FIX.4.4',\n        AbbrName: 'CollInqAck',\n        MsgType: 'BG',\n        NotReqXML: 0,\n        ComponentID: 92,\n        SectionID: 'PostTrade',\n        Name: 'CollateralInquiryAck',\n    },\n    {\n        CategoryID: 'Confirmation',\n        Description: 'The Confirmation Request message is used to request a Confirmation message.',\n        added: 'FIX.4.4',\n        AbbrName: 'CnfmReq',\n        MsgType: 'BH',\n        NotReqXML: 0,\n        ComponentID: 93,\n        SectionID: 'PostTrade',\n        Name: 'ConfirmationRequest',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        Description:\n            'The Contrary Intention Report is used for reporting of contrary expiration quantities for Saturday expiring options. This information is required by options exchanges for regulatory purposes.',\n        added: 'FIX.4.4',\n        AbbrName: 'ContIntRpt',\n        addedEP: -1,\n        MsgType: 'BO',\n        NotReqXML: 0,\n        ComponentID: 94,\n        SectionID: 'PostTrade',\n        Name: 'ContraryIntentionReport',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'This message is used for reporting updates to a Product Security Masterfile. Updates could be the result of corporate actions or other business events. Updates may include additions, modifications or deletions.',\n        added: 'FIX.4.4',\n        updatedEP: 97,\n        AbbrName: 'SecDefUpd',\n        addedEP: -1,\n        MsgType: 'BP',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 95,\n        SectionID: 'PreTrade',\n        Name: 'SecurityDefinitionUpdateReport',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Security List Update Report is used for reporting updates to a Contract Security Masterfile. Updates could be due to Corporate Actions or other business events. Update may include additions, modifications and deletions.',\n        added: 'FIX.4.4',\n        updatedEP: 97,\n        AbbrName: 'SecListUpd',\n        addedEP: -1,\n        MsgType: 'BK',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 96,\n        SectionID: 'PreTrade',\n        Name: 'SecurityListUpdateReport',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        Description:\n            'Used to report changes in position, primarily in equity options, due to modifications to the underlying due to corporate actions',\n        added: 'FIX.4.4',\n        AbbrName: 'AdjPosRep',\n        addedEP: -1,\n        MsgType: 'BL',\n        NotReqXML: 0,\n        ComponentID: 97,\n        SectionID: 'PostTrade',\n        Name: 'AdjustedPositionReport',\n    },\n    {\n        CategoryID: 'Allocation',\n        Description:\n            'This message is used in a 3-party allocation model where notification of group creation and group updates to counterparties is needed. The mssage will also carry trade information that comprised the group to the counterparties.',\n        added: 'FIX.4.4',\n        AbbrName: 'AllocInstrAlert',\n        addedEP: -1,\n        MsgType: 'BM',\n        NotReqXML: 0,\n        ComponentID: 98,\n        SectionID: 'PostTrade',\n        Name: 'AllocationInstructionAlert',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        Description:\n            \"The Execution Report Acknowledgement message is an optional message that provides dual functionality to notify a trading partner that an electronically received execution has either been accepted or rejected (DK'd).\",\n        added: 'FIX.4.4',\n        AbbrName: 'ExecAck',\n        addedEP: -1,\n        MsgType: 'BN',\n        NotReqXML: 0,\n        ComponentID: 99,\n        SectionID: 'Trade',\n        Name: 'ExecutionAcknowledgement',\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        Description:\n            'The Trading Session List message is sent as a response to a Trading Session List Request. The Trading Session List should contain the characteristics of the trading session and the current state of the trading session.',\n        added: 'FIX.4.4',\n        updatedEP: 97,\n        AbbrName: 'TradSessList',\n        addedEP: -1,\n        MsgType: 'BJ',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 100,\n        SectionID: 'PreTrade',\n        Name: 'TradingSessionList',\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        Description:\n            'The Trading Session List Request is used to request a list of trading sessions available in a market place and the state of those trading sessions. A successful request will result in a response from the counterparty of a Trading Session List (MsgType=BJ) message that contains a list of zero or more trading sessions.',\n        added: 'FIX.4.4',\n        updatedEP: 97,\n        AbbrName: 'TradSessListReq',\n        addedEP: -1,\n        MsgType: 'BI',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 101,\n        SectionID: 'PreTrade',\n        Name: 'TradingSessionListRequest',\n    },\n    {\n        CategoryID: 'SettlementInstruction',\n        Description:\n            'The Settlement Obligation Report message provides a central counterparty, institution, or individual counterparty with a capacity for reporting the final details of a currency settlement obligation.',\n        added: 'FIX.5.0',\n        AbbrName: 'SettlObligation',\n        addedEP: -1,\n        MsgType: 'BQ',\n        NotReqXML: 0,\n        ComponentID: 102,\n        SectionID: 'PostTrade',\n        Name: 'SettlementObligationReport',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        Description:\n            'The Derivative Security List Update Report message is used to send updates to an option family or the strikes that comprise an option family.',\n        added: 'FIX.5.0',\n        updatedEP: 97,\n        AbbrName: 'DerivSecListUpd',\n        addedEP: -1,\n        MsgType: 'BR',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 103,\n        SectionID: 'PreTrade',\n        Name: 'DerivativeSecurityListUpdateReport',\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        Description:\n            'The Trading Session List Update Report is used by marketplaces to provide intra-day updates of trading sessions when there are changes to one or more trading sessions.',\n        added: 'FIX.5.0',\n        updatedEP: 97,\n        AbbrName: 'TrdgSesListUpd',\n        addedEP: -1,\n        MsgType: 'BS',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 104,\n        SectionID: 'PreTrade',\n        Name: 'TradingSessionListUpdateReport',\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        Description:\n            'The Market Definition Request message is used to request for market structure information from the Respondent that receives this request.',\n        added: 'FIX.5.0',\n        updatedEP: 97,\n        AbbrName: 'MktDefReq',\n        addedEP: -1,\n        MsgType: 'BT',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 105,\n        SectionID: 'PreTrade',\n        Name: 'MarketDefinitionRequest',\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        Description:\n            'The Market Definition message is used to respond to Market Definition Request. In a subscription, it will be used to provide the initial snapshot of the information requested. Subsequent updates are provided by the Market Definition Update Report.',\n        added: 'FIX.5.0',\n        updatedEP: 97,\n        AbbrName: 'MktDef',\n        addedEP: -1,\n        MsgType: 'BU',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 106,\n        SectionID: 'PreTrade',\n        Name: 'MarketDefinition',\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        Description:\n            'In a subscription for market structure information, this message is used once the initial snapshot of the information has been sent using the Market Definition message.',\n        added: 'FIX.5.0',\n        updatedEP: 97,\n        AbbrName: 'MktDefUpd',\n        addedEP: -1,\n        MsgType: 'BV',\n        NotReqXML: 0,\n        updated: 'FIX.5.0SP1',\n        ComponentID: 107,\n        SectionID: 'PreTrade',\n        Name: 'MarketDefinitionUpdateReport',\n    },\n    {\n        CategoryID: 'UserManagement',\n        Description:\n            'The User Notification message is used to notify one or more users of an event or information from the sender of the message. This message is usually sent unsolicited from a marketplace (e.g. Exchange, ECN) to a market participant.',\n        added: 'FIX.5.0',\n        AbbrName: 'UserNotifctn',\n        addedEP: -1,\n        MsgType: 'CB',\n        NotReqXML: 0,\n        ComponentID: 113,\n        SectionID: 'Infrastructure',\n        Name: 'UserNotification',\n    },\n    {\n        CategoryID: 'OrderMassHandling',\n        Description:\n            'The Order Mass Action Report is used to acknowledge an Order Mass Action Request. Note that each affected order that is suspended or released or canceled is acknowledged with a separate Execution Report for each order.',\n        added: 'FIX.5.0',\n        AbbrName: 'OrdMassActRpt',\n        addedEP: -1,\n        MsgType: 'BZ',\n        NotReqXML: 0,\n        ComponentID: 111,\n        SectionID: 'Trade',\n        Name: 'OrderMassActionReport',\n    },\n    {\n        CategoryID: 'OrderMassHandling',\n        Description:\n            'The Order Mass Action Request message can be used to request the suspension or release of a group of orders that match the criteria specified within the request. This is equivalent to individual Order Cancel Replace Requests for each order with or without adding \"S\" to the ExecInst values. It can also be used for mass order cancellation.',\n        added: 'FIX.5.0',\n        AbbrName: 'OrdMassActReq',\n        addedEP: -1,\n        MsgType: 'CA',\n        NotReqXML: 0,\n        ComponentID: 112,\n        SectionID: 'Trade',\n        Name: 'OrderMassActionRequest',\n    },\n    {\n        CategoryID: 'Application',\n        Description:\n            'This message is used to request a retransmission of a set of one or more messages generated by the application specified in RefApplID (1355).',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplMsgReq',\n        addedEP: -1,\n        MsgType: 'BW',\n        NotReqXML: 0,\n        ComponentID: 108,\n        SectionID: 'Infrastructure',\n        Name: 'ApplicationMessageRequest',\n    },\n    {\n        CategoryID: 'Application',\n        Description:\n            'This message is used to acknowledge an Application Message Request providing a status on the request (i.e. whether successful or not). This message does not provide the actual content of the messages to be resent.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplMsgReqAck',\n        addedEP: -1,\n        MsgType: 'BX',\n        NotReqXML: 0,\n        ComponentID: 109,\n        SectionID: 'Infrastructure',\n        Name: 'ApplicationMessageRequestAck',\n    },\n    {\n        CategoryID: 'Application',\n        Description:\n            'This message is used for three difference purposes: to reset the ApplSeqNum (1181) of a specified ApplID (1180). to indicate that the last message has been sent for a particular ApplID, or as a keep-alive mechanism for ApplIDs with infrequent message traffic.',\n        added: 'FIX.5.0',\n        AbbrName: 'ApplMsgRpt',\n        addedEP: -1,\n        MsgType: 'BY',\n        NotReqXML: 0,\n        ComponentID: 110,\n        SectionID: 'Infrastructure',\n        Name: 'ApplicationMessageReport',\n    },\n    {\n        CategoryID: 'MarketData',\n        Description:\n            'In certain markets where market data aggregators fan out to end clients the pricing streams provided by the price makers, the price maker may assign the clients to certain pricing streams that the price maker publishes via the aggregator. An example of this use is in the FX markets where clients may be assigned to different pricing streams based on volume bands and currency pairs.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'StrmAsgnReq',\n        addedEP: 93,\n        MsgType: 'CC',\n        NotReqXML: 0,\n        ComponentID: 114,\n        SectionID: 'PreTrade',\n        Name: 'StreamAssignmentRequest',\n    },\n    {\n        CategoryID: 'MarketData',\n        Description:\n            'he StreamAssignmentReport message is in response to the StreamAssignmentRequest message. It provides information back to the aggregator as to which clients to assign to receive which price stream based on requested CCY pair. This message can be sent unsolicited to the Aggregator from the Price Maker.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'StrmAsgnRpt',\n        addedEP: 93,\n        MsgType: 'CD',\n        NotReqXML: 0,\n        ComponentID: 115,\n        SectionID: 'PreTrade',\n        Name: 'StreamAssignmentReport',\n    },\n    {\n        CategoryID: 'MarketData',\n        Description:\n            'This message is used to respond to the Stream Assignment Report, to either accept or reject an unsolicited assingment.',\n        added: 'FIX.5.0SP1',\n        AbbrName: 'StrmAsgnRptACK',\n        addedEP: 93,\n        MsgType: 'CE',\n        NotReqXML: 0,\n        ComponentID: 116,\n        SectionID: 'PreTrade',\n        Name: 'StreamAssignmentReportACK',\n    },\n];\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport prebuiltMap from '../../prebuild/MessageContents.prebuilt.json';\nimport { ISpecMessageContents } from '../../spec/SpecMessageContents';\nimport { Message } from '../message/Message';\n\nexport class MessageContents {\n    public cacheMap: Map<number, ISpecMessageContents[]> = new Map<number, ISpecMessageContents[]>();\n    public validated: boolean = false;\n\n    constructor() {\n        Object.entries(prebuiltMap).forEach((pair) =>\n            this.cacheMap.set(Number(pair[0]), pair[1] as unknown as ISpecMessageContents[]),\n        );\n    }\n\n    public processMessageContents(message: Message, componentId: number): void {\n        const messageContents = this.cacheMap.get(componentId);\n        if (messageContents) {\n            message.setMessageContents(messageContents);\n        }\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { ISpecMessages, MESSAGES } from '../../spec/SpecMessages';\nimport { Field } from '../fields/Field';\nimport { Message } from '../message/Message';\nimport { MessageContents } from '../messagecontents/MessageContents';\n\nexport class Messages {\n    public messages: ISpecMessages[] = MESSAGES;\n    public messageContents: MessageContents = new MessageContents();\n    public cacheMap: Map<string, ISpecMessages> = new Map<string, ISpecMessages>();\n\n    constructor() {\n        this.messages.forEach((message: ISpecMessages) => {\n            this.cacheMap.set(message.MsgType, message);\n        });\n    }\n\n    public setMessageType(message: Message, field: Field): void {\n        const messageType: ISpecMessages | undefined = this.cacheMap.get(field.value as string);\n        if (messageType) {\n            message.setDescription(messageType.Name);\n            message.setMessageType(messageType.MsgType);\n            this.messageContents.processMessageContents(message, messageType.ComponentID);\n        }\n    }\n\n    public setMessageSequence(message: Message, messageSequence: number): void {\n        message.setMessageSequence(messageSequence);\n    }\n}\n", "export interface ISpecCategories {\n    CategoryID: string;\n    FIXMLFileName: string;\n    NotReqXML: number;\n    GenerateImplFile: number;\n    ComponentType: string;\n    SectionID?: string;\n    Volume: number;\n    IncludeFile?: string;\n    added?: string;\n    addedEP?: number;\n}\n\nexport const CATEGORIES: ISpecCategories[] = [\n    {\n        CategoryID: 'Session',\n        ComponentType: 'Message',\n        Volume: 2,\n        FIXMLFileName: 'session',\n        NotReqXML: 1,\n        GenerateImplFile: 0,\n        SectionID: 'Session',\n    },\n    {\n        CategoryID: 'Indication',\n        ComponentType: 'Message',\n        Volume: 3,\n        FIXMLFileName: 'indications',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PreTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'SingleGeneralOrderHandling',\n        ComponentType: 'Message',\n        Volume: 4,\n        FIXMLFileName: 'order',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Trade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'EventCommunication',\n        ComponentType: 'Message',\n        Volume: 3,\n        FIXMLFileName: 'newsevents',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PreTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'ProgramTrading',\n        ComponentType: 'Message',\n        Volume: 4,\n        FIXMLFileName: 'listorders',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Trade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'OrderMassHandling',\n        ComponentType: 'Message',\n        Volume: 4,\n        FIXMLFileName: 'ordermasshandling',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Trade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'Allocation',\n        ComponentType: 'Message',\n        Volume: 5,\n        FIXMLFileName: 'allocation',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PostTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'QuotationNegotiation',\n        ComponentType: 'Message',\n        Volume: 3,\n        FIXMLFileName: 'quotation',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PreTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'SettlementInstruction',\n        ComponentType: 'Message',\n        Volume: 5,\n        FIXMLFileName: 'settlement',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PostTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'MarketData',\n        ComponentType: 'Message',\n        Volume: 3,\n        FIXMLFileName: 'marketdata',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PreTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'Common',\n        ComponentType: 'Message',\n        Volume: 1,\n        FIXMLFileName: 'components',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        IncludeFile: 'fields',\n    },\n    {\n        CategoryID: 'RegistrationInstruction',\n        ComponentType: 'Message',\n        Volume: 3,\n        FIXMLFileName: 'registration',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PostTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'CrossOrders',\n        ComponentType: 'Message',\n        Volume: 4,\n        FIXMLFileName: 'crossorders',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Trade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'MultilegOrders',\n        ComponentType: 'Message',\n        Volume: 4,\n        FIXMLFileName: 'multilegorders',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Trade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'TradeCapture',\n        ComponentType: 'Message',\n        Volume: 5,\n        FIXMLFileName: 'tradecapture',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PostTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'Confirmation',\n        ComponentType: 'Message',\n        Volume: 5,\n        FIXMLFileName: 'confirmation',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PostTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'PositionMaintenance',\n        ComponentType: 'Message',\n        Volume: 5,\n        FIXMLFileName: 'positions',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PostTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'CollateralManagement',\n        ComponentType: 'Message',\n        Volume: 5,\n        FIXMLFileName: 'collateral',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PostTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'Application',\n        ComponentType: 'Message',\n        Volume: 1,\n        FIXMLFileName: 'application',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Infrastructure',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'BusinessReject',\n        ComponentType: 'Message',\n        Volume: 1,\n        FIXMLFileName: 'businessreject',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Infrastructure',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'Network',\n        ComponentType: 'Message',\n        Volume: 1,\n        FIXMLFileName: 'network',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Infrastructure',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'UserManagement',\n        ComponentType: 'Message',\n        Volume: 1,\n        FIXMLFileName: 'usermanagement',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'Infrastructure',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'Fields',\n        ComponentType: 'Field',\n        Volume: 6,\n        FIXMLFileName: 'fields',\n        NotReqXML: 0,\n        GenerateImplFile: 0,\n    },\n    {\n        CategoryID: 'ImplFields',\n        ComponentType: 'Field',\n        Volume: 6,\n        FIXMLFileName: 'fields',\n        NotReqXML: 0,\n        GenerateImplFile: 0,\n    },\n    {\n        CategoryID: 'MarketStructureReferenceData',\n        ComponentType: 'Message',\n        added: 'FIX.5.0SP1',\n        Volume: 3,\n        addedEP: 97,\n        FIXMLFileName: 'marketstructure',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PreTrade',\n        IncludeFile: 'components',\n    },\n    {\n        CategoryID: 'SecuritiesReferenceData',\n        ComponentType: 'Message',\n        added: 'FIX.5.0SP1',\n        Volume: 3,\n        addedEP: 97,\n        FIXMLFileName: 'securitiesreference',\n        NotReqXML: 0,\n        GenerateImplFile: 1,\n        SectionID: 'PreTrade',\n        IncludeFile: 'components',\n    },\n];\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { ISpecCategories } from '../../../spec/SpecCategories';\n\nexport class CategoryType {\n    public categoryID: string | null = null;\n    public fixmlFileName: string | null = null;\n    public notReqXML: boolean | null = null;\n    public generateImplFile: boolean | null = null;\n    public componentType: string | null = null;\n    public sectionID: string | null = null;\n    public volume: number | null = null;\n    public includeFile: string | null = null;\n\n    public setCategory(category: ISpecCategories): void {\n        this.categoryID = category.CategoryID;\n        this.fixmlFileName = category.FIXMLFileName;\n        this.notReqXML = category.NotReqXML === 1;\n        this.generateImplFile = category.GenerateImplFile === 1;\n        this.componentType = category.ComponentType;\n        this.sectionID = category.SectionID!;\n        this.volume = category.Volume;\n        this.includeFile = category.IncludeFile!;\n    }\n\n    public reset(): void {\n        this.categoryID = null;\n        this.fixmlFileName = null;\n        this.notReqXML = null;\n        this.generateImplFile = null;\n        this.componentType = null;\n        this.sectionID = null;\n        this.volume = null;\n        this.includeFile = null;\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { CATEGORIES, ISpecCategories } from '../../../spec/SpecCategories';\nimport { Field } from '../Field';\nimport { CategoryType } from './CategoryType';\n\nexport class Categories {\n    public categories: ISpecCategories[] = CATEGORIES;\n    public cacheMap: Map<string, ISpecCategories> = new Map<string, ISpecCategories>();\n    public categoryType: CategoryType = new CategoryType();\n\n    constructor() {\n        this.categories.forEach((category: ISpecCategories) => {\n            this.cacheMap.set(category.CategoryID, category);\n        });\n    }\n\n    public processCategory(field: Field, baseCategory: string): void {\n        this.categoryType.reset();\n        const categoryData: ISpecCategories | undefined = this.cacheMap.get(baseCategory);\n        if (categoryData) {\n            this.categoryType.setCategory(categoryData);\n            field.setCategory(this.categoryType);\n        }\n    }\n}\n", "export interface ISpecDatatypes {\n    Name: string;\n    BaseType?: string;\n    Description: string;\n    Example?: string;\n    XML?: {\n        BuiltIn: number;\n        Base: string;\n        MinInclusive?: number;\n        Pattern?: string;\n        Description?: string;\n        Example?: string | string[];\n    };\n    added: string;\n    addedEP?: number;\n    issue?: string;\n}\n\nexport const DATATYPES: ISpecDatatypes[] = [\n    {\n        Description:\n            'Sequence of digits without commas or decimals and optional sign character (ASCII characters \"-\" and \"0\" - \"9\" ). The sign character utilizes one byte (i.e. positive int is \"99999\" while negative int is \"-99999\"). Note that int values may contain leading zeros (e.g. \"00023\" = \"23\").\\nExamples:\\n723 in field 21 would be mapped int as |21=723|.\\n-723 in field 12 would be mapped int as |12=-723|\\nThe following data types are based on int.',\n        issue: 'SPEC-370',\n        added: 'FIX.2.7',\n        XML: {\n            Description:\n                'Sequence of digits without commas or decimals and optional sign character (ASCII characters \"-\" and \"0\" - \"9\" ). The sign character utilizes one byte (i.e. positive int is \"99999\" while negative int is \"-99999\"). Note that int values may contain leading zeros (e.g. \"00023\" = \"23\").\\nExamples:\\n723 in field 21 would be mapped int as |21=723|.\\n-723 in field 12 would be mapped int as |12=-723|\\nThe following data types are based on int.',\n            Base: 'xs:integer',\n            BuiltIn: 1,\n        },\n        Name: 'int',\n    },\n    {\n        Description: 'int field representing the length in bytes. Value must be positive.',\n        added: 'FIX.4.3',\n        BaseType: 'int',\n        XML: {\n            Description: 'int field representing the length in bytes. Value must be positive.',\n            Base: 'xs:nonNegativeInteger',\n            BuiltIn: 0,\n        },\n        Name: 'Length',\n    },\n    {\n        Description:\n            'int field representing a field\\'s tag number when using FIX \"Tag=Value\" syntax. Value must be positive and may not contain leading zeros.',\n        added: 'FIX.4.3',\n        BaseType: 'int',\n        Name: 'TagNum',\n    },\n    {\n        Description: 'int field representing a message sequence number. Value must be positive.',\n        added: 'FIX.4.3',\n        BaseType: 'int',\n        XML: {\n            Description: 'int field representing a message sequence number. Value must be positive.',\n            Base: 'xs:positiveInteger',\n            BuiltIn: 0,\n        },\n        Name: 'SeqNum',\n    },\n    {\n        Description: 'int field representing the number of entries in a repeating group. Value must be positive.',\n        added: 'FIX.4.3',\n        BaseType: 'int',\n        Name: 'NumInGroup',\n    },\n    {\n        Description: 'int field representing a day during a particular monthy (values 1 to 31).',\n        added: 'FIX.4.1',\n        BaseType: 'int',\n        Name: 'DayOfMonth',\n    },\n    {\n        Description:\n            'Sequence of digits with optional decimal point and sign character (ASCII characters \"-\", \"0\" - \"9\" and \".\"); the absence of the decimal point within the string will be interpreted as the float representation of an integer value. All float fields must accommodate up to fifteen significant digits. The number of decimal places used should be a factor of business/market needs and mutual agreement between counterparties. Note that float values may contain leading zeros (e.g. \"00023.23\" = \"23.23\") and may contain or omit trailing zeros after the decimal point (e.g. \"23.0\" = \"23.0000\" = \"23\" = \"23.\").\\nNote that fields which are derived from float may contain negative values unless explicitly specified otherwise. The following data types are based on float.',\n        added: 'FIX.2.7',\n        XML: {\n            Description:\n                'Sequence of digits with optional decimal point and sign character (ASCII characters \"-\", \"0\" - \"9\" and \".\"); the absence of the decimal point within the string will be interpreted as the float representation of an integer value. All float fields must accommodate up to fifteen significant digits. The number of decimal places used should be a factor of business/market needs and mutual agreement between counterparties. Note that float values may contain leading zeros (e.g. \"00023.23\" = \"23.23\") and may contain or omit trailing zeros after the decimal point (e.g. \"23.0\" = \"23.0000\" = \"23\" = \"23.\").\\nNote that fields which are derived from float may contain negative values unless explicitly specified otherwise. The following data types are based on float.',\n            Base: 'xs:decimal',\n            BuiltIn: 1,\n        },\n        Name: 'float',\n    },\n    {\n        Description:\n            'float field capable of storing either a whole number (no decimal places) of \"shares\" (securities denominated in whole units) or a decimal value containing decimal places for non-share quantity asset classes (securities denominated in fractional units).',\n        added: 'FIX.4.2',\n        BaseType: 'float',\n        XML: {\n            Description:\n                'float field capable of storing either a whole number (no decimal places) of \"shares\" (securities denominated in whole units) or a decimal value containing decimal places for non-share quantity asset classes (securities denominated in fractional units).',\n            Base: 'xs:decimal',\n            BuiltIn: 0,\n        },\n        Name: 'Qty',\n    },\n    {\n        Description:\n            'float field representing a price. Note the number of decimal places may vary. For certain asset classes prices may be negative values. For example, prices for options strategies can be negative under certain market conditions. Refer to Volume 7: FIX Usage by Product for asset classes that support negative price values.',\n        added: 'FIX.4.2',\n        BaseType: 'float',\n        XML: {\n            Description:\n                'float field representing a price. Note the number of decimal places may vary. For certain asset classes prices may be negative values. For example, prices for options strategies can be negative under certain market conditions. Refer to Volume 7: FIX Usage by Product for asset classes that support negative price values.',\n            Base: 'xs:decimal',\n            BuiltIn: 0,\n        },\n        Example: 'Strk=\"47.50\"',\n        Name: 'Price',\n    },\n    {\n        Description:\n            'float field representing a price offset, which can be mathematically added to a \"Price\". Note the number of decimal places may vary and some fields such as LastForwardPoints may be negative.',\n        added: 'FIX.4.2',\n        BaseType: 'float',\n        XML: {\n            Description:\n                'float field representing a price offset, which can be mathematically added to a \"Price\". Note the number of decimal places may vary and some fields such as LastForwardPoints may be negative.',\n            Base: 'xs:decimal',\n            BuiltIn: 0,\n        },\n        Name: 'PriceOffset',\n    },\n    {\n        Description: 'float field typically representing a Price times a Qty',\n        added: 'FIX.4.2',\n        BaseType: 'float',\n        XML: {\n            Description: 'float field typically representing a Price times a Qty',\n            Base: 'xs:decimal',\n            BuiltIn: 0,\n        },\n        Example: 'Amt=\"6847.00\"',\n        Name: 'Amt',\n    },\n    {\n        Description:\n            'float field representing a percentage (e.g. 0.05 represents 5% and 0.9525 represents 95.25%). Note the number of decimal places may vary.',\n        added: 'FIX.4.3',\n        BaseType: 'float',\n        XML: {\n            Description:\n                'float field representing a percentage (e.g. 0.05 represents 5% and 0.9525 represents 95.25%). Note the number of decimal places may vary.',\n            Base: 'xs:decimal',\n            BuiltIn: 0,\n        },\n        Name: 'Percentage',\n    },\n    {\n        Description:\n            'Single character value, can include any alphanumeric character or punctuation except the delimiter. All char fields are case sensitive (i.e. m != M).\\nThe following fields are based on char.',\n        added: 'FIX.2.7',\n        XML: {\n            Pattern: '.{1}',\n            Description:\n                'Single character value, can include any alphanumeric character or punctuation except the delimiter. All char fields are case sensitive (i.e. m != M).\\nThe following fields are based on char.',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Name: 'char',\n    },\n    {\n        Description: \"char field containing one of two values:\\n'Y' = True/Yes\\n'N' = False/No\",\n        added: 'FIX.4.2',\n        BaseType: 'char',\n        XML: {\n            Pattern: '[YN]{1}',\n            Description: \"char field containing one of two values:\\n'Y' = True/Yes\\n'N' = False/No\",\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Name: 'Boolean',\n    },\n    {\n        Description:\n            'Alpha-numeric free format strings, can include any character or punctuation except the delimiter. All String fields are case sensitive (i.e. morstatt != Morstatt).',\n        added: 'FIX.4.2',\n        XML: {\n            Description:\n                'Alpha-numeric free format strings, can include any character or punctuation except the delimiter. All String fields are case sensitive (i.e. morstatt != Morstatt).',\n            Base: 'xs:string',\n            BuiltIn: 1,\n        },\n        Name: 'String',\n    },\n    {\n        Description: 'string field containing one or more space delimited single character values (e.g. |18=2 A F| ).',\n        added: 'FIX.4.4',\n        BaseType: 'String',\n        XML: {\n            Pattern: '[A-Za-z0-9](\\\\s[A-Za-z0-9])*',\n            Description:\n                'string field containing one or more space delimited single character values (e.g. |18=2 A F| ).',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Name: 'MultipleCharValue',\n    },\n    {\n        Description:\n            'string field containing one or more space delimited multiple character values (e.g. |277=AV AN A| ).',\n        added: 'FIX.4.2',\n        BaseType: 'String',\n        XML: {\n            Pattern: '.+(\\\\s.+)*',\n            Description:\n                'string field containing one or more space delimited multiple character values (e.g. |277=AV AN A| ).',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Name: 'MultipleStringValue',\n    },\n    {\n        Description:\n            'string field representing a country using ISO 3166 Country code (2 character) values (see Appendix 6-B).',\n        added: 'FIX.4.4',\n        BaseType: 'String',\n        XML: {\n            Pattern: '.{2}',\n            Description:\n                'string field representing a country using ISO 3166 Country code (2 character) values (see Appendix 6-B).',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Name: 'Country',\n    },\n    {\n        Description:\n            'string field representing a currency type using ISO 4217 Currency code (3 character) values (see Appendix 6-A).',\n        added: 'FIX.4.2',\n        BaseType: 'String',\n        XML: {\n            Pattern: '.{3}',\n            Description:\n                'string field representing a currency type using ISO 4217 Currency code (3 character) values (see Appendix 6-A).',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Example: 'StrkCcy=\"USD\"',\n        Name: 'Currency',\n    },\n    {\n        Description:\n            'string field representing a market or exchange using ISO 10383 Market Identifier Code (MIC) values (see\"Appendix 6-C).',\n        added: 'FIX.4.2',\n        BaseType: 'String',\n        XML: {\n            Pattern: '.*',\n            Description:\n                'string field representing a market or exchange using ISO 10383 Market Identifier Code (MIC) values (see\"Appendix 6-C).',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Name: 'Exchange',\n    },\n    {\n        Description:\n            'string field representing month of a year. An optional day of the month can be appended or an optional week code.\\nValid formats:\\nYYYYMM\\nYYYYMMDD\\nYYYYMMWW\\nValid values:\\nYYYY = 0000-9999; MM = 01-12; DD = 01-31; WW = w1, w2, w3, w4, w5.',\n        added: 'FIX.4.1',\n        BaseType: 'String',\n        XML: {\n            Pattern: '\\\\d{4}(0|1)\\\\d([0-3wW]\\\\d)?',\n            Description:\n                'string field representing month of a year. An optional day of the month can be appended or an optional week code.\\nValid formats:\\nYYYYMM\\nYYYYMMDD\\nYYYYMMWW\\nValid values:\\nYYYY = 0000-9999; MM = 01-12; DD = 01-31; WW = w1, w2, w3, w4, w5.',\n            Example: 'MonthYear=\"200303\",  MonthYear=\"20030320\", MonthYear=\"200303w2\"',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Example: 'MonthYear=\"200303\",  MonthYear=\"20030320\", MonthYear=\"200303w2\"',\n        Name: 'MonthYear',\n    },\n    {\n        Description:\n            'string field representing Time/date combination represented in UTC (Universal Time Coordinated, also known as \"GMT\") in either YYYYMMDD-HH:MM:SS (whole seconds) or YYYYMMDD-HH:MM:SS.sss (milliseconds) format, colons, dash, and period required.\\nValid values:\\n* YYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second) (without milliseconds).\\n* YYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second), sss=000-999 (indicating milliseconds).\\nLeap Seconds: Note that UTC includes corrections for leap seconds, which are inserted to account for slowing of the rotation of the earth. Leap second insertion is declared by the International Earth Rotation Service (IERS) and has, since 1972, only occurred on the night of Dec. 31 or Jun 30. The IERS considers March 31 and September 30 as secondary dates for leap second insertion, but has never utilized these dates. During a leap second insertion, a UTCTimestamp field may read \"19981231-23:59:59\", \"19981231-23:59:60\", \"19990101-00:00:00\". (see http://tycho.usno.navy.mil/leapsec.html)',\n        added: 'FIX.4.2',\n        BaseType: 'String',\n        XML: {\n            Description:\n                'string field representing Time/date combination represented in UTC (Universal Time Coordinated, also known as \"GMT\") in either YYYY-MM-DDTHH:MM:SS (whole seconds) or YYYY-MM-DDTHH:MM:SS.sss (milliseconds) format as specified in ISO 8601.\\nValid values:\\n* YYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second) (without milliseconds).\\n* YYYY = 0000-9999, MM = 01-12, DD = 01-31, HH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second), sss=000-999 (indicating milliseconds).\\nLeap Seconds: Note that UTC includes corrections for leap seconds, which are inserted to account for slowing of the rotation of the earth. Leap second insertion is declared by the International Earth Rotation Service (IERS) and has, since 1972, only occurred on the night of Dec. 31 or Jun 30. The IERS considers March 31 and September 30 as secondary dates for leap second insertion, but has never utilized these dates. During a leap second insertion, a UTCTimestamp field may read \"1998-12-31T23:59:59\", \"1998-12-31T23:59:60\", \"1999-01-01T00:00:00\". (see http://tycho.usno.navy.mil/leapsec.html)',\n            Example: 'TransactTm=\"2001-12-17T09:30:47-05:00\"',\n            Base: 'xs:dateTime',\n            BuiltIn: 0,\n        },\n        Example: 'TransactTm=\"20011217-09:30:47\"',\n        Name: 'UTCTimestamp',\n    },\n    {\n        Description:\n            'string field representing Time-only represented in UTC (Universal Time Coordinated, also known as \"GMT\") in either HH:MM:SS (whole seconds) or HH:MM:SS.sss (milliseconds) format, colons, and period required. This special-purpose field is paired with UTCDateOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.\\nValid values:\\nHH = 00-23, MM = 00-60 (60 only if UTC leap second), SS = 00-59. (without milliseconds)\\nHH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second), sss=000-999 (indicating milliseconds).',\n        added: 'FIX.4.2',\n        BaseType: 'String',\n        XML: {\n            Description:\n                'string field representing Time-only represented in UTC (Universal Time Coordinated, also known as \"GMT\") in either HH:MM:SS (whole seconds) or HH:MM:SS.sss (milliseconds) format as specified in ISO 8601. This special-purpose field is paired with UTCDateOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.\\nValid values:\\nHH = 00-23, MM = 00-60 (60 only if UTC leap second), SS = 00-59. (without milliseconds)\\nHH = 00-23, MM = 00-59, SS = 00-60 (60 only if UTC leap second), sss=000-999 (indicating milliseconds).',\n            Example: 'MDEntryTime=\"13:20:00.000\"',\n            Base: 'xs:time',\n            BuiltIn: 0,\n        },\n        Example: 'MDEntryTime=\"13:20:00.000\"',\n        Name: 'UTCTimeOnly',\n    },\n    {\n        Description:\n            'string field representing Date represented in UTC (Universal Time Coordinated, also known as \"GMT\") in YYYYMMDD format. This special-purpose field is paired with UTCTimeOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31.',\n        added: 'FIX.4.4',\n        BaseType: 'String',\n        XML: {\n            Description:\n                'string field representing Date represented in UTC (Universal Time Coordinated, also known as \"GMT\") in YYYY-MM-DD format specifed in ISO 8601. This special-purpose field is paired with UTCTimeOnly to form a proper UTCTimestamp for bandwidth-sensitive messages.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31.',\n            Example: 'MDEntryDate=\"2003-09-10\"',\n            Base: 'xs:date',\n            BuiltIn: 0,\n        },\n        Example: 'MDEntryDate=\"20030910\"',\n        Name: 'UTCDateOnly',\n    },\n    {\n        Description:\n            'string field represening a Date of Local Market (as oppose to UTC) in YYYYMMDD format. This is the \"normal\" date field used by the FIX Protocol.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31.',\n        added: 'FIX.4.2',\n        BaseType: 'String',\n        XML: {\n            Description:\n                'string field represening a Date of Local Market (as oppose to UTC) in YYYY-MM-DD format per the ISO 8601 standard. This is the \"normal\" date field used by the FIX Protocol.\\nValid values:\\nYYYY = 0000-9999, MM = 01-12, DD = 01-31.',\n            Example: 'BizDate=\"2003-09-10\"',\n            Base: 'xs:date',\n            BuiltIn: 0,\n        },\n        Example: 'BizDate=\"2003-09-10\"',\n        Name: 'LocalMktDate',\n    },\n    {\n        Description:\n            'string field representing the time represented based on ISO 8601. This is the time with a UTC offset to allow identification of local time and timezone of that time.\\nFormat is HH:MM[:SS][Z | [ + | - hh[:mm]]] where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes.\\nExample: 07:39Z is 07:39 UTC\\nExample: 02:39-05 is five hours behind UTC, thus Eastern Time\\nExample: 15:39+08 is eight hours ahead of UTC, Hong Kong/Singapore time\\nExample: 13:09+05:30 is 5.5 hours ahead of UTC, India time',\n        added: 'FIX.4.4',\n        BaseType: 'String',\n        XML: {\n            Description:\n                'string field representing the time represented based on ISO 8601. This is the time with a UTC offset to allow identification of local time and timezone of that time.\\nFormat is HH:MM[:SS][Z | [ + | - hh[:mm]]] where HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes.',\n            Example: [\n                'MatTm=\"07:39Z\" is 07:39 UTC',\n                'MatTm=\"02:39-05\" is five hours behind UTC, thus Eastern Time',\n                'MatTm=\"15:39+08\" is eight hours ahead of UTC, Hong Kong/Singapore time',\n                'MatTm=\"13:09+05:30\" is 5.5 hours ahead of UTC, India time',\n            ],\n            Base: 'xs:time',\n            BuiltIn: 0,\n        },\n        addedEP: -1,\n        Name: 'TZTimeOnly',\n    },\n    {\n        Description:\n            'string field representing a time/date combination representing local time with an offset to UTC to allow identification of local time and timezone offset of that time. The representation is based on ISO 8601.\\nFormat is YYYYMMDD-HH:MM:SS[Z | [ + | - hh[:mm]]] where YYYY = 0000 to 9999, MM = 01-12, DD = 01-31 HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes\\nExample: 20060901-07:39Z is 07:39 UTC on 1st of September 2006\\nExample: 20060901-02:39-05 is five hours behind UTC, thus Eastern Time on 1st of September 2006\\nExample: 20060901-15:39+08 is eight hours ahead of UTC, Hong Kong/Singapore time on 1st of September 2006\\nExample: 20060901-13:09+05:30 is 5.5 hours ahead of UTC, India time on 1st of September 2006',\n        added: 'FIX.4.4',\n        BaseType: 'String',\n        XML: {\n            Description:\n                'string field representing a time/date combination representing local time with an offset to UTC to allow identification of local time and timezone offset of that time. The representation is based on ISO 8601.\\nFormat is YYYYMMDD-HH:MM:SS[Z | [ + | - hh[:mm]]] where YYYY = 0000 to 9999, MM = 01-12, DD = 01-31 HH = 00-23 hours, MM = 00-59 minutes, SS = 00-59 seconds, hh = 01-12 offset hours, mm = 00-59 offset minutes.',\n            Example: [\n                'TZTransactTime=\"2006-09-01T07:39Z\" is 07:39 UTC on 1st of September 2006',\n                'TZTransactTime=\"2006-09-01T02:39-05\" is five hours behind UTC, thus Eastern Time on 1st of September 2006',\n                'TZTransactTime=\"2006-09-01T15:39+08\" is eight hours ahead of UTC, Hong Kong/Singapore time on 1st of September 2006',\n                'TZTransactTime=\"2006-09-01T13:09+05:30\" is 5.5 hours ahead of UTC, India time on 1st of September 2006',\n            ],\n            Base: 'xs:dateTime',\n            BuiltIn: 0,\n        },\n        addedEP: -1,\n        Name: 'TZTimestamp',\n    },\n    {\n        Description:\n            'string field containing raw data with no format or content restrictions. Data fields are always immediately preceded by a length field. The length field should specify the number of bytes of the value of the data field (up to but not including the terminating SOH).\\nCaution: the value of one of these fields may contain the delimiter (SOH) character. Note that the value specified for this field should be followed by the delimiter (SOH) character as all fields are terminated with an \"SOH\".',\n        added: 'FIX.2.7',\n        BaseType: 'String',\n        XML: {\n            Description:\n                'string field containing raw data with no format or content restrictions. Data fields are always immediately preceded by a length field. The length field should specify the number of bytes of the value of the data field (up to but not including the terminating SOH).\\nCaution: the value of one of these fields may contain the delimiter (SOH) character. Note that the value specified for this field should be followed by the delimiter (SOH) character as all fields are terminated with an \"SOH\".',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        Name: 'data',\n    },\n    {\n        Description:\n            'Used to build on and provide some restrictions on what is allowed as valid values in fields that uses a base FIX data type and a pattern data type. The universe of allowable valid values for the field would then be the union of the base set of valid values and what is defined by the pattern data type. The pattern data type used by the field will retain its base FIX data type (e.g. String, int, char).',\n        added: 'FIX.4.4',\n        addedEP: -1,\n        Name: 'Pattern',\n    },\n    {\n        Description:\n            'used to allow the expression of FX standard tenors in addition to the base valid enumerations defined for the field that uses this pattern data type. This pattern data type is defined as follows:\\nDx = tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer > 0\\nMx = tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer > 0\\nWx = tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer > 0\\nYx = tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer > 0',\n        added: 'FIX.4.4',\n        BaseType: 'Pattern',\n        XML: {\n            Pattern: '[DMWY](\\\\d)+',\n            Description:\n                'used to allow the expression of FX standard tenors in addition to the base valid enumerations defined for the field that uses this pattern data type. This pattern data type is defined as follows:\\nDx = tenor expression for \"days\", e.g. \"D5\", where \"x\" is any integer > 0\\nMx = tenor expression for \"months\", e.g. \"M3\", where \"x\" is any integer > 0\\nWx = tenor expression for \"weeks\", e.g. \"W13\", where \"x\" is any integer > 0\\nYx = tenor expression for \"years\", e.g. \"Y1\", where \"x\" is any integer > 0',\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        addedEP: -1,\n        Name: 'Tenor',\n    },\n    {\n        Description: 'Values \"100\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n        added: 'FIX.4.4',\n        BaseType: 'Pattern',\n        XML: {\n            MinInclusive: 100,\n            Description: 'Values \"100\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n            Base: 'xs:integer',\n            BuiltIn: 0,\n        },\n        addedEP: -1,\n        Name: 'Reserved100Plus',\n    },\n    {\n        Description: 'Values \"1000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n        added: 'FIX.4.4',\n        BaseType: 'Pattern',\n        XML: {\n            MinInclusive: 1000,\n            Description: 'Values \"1000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n            Base: 'xs:integer',\n            BuiltIn: 0,\n        },\n        addedEP: -1,\n        Name: 'Reserved1000Plus',\n    },\n    {\n        Description: 'Values \"4000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n        added: 'FIX.4.4',\n        BaseType: 'Pattern',\n        XML: {\n            MinInclusive: 4000,\n            Description: 'Values \"4000\" and above are reserved for bilaterally agreed upon user defined enumerations.',\n            Base: 'xs:integer',\n            BuiltIn: 0,\n        },\n        addedEP: -1,\n        Name: 'Reserved4000Plus',\n    },\n    {\n        Description:\n            'Contains an XML document raw data with no format or content restrictions. XMLData fields are always immediately preceded by a length field. The length field should specify the number of bytes of the value of the data field (up to but not including the terminating SOH).',\n        added: 'FIX.5.0',\n        BaseType: 'String',\n        XML: {\n            Base: 'xs:string',\n            BuiltIn: 0,\n        },\n        addedEP: -1,\n        Name: 'XMLData',\n    },\n    {\n        Description: 'Identifier for a national language - uses ISO 639-1 standard',\n        added: 'FIX.5.0SP1',\n        BaseType: 'String',\n        XML: {\n            Base: 'xs:language',\n            BuiltIn: 1,\n        },\n        Example: 'en (English), es (spanish), etc.',\n        addedEP: 90,\n        Name: 'Language',\n    },\n];\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { ISpecDatatypes } from '../../../spec/SpecDatatypes';\n\nexport class FieldType {\n    public name: string | null = null;\n    public baseType: string | null = null;\n    public description: string | null = null;\n    public added: string | null = null;\n\n    constructor() {\n        this.reset();\n    }\n\n    public setType(type: ISpecDatatypes): void {\n        this.name = type.Name;\n        this.baseType = type.BaseType!;\n        this.description = type.Description;\n        this.added = type.added!;\n    }\n\n    public reset(): void {\n        this.name = null;\n        this.baseType = null;\n        this.description = null;\n        this.added = null;\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { DATATYPES, ISpecDatatypes } from '../../../spec/SpecDatatypes';\nimport { Field } from '../Field';\nimport { FieldType } from './FieldType';\n\nexport class DataTypes {\n    public dataTypes: ISpecDatatypes[] = DATATYPES;\n    public cacheMap: Map<string, ISpecDatatypes> = new Map<string, ISpecDatatypes>();\n    public cacheTypeMap: Map<string, typeof parseInt | typeof parseFloat | StringConstructor> = new Map<string, any>();\n    public fieldType: FieldType = new FieldType();\n\n    constructor() {\n        this.dataTypes.forEach((item: ISpecDatatypes) => {\n            this.cacheMap.set(item.Name, item);\n        });\n\n        this.cacheTypeMap.set('int', parseInt);\n        this.cacheTypeMap.set('Length', parseInt);\n        this.cacheTypeMap.set('TagNum', parseInt);\n        this.cacheTypeMap.set('SeqNum', parseInt);\n        this.cacheTypeMap.set('NumInGroup', parseInt);\n        this.cacheTypeMap.set('DayOfMonth', parseInt);\n\n        this.cacheTypeMap.set('float', parseFloat);\n        this.cacheTypeMap.set('Qty', parseFloat);\n        this.cacheTypeMap.set('Price', parseFloat);\n        this.cacheTypeMap.set('PriceOffset', parseFloat);\n        this.cacheTypeMap.set('Amt', parseFloat);\n        this.cacheTypeMap.set('Percentage', parseFloat);\n\n        this.cacheTypeMap.set('char', String);\n        this.cacheTypeMap.set('Boolean', String);\n\n        this.cacheTypeMap.set('String', String);\n        this.cacheTypeMap.set('MultipleCharValue', String);\n        this.cacheTypeMap.set('MultipleStringValue', String);\n        this.cacheTypeMap.set('Country', String);\n        this.cacheTypeMap.set('Currency', String);\n        this.cacheTypeMap.set('Exchange', String);\n        this.cacheTypeMap.set('MonthYear', String);\n        this.cacheTypeMap.set('UTCTimestamp', String);\n        this.cacheTypeMap.set('UTCTimeOnly', String);\n        this.cacheTypeMap.set('UTCDateOnly', String);\n        this.cacheTypeMap.set('LocalMktDate', String);\n        this.cacheTypeMap.set('TZTimeOnly', String);\n        this.cacheTypeMap.set('TZTimestamp', String);\n        this.cacheTypeMap.set('data', String);\n        this.cacheTypeMap.set('XMLData', String);\n        this.cacheTypeMap.set('Language', String);\n\n        this.cacheTypeMap.set('Pattern', String);\n        this.cacheTypeMap.set('Tenor', String);\n        this.cacheTypeMap.set('Reserved100Plus', String);\n        this.cacheTypeMap.set('Reserved1000Plus', String);\n        this.cacheTypeMap.set('Reserved4000Plus', String);\n    }\n\n    public processDatatype(field: Field, type: string): void {\n        this.fieldType.reset();\n        const dataType: ISpecDatatypes | undefined = this.cacheMap.get(type);\n        if (dataType) {\n            this.fieldType.setType(dataType);\n            field.setType(this.fieldType);\n            if (\n                type === 'int' ||\n                type === 'Length' ||\n                type === 'TagNum' ||\n                type === 'SeqNum' ||\n                type === 'NumInGroup' ||\n                type === 'DayOfMonth'\n            ) {\n                field.setValue(Number(field.value!));\n            } else if (\n                type === 'float' ||\n                type === 'Qty' ||\n                type === 'Price' ||\n                type === 'PriceOffset' ||\n                type === 'Amt' ||\n                type === 'Percentage'\n            ) {\n                field.setValue(parseFloat(field.value as string));\n            }\n        }\n    }\n}\n", "export interface ISpecSections {\n    SectionID: string;\n    Name: string;\n    DisplayOrder: number;\n    Volume: string;\n    NotReqXML: number;\n    FIXMLFileName: string;\n    Description: string;\n}\n\nexport const SECTIONS: ISpecSections[] = [\n    {\n        DisplayOrder: 0,\n        Description: 'Session level messages to establish and control a FIX session',\n        Volume: 'FIXT.1.1',\n        FIXMLFileName: 'session',\n        NotReqXML: 1,\n        SectionID: 'Session',\n        Name: 'Session',\n    },\n    {\n        DisplayOrder: 1,\n        Description:\n            'Pre trade messages including reference data, market data, quoting, news and email, indication of interest',\n        Volume: '3',\n        FIXMLFileName: 'pretrade',\n        NotReqXML: 0,\n        SectionID: 'PreTrade',\n        Name: 'PreTrade',\n    },\n    {\n        DisplayOrder: 2,\n        Description: 'Order handling and execution messages',\n        Volume: '4',\n        FIXMLFileName: 'trade',\n        NotReqXML: 0,\n        SectionID: 'Trade',\n        Name: 'Trade',\n    },\n    {\n        DisplayOrder: 3,\n        Description:\n            'Post trade messages including trade reporting, allocation, collateral, confirmation, position maintenance, registration instruction, and settlement instructions',\n        Volume: '5',\n        FIXMLFileName: 'posttrade',\n        NotReqXML: 0,\n        SectionID: 'PostTrade',\n        Name: 'PostTrade',\n    },\n    {\n        DisplayOrder: 4,\n        Description: 'Infrastructure messages for application sequencing, business reject, network and user management',\n        Volume: '1',\n        FIXMLFileName: 'infrastructure',\n        NotReqXML: 0,\n        SectionID: 'Infrastructure',\n        Name: 'Infrastructure',\n    },\n];\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { ISpecSections } from '../../../spec/SpecSections';\n\nexport class SectionType {\n    public sectionID: string | null = null;\n    public name: string | null = null;\n    public displayOrder: number | null = null;\n    public volume: string | null = null;\n    public notReqXML: boolean | null = null;\n    public fixmlFileName: string | null = null;\n    public description: string | null = null;\n\n    public setSection(section: ISpecSections): void {\n        this.sectionID = section.SectionID;\n        this.name = section.Name;\n        this.displayOrder = section.DisplayOrder;\n        this.volume = section.Volume;\n        this.notReqXML = section.NotReqXML === 1;\n        this.fixmlFileName = section.FIXMLFileName;\n        this.description = section.Description;\n    }\n\n    public reset(): void {\n        this.sectionID = null;\n        this.name = null;\n        this.displayOrder = null;\n        this.volume = null;\n        this.notReqXML = null;\n        this.fixmlFileName = null;\n        this.description = null;\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { ISpecSections, SECTIONS } from '../../../spec/SpecSections';\nimport { Field } from '../Field';\nimport { SectionType } from './SectionType';\n\nexport class Sections {\n    public sections: ISpecSections[] = SECTIONS;\n    public cacheMap: Map<string, ISpecSections> = new Map<string, ISpecSections>();\n    public sectionType: SectionType = new SectionType();\n\n    constructor() {\n        this.sections.forEach((section) => {\n            this.cacheMap.set(section.SectionID, section);\n        });\n    }\n\n    public processSection(item: Field, sectionId: string): void {\n        this.sectionType.reset();\n        const sectionData: ISpecSections | undefined = this.cacheMap.get(sectionId);\n        if (sectionData) {\n            this.sectionType.setSection(sectionData);\n            item.setSection(this.sectionType);\n        }\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { FIELDS, ISpecFields } from '../../spec/SpecFields';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { Message } from '../message/Message';\nimport { Messages } from '../messages/Messages';\nimport { Categories } from './categories/Categories';\nimport { DataTypes } from './datatypes/Datatypes';\nimport { Field } from './Field';\nimport { Sections } from './sections/Sections';\n\nexport class Fields {\n    public fields: ISpecFields[] = FIELDS;\n    public cacheMap: Map<number, ISpecFields> = new Map<number, ISpecFields>();\n    public messages: Messages = new Messages();\n    public categories: Categories = new Categories();\n    public sections: Sections = new Sections();\n    public dataTypes: DataTypes = new DataTypes();\n\n    constructor() {\n        this.fields.forEach((item: ISpecFields) => {\n            this.cacheMap.set(Number(item.Tag) >> 0, item);\n        });\n    }\n\n    public processField(message: Message, field: Field): void {\n        const data: ISpecFields | undefined = this.cacheMap.get(field.tag);\n        if (data) {\n            if (field.tag === FieldEnum.MsgType) {\n                this.messages.setMessageType(message, field);\n            }\n            if (field.tag === FieldEnum.MsgSeqNum) {\n                this.messages.setMessageSequence(message, Number(field.value));\n            }\n\n            field.setName(data.Name);\n            field.setDescription(data.Description);\n\n            if (data.BaseCategory) {\n                this.categories.processCategory(field, data.BaseCategory);\n\n                if (field.category!.sectionID) {\n                    this.sections.processSection(field, field.category!.sectionID);\n                }\n            }\n\n            this.dataTypes.processDatatype(field, data.Type);\n        } else {\n            field.setType(null);\n            field.setValue(field.value);\n        }\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nexport type Version = {\n    version: string;\n    build: string;\n};\n\ndeclare global {\n    const __PACKAGE_VERSION__: string;\n    const __BUILD_TIME__: string;\n}\n\nexport const version: Version = {\n    version: __PACKAGE_VERSION__,\n    build: __BUILD_TIME__,\n};\n\nexport type Parser = 'FIXServer' | 'FIXParser' | 'FIXParserBrowser';\nexport const DEFAULT_FIX_VERSION: string = 'FIX.5.0SP2';\nexport const DEFAULT_HEARTBEAT_SECONDS: number = 30;\nexport const SOH: string = '\\x01';\nexport const STRING_EQUALS: string = '=';\nexport const RE_ESCAPE: RegExp = /[.*+?^${}()|[\\]\\\\]/g;\nexport const RE_FIND: RegExp = /8=FIXT?\\.\\d\\.\\d([^\\d]+)/i;\nexport const READY_MS: number = 100;\n\ntype LoggingSettings = {\n    enabled: boolean;\n};\n\nexport const loggingSettings: LoggingSettings = {\n    enabled: true,\n};\n\nconst logTimestamp = (): string => {\n    const date: Date = new Date();\n    return `${date\n        .toLocaleString('en-us', { year: 'numeric', month: '2-digit', day: '2-digit' })\n        .replace(/(\\d+)\\/(\\d+)\\/(\\d+)/, '$3$1$2')}-${String(date.getHours()).padStart(2, '0')}:${String(\n        date.getMinutes(),\n    ).padStart(2, '0')}:${String(date.getSeconds()).padStart(2, '0')}.${String(date.getMilliseconds()).padEnd(9, '0')}`;\n};\n\nexport const log = (...args: unknown[]): void | null =>\n    loggingSettings.enabled ? console.log(`[${logTimestamp()}]`, ...args) : null;\nexport const logWarning = (...args: unknown[]): void | null =>\n    loggingSettings.enabled ? console.warn(`[${logTimestamp()}]`, ...args) : null;\nexport const logError = (...args: unknown[]): void | null =>\n    loggingSettings.enabled ? console.error(`[${logTimestamp()}]`, ...args) : null;\nexport const logInfo = (...args: unknown[]): void | null =>\n    loggingSettings.enabled ? console.info(`[${logTimestamp()}]`, ...args) : null;\n\nexport const pad = (value: number, size: number): string => {\n    const paddedString = `00${value}`;\n    return paddedString.substr(paddedString.length - size);\n};\n\nexport const adjustForTimezone = (date: Date): Date => {\n    const timeOffsetInMS: number = date.getTimezoneOffset() * 60000;\n    date.setTime(date.getTime() + timeOffsetInMS);\n    return date;\n};\n\nexport const timestamp = (dateObject: Date): string => {\n    if (isNaN(dateObject.getTime())) {\n        logError('Invalid date specified!');\n    }\n    const date: Date = adjustForTimezone(dateObject);\n    return `${date.getFullYear()}${pad(date.getMonth() + 1, 2)}${pad(date.getDate(), 2)}-${pad(\n        date.getHours(),\n        2,\n    )}:${pad(date.getMinutes(), 2)}:${pad(date.getSeconds(), 2)}.${pad(date.getMilliseconds(), 3)}`;\n};\n\nexport const parseUTCTimestamp = (dateString: string): Date | string => {\n    if (!dateString || dateString === '') {\n        logError('Invalid date specified!');\n    }\n    let date: Date | null = null;\n    if (dateString.length === 17) {\n        // 20011217-09:30:47\n        date = new Date(\n            Date.UTC(\n                Number(dateString.substring(0, 4)), // 2001\n                Number(dateString.substring(4, 6)) - 1, // 12\n                Number(dateString.substring(6, 8)), // 17\n                Number(dateString.substring(9, 11)), // 09\n                Number(dateString.substring(12, 14)), // 30\n                Number(dateString.substring(15, 17)), // 47\n            ),\n        );\n    } else if (dateString.length === 21) {\n        // 20011217-09:30:47.123\n        date = new Date(\n            Date.UTC(\n                Number(dateString.substring(0, 4)), // 2001\n                Number(dateString.substring(4, 6)) - 1, // 12\n                Number(dateString.substring(6, 8)), // 17\n                Number(dateString.substring(9, 11)), // 09\n                Number(dateString.substring(12, 14)), // 30\n                Number(dateString.substring(15, 17)), // 47\n                Number(dateString.substring(18, 21)), // 123\n            ),\n        );\n    } else if (dateString.length === 25) {\n        // 2001-12-17T09:30:47-05:00\n        date = new Date(\n            Date.UTC(\n                Number(dateString.substring(0, 4)), // 2001\n                Number(dateString.substring(5, 7)) - 1, // 12\n                Number(dateString.substring(8, 10)), // 17\n                Number(dateString.substring(11, 13)), // 09\n                Number(dateString.substring(14, 16)), // 30\n                Number(dateString.substring(17, 19)), // 47\n            ),\n        );\n    } else if (dateString.length === 29) {\n        // 2001-12-17T09:30:47.123-05:00\n        date = new Date(\n            Date.UTC(\n                Number(dateString.substring(0, 4)), // 2001\n                Number(dateString.substring(5, 7)) - 1, // 12\n                Number(dateString.substring(8, 10)), // 17\n                Number(dateString.substring(11, 13)), // 09\n                Number(dateString.substring(14, 16)), // 30\n                Number(dateString.substring(17, 19)), // 47\n                Number(dateString.substring(20, 23)), // 123\n            ),\n        );\n    }\n    if (date !== null && !isNaN(date.getTime())) {\n        return date;\n    } else {\n        return dateString;\n    }\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { ISpecEnums } from '../../spec/SpecEnums';\nimport { ISpecMessageContents } from '../../spec/SpecMessageContents';\nimport { Enums } from '../enums/Enums';\nimport { Field } from '../fields/Field';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { DEFAULT_FIX_VERSION, pad, SOH } from '../util/util';\n\nconst TAG_CHECKSUM: string = '10=';\nconst TAG_MSGTYPE: string = '35=';\nconst MARKER_BODYLENGTH: string = '\\x02';\nconst MARKER_CHECKSUM: string = '\\x03';\n\ninterface IMessageContents {\n    componentID: string;\n    tagText: string;\n    indent: string;\n    position: string;\n    reqd: string;\n    description?: string;\n    updated?: string;\n    updatedEP?: string;\n    added: string;\n    addedEP?: string;\n    issue?: string;\n    deprecated?: string;\n\n    // Dynamic types\n    components?: IMessageContent[];\n    validated?: boolean;\n}\n\ninterface IMessageContent {\n    field: Field;\n    hasValue: boolean;\n    position: number;\n    reqd: string;\n    spec: any;\n    tagText: number;\n    valid: boolean;\n\n    // Dynamic types\n    validated?: boolean;\n}\n\ntype FieldValues = {\n    [tag: string]: any;\n};\n\nconst explain = (field: Field) => field.enumeration?.symbolicName || field.value;\nconst setFieldValue = (field: Field, values: FieldValues, useSymbolicName: boolean = false): void => {\n    if (values[field.name!]) {\n        if (Array.isArray(values[field.name!])) {\n            values[field.name!] = [...values[field.name!], useSymbolicName ? explain(field) : field.value];\n        } else {\n            values[field.name!] = [values[field.name!], useSymbolicName ? explain(field) : field.value];\n        }\n    } else {\n        values[field.name!] = useSymbolicName ? explain(field) : field.value;\n    }\n};\n\nexport class Message {\n    public fixVersion: string = DEFAULT_FIX_VERSION;\n    public data: Field[] = [];\n    public messageString: string = '';\n    public description: string = '';\n    public messageType: string = '';\n    public messageSequence: number = -1;\n    public messageContents: ISpecMessageContents[] = [];\n    public bodyLengthValid: boolean = false;\n    public checksumValid: boolean = false;\n    public checksumValue: string | null = null;\n    public checksumExpected: string | null = null;\n    public bodyLengthValue: number | null = null;\n    public bodyLengthExpected: number | null = null;\n\n    constructor(fixVersion: string = DEFAULT_FIX_VERSION, ...fields: Field[]) {\n        this.fixVersion = fixVersion;\n        this.reset();\n\n        // Add other tags\n        fields.forEach((field: Field) => {\n            if (field.tag === FieldEnum.BeginString) {\n                this.fixVersion = String(field.value);\n            }\n            if (field.tag === FieldEnum.MsgSeqNum) {\n                this.setMessageSequence(Number(field.value));\n            }\n\n            if (field.tag === FieldEnum.MsgType) {\n                this.data.splice(0, 0, field);\n            } else {\n                this.data.push(field);\n            }\n        });\n    }\n\n    #calculateBodyLength = (value: string): number => {\n        const startLength: number = value.indexOf(TAG_MSGTYPE) === -1 ? 0 : value.indexOf(TAG_MSGTYPE) + 1;\n        const endLength: number =\n            value.lastIndexOf(TAG_CHECKSUM) === -1 ? value.length : value.lastIndexOf(TAG_CHECKSUM) + 1;\n\n        return endLength - startLength;\n    };\n\n    #calculateChecksum = (value: string): string => {\n        let integerValues: number = 0;\n\n        let i: number = 0;\n        for (i; i < value.length; i++) {\n            integerValues += value.charCodeAt(i);\n        }\n\n        return pad(integerValues & 255, 3);\n    };\n\n    #calculatePosition = (spec: any, tag: number): number => {\n        if (spec.tagText === 'StandardHeader' && tag === FieldEnum.BeginString) {\n            return 0;\n        } else if (spec.tagText === 'StandardHeader' && tag === FieldEnum.BodyLength) {\n            return 1;\n        } else if (spec.tagText === 'StandardHeader' && tag === FieldEnum.MsgType) {\n            return 2;\n        } else if (spec.tagText === 'StandardTrailer') {\n            return 999999999;\n        } else {\n            return Number(spec.position);\n        }\n    };\n\n    #nonEmpty = (parts: TemplateStringsArray, ...args: string[]): string => {\n        let res: string = parts[0];\n        let i: number = 1;\n        for (i; i < parts.length; i++) {\n            if (args[i - 1] || args[i - 1] === '0') {\n                res += args[i - 1];\n            }\n            res += parts[i];\n        }\n        return res;\n    };\n\n    #validateMessage = (message: Message): any[] => {\n        const result: any[] = [];\n        const messageDataCloned: Field[] = JSON.parse(JSON.stringify(message.data));\n        const messageContentsCloned: IMessageContents[] = JSON.parse(JSON.stringify(message.messageContents));\n\n        messageDataCloned.forEach((field: Field, index: number) => {\n            const spec: IMessageContents | undefined = messageContentsCloned.find((item: IMessageContents) => {\n                if (item.components!.length > 0) {\n                    return item.components!.find((subItem: IMessageContent) => {\n                        const found = Number(subItem.tagText) === field.tag;\n                        if (found) {\n                            subItem.validated = true;\n                        }\n                        return found;\n                    });\n                } else {\n                    item.validated = true;\n                    return Number(item.tagText) === field.tag;\n                }\n            });\n\n            result.push({\n                field,\n                hasValue: true,\n                message: spec ? '' : 'Unknown/unsupported field',\n                position: spec ? this.#calculatePosition(spec, field.tag) : index,\n                reqd: spec ? spec.reqd : '0',\n                spec: spec ? spec : null,\n                valid: true,\n            });\n        });\n\n        messageContentsCloned\n            .filter((item: IMessageContents) => !item.validated)\n            .forEach((spec: IMessageContents) => {\n                if (spec.components!.length > 0) {\n                    spec.components!.filter((subItem: IMessageContent) => !subItem.validated).forEach(\n                        (subSpec: IMessageContent) => {\n                            if (!subSpec.validated) {\n                                result.push({\n                                    field: null,\n                                    hasValue: false,\n                                    position: this.#calculatePosition(subSpec, subSpec.tagText),\n                                    reqd: subSpec.reqd,\n                                    spec: subSpec,\n                                    tagText: subSpec.tagText,\n                                    valid: !(subSpec.reqd === '1'),\n                                });\n                            }\n                        },\n                    );\n                } else if (!spec.validated) {\n                    result.push({\n                        field: null,\n                        hasValue: false,\n                        position: this.#calculatePosition(spec, Number(spec.tagText)),\n                        reqd: spec.reqd,\n                        spec,\n                        tagText: spec.tagText,\n                        valid: !(spec.reqd === '1'),\n                    });\n                }\n            });\n\n        return result;\n    };\n\n    public addField(field: Field): void {\n        this.data.push(field);\n    }\n\n    public addFields(...fields: Field[]): void {\n        fields.forEach((field: Field) => {\n            if (field.tag === FieldEnum.MsgType) {\n                this.data.splice(0, 0, field);\n            } else {\n                this.data.push(field);\n            }\n        });\n    }\n\n    public removeFieldByTag(tag: number): void {\n        const index: number = this.data.findIndex((field: Field) => field.tag === tag);\n        if (index > -1) {\n            this.data.splice(index, 1);\n        }\n    }\n\n    public getField(tag: number): Field | undefined {\n        return this.data.find((field: Field) => field.tag === tag);\n    }\n\n    public getFields(tag: number): Field[] | undefined {\n        return this.data.filter((field: Field) => field.tag === tag);\n    }\n\n    public getFieldValues(): FieldValues {\n        const values: FieldValues = {};\n        this.data.forEach((field: Field) => {\n            if (values[field.tag]) {\n                if (Array.isArray(values[field.tag])) {\n                    values[field.tag] = [...values[field.tag], field.value];\n                } else {\n                    values[field.tag] = [values[field.tag], field.value];\n                }\n            } else {\n                values[field.tag] = field.value;\n            }\n        });\n        return values;\n    }\n\n    public getFieldNameValues(): FieldValues {\n        const values: FieldValues = {};\n        this.data.forEach((field: Field) => {\n            setFieldValue(field, values, false);\n        });\n        return values;\n    }\n\n    public getFieldExplains(): FieldValues {\n        const values: FieldValues = {};\n        this.data.forEach((field: Field) => {\n            setFieldValue(field, values, true);\n        });\n        return values;\n    }\n\n    public getGroup(tag: number): FieldValues {\n        const values: FieldValues = {};\n        const instanceFields: number[] = [];\n        let foundGroup: boolean = false;\n        let instanceIndex: number = 1;\n        let instanceTag: number;\n        this.data.forEach((field: Field) => {\n            if (instanceTag && instanceTag === field.tag) {\n                instanceIndex++;\n            }\n            if (field.tag === tag && !foundGroup) {\n                foundGroup = true;\n                return;\n            } else if (!foundGroup) {\n                return;\n            }\n\n            if (!instanceTag) {\n                instanceTag = field.tag;\n                instanceFields.push(field.tag);\n            } else if (instanceTag && instanceTag !== field.tag && instanceIndex === 1) {\n                instanceFields.push(field.tag);\n            }\n\n            if (instanceIndex > 0 && !instanceFields.includes(field.tag)) {\n                return;\n            }\n\n            setFieldValue(field, values, true);\n        });\n        return values;\n    }\n\n    public getGroupAsArray(tag: number): FieldValues[] {\n        const arrayValues: FieldValues[] = [];\n        const instanceFields: number[] = [];\n        let values: FieldValues = {};\n        let foundGroup: boolean = false;\n        let instanceIndex: number = 1;\n        let instanceTag: number;\n        this.data.forEach((field: Field) => {\n            if (instanceTag && instanceTag === field.tag) {\n                instanceIndex++;\n                arrayValues.push(values);\n                values = {};\n            }\n            if (field.tag === tag && !foundGroup) {\n                foundGroup = true;\n                return;\n            } else if (!foundGroup) {\n                return;\n            }\n\n            if (!instanceTag) {\n                instanceTag = field.tag;\n                instanceFields.push(field.tag);\n            } else if (instanceTag && instanceTag !== field.tag && instanceIndex === 1) {\n                instanceFields.push(field.tag);\n            }\n\n            if (instanceIndex > 0 && !instanceFields.includes(field.tag)) {\n                arrayValues.push(values);\n                values = {};\n                return;\n            }\n\n            if (values[field.name!]) {\n                if (Array.isArray(values[field.name!])) {\n                    values[field.name!] = [...values[field.name!], explain(field)];\n                } else {\n                    values[field.name!] = [values[field.name!], explain(field)];\n                }\n            } else {\n                values[field.name!] = explain(field);\n            }\n        });\n        return arrayValues;\n    }\n\n    public setField(field: Field): void {\n        const index: number = this.data.findIndex((item: Field) => item.tag === field.tag);\n        if (index > -1) {\n            this.data[index] = field;\n        }\n    }\n\n    public setString(fixString: string): void {\n        this.messageString = fixString;\n    }\n\n    public setDescription(description: string): void {\n        this.description = description;\n    }\n\n    public setMessageType(messageType: string): void {\n        this.messageType = messageType;\n    }\n\n    public setMessageSequence(messageSequence: number): void {\n        this.messageSequence = messageSequence;\n    }\n\n    public setMessageContents(messageContents: ISpecMessageContents[]): void {\n        this.messageContents = messageContents;\n    }\n\n    public getEnum(tag: number, value: number | string | boolean | null): ISpecEnums | undefined {\n        if (!this.getField(FieldEnum.MsgType) || !this.getField(FieldEnum.MsgType)!.tag) {\n            return;\n        }\n\n        if (!this.getField(FieldEnum.MsgType) || !this.getField(FieldEnum.MsgType)!.value) {\n            return;\n        }\n\n        const enums = new Enums();\n        return enums.getEnum(tag.toString(), value);\n    }\n\n    public getBriefDescription(): string | null {\n        let returnValue: string = '';\n        const sideField: Field | undefined = this.getField(FieldEnum.Side);\n        let side: string | null = '';\n        if (sideField && sideField.enumeration) {\n            side = sideField.enumeration.symbolicName;\n            side = side ? side.replace('Sell', 'SL').toUpperCase() : null;\n        }\n\n        if (this.getField(FieldEnum.LeavesQty) !== undefined) {\n            let quantity: string = '';\n\n            if (this.getField(FieldEnum.ContraTradeQty)) {\n                quantity = String(this.getField(FieldEnum.ContraTradeQty)!.value);\n            } else {\n                quantity = this.getField(FieldEnum.OrderQty) ? String(this.getField(FieldEnum.OrderQty)!.value) : '';\n            }\n            const leavesQuantity: string = String(this.getField(FieldEnum.LeavesQty)!.value);\n            const lastPrice: number = this.getField(FieldEnum.LastPx)\n                ? Number(this.getField(FieldEnum.LastPx)!.value)\n                : 0;\n            returnValue = this.#nonEmpty`${quantity} @${\n                lastPrice || lastPrice === 0 ? lastPrice.toFixed(2) : '0.00'\n            } ${this.getField(FieldEnum.LeavesQty)!.name!.replace('LeavesQty', 'LvsQty')} ${parseInt(\n                leavesQuantity,\n                10,\n            ).toString()}`;\n        } else if (this.getField(FieldEnum.OrderQty)) {\n            const orderQuantity: string = String(this.getField(FieldEnum.OrderQty)!.value);\n            const symbol: string = this.getField(FieldEnum.Symbol)\n                ? String(this.getField(FieldEnum.Symbol)!.value)\n                : '';\n            const orderType: Field = this.getField(FieldEnum.OrdType)!;\n            let symbolicName: string = '';\n            if (orderType && orderType.enumeration! && orderType.enumeration.symbolicName) {\n                symbolicName = orderType.enumeration.symbolicName;\n            }\n            const timeInForceField = this.getField(FieldEnum.TimeInForce)!;\n            let timeInForce: string | null = null;\n            if (timeInForceField && timeInForceField.enumeration!) {\n                timeInForce = timeInForceField.enumeration.symbolicName;\n            }\n\n            if (this.getField(FieldEnum.Price)) {\n                let price: number | string = Number(this.getField(FieldEnum.Price)!.value);\n                if (price && price >= 1) {\n                    price = price.toFixed(2);\n                } else if (price !== undefined && price < 1) {\n                    price = price.toString().replace('0.', '.');\n                }\n                returnValue = this.#nonEmpty`${side || ''} ${orderQuantity} ${symbol ? symbol.toUpperCase() : ''} ${\n                    symbolicName ? symbolicName.replace('Market', 'MKT').replace('Limit', 'LMT').toUpperCase() : ''\n                } @${price.toString()} ${timeInForce ? timeInForce.toUpperCase() : ''}`;\n            } else {\n                returnValue = this.#nonEmpty`${side || ''} ${orderQuantity} ${symbol ? symbol.toUpperCase() : ''} ${\n                    symbolicName ? symbolicName.replace('Market', 'MKT').replace('Limit', 'LMT').toUpperCase() : ''\n                } ${timeInForce ? timeInForce.toUpperCase() : ''}`;\n            }\n        } else {\n            const messageType = this.getField(FieldEnum.MsgType);\n            if (messageType && messageType.tag && messageType.value) {\n                return this.getEnum(messageType.tag, String(messageType.value))!.SymbolicName;\n            } else {\n                return null;\n            }\n        }\n\n        return returnValue.trim();\n    }\n\n    public validateBodyLength(value: string): boolean {\n        const index: number = this.messageString.indexOf(TAG_MSGTYPE);\n        const lastIndex: number = this.messageString.lastIndexOf(TAG_CHECKSUM);\n        const startLength: number = index === -1 ? 0 : index;\n        const endLength: number = lastIndex === -1 ? this.messageString.length : lastIndex;\n        const bodyLength: number = endLength - startLength;\n\n        this.bodyLengthValue = Number(value);\n        this.bodyLengthExpected = bodyLength;\n        this.bodyLengthValid = Number(value) === bodyLength;\n        return this.bodyLengthValid;\n    }\n\n    public validateChecksum(value: string): boolean {\n        const lastIndex: number = this.messageString.lastIndexOf(TAG_CHECKSUM);\n        const length: number = lastIndex === -1 ? this.messageString.length : lastIndex;\n        const data: string = this.messageString.substring(0, length);\n        const calculatedChecksum: string = this.#calculateChecksum(data);\n\n        this.checksumValue = value;\n        this.checksumExpected = calculatedChecksum;\n        this.checksumValid = value === calculatedChecksum;\n        return this.checksumValid;\n    }\n\n    public validate(): any[] {\n        return this.#validateMessage(this);\n    }\n\n    public encode(separator: string = SOH): string {\n        const fields: Field[] = this.data.map((field: Field) => new Field(field.tag, field.value));\n        const data: string[] = [];\n\n        let beginString: string = new Field(FieldEnum.BeginString, this.fixVersion).toString();\n        let bodyLength: string = new Field(FieldEnum.BodyLength, MARKER_BODYLENGTH).toString();\n        let checksum: string = new Field(FieldEnum.CheckSum, MARKER_CHECKSUM).toString();\n        let index: number = fields.findIndex((field) => field.tag === FieldEnum.BeginString);\n\n        // Check for header\n        if (index > -1) {\n            beginString = fields[index].toString();\n            fields.splice(index, 1);\n        }\n\n        // Check for body length\n        index = fields.findIndex((field) => field.tag === FieldEnum.BodyLength);\n        if (index > -1) {\n            bodyLength = fields[index].toString();\n            fields.splice(index, 1);\n        }\n\n        // Check for trailer\n        index = fields.findIndex((field) => field.tag === FieldEnum.CheckSum);\n        if (index > -1) {\n            checksum = fields[index].toString();\n            fields.splice(index, 1);\n        }\n\n        data.push(beginString);\n        data.push(bodyLength);\n\n        // Add other fields\n        fields.forEach((field) => {\n            data.push(field.toString());\n        });\n\n        data.push(checksum);\n\n        let fixMessage: string = `${data.join(separator)}${separator}`;\n        fixMessage = fixMessage.replace(MARKER_BODYLENGTH, this.#calculateBodyLength(fixMessage).toString());\n\n        const length: number =\n            fixMessage.lastIndexOf(TAG_CHECKSUM) === -1 ? fixMessage.length : fixMessage.lastIndexOf(TAG_CHECKSUM);\n        const calculatedChecksum: string = this.#calculateChecksum(fixMessage.substring(0, length));\n        fixMessage = fixMessage.replace(MARKER_CHECKSUM, calculatedChecksum);\n\n        return fixMessage;\n    }\n\n    public clone(): Message {\n        const cloned: Message = new Message(this.fixVersion, ...this.data);\n        cloned.messageSequence = this.messageSequence;\n        cloned.messageType = this.messageType;\n        return cloned;\n    }\n\n    private reset(): void {\n        this.data = [];\n        this.messageString = '';\n        this.description = '';\n        this.messageType = '';\n        this.messageSequence = -1;\n        this.messageContents = [];\n        this.bodyLengthValid = false;\n        this.checksumValid = false;\n        this.checksumValue = null;\n        this.checksumExpected = null;\n        this.bodyLengthValue = null;\n        this.bodyLengthExpected = null;\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Enums as EnumsCache } from './enums/Enums';\nimport { Field } from './fields/Field';\nimport { Fields as FieldsCache } from './fields/Fields';\nimport { FieldEnum } from './fieldtypes/FieldEnum';\nimport { Message } from './message/Message';\nimport { DEFAULT_FIX_VERSION, RE_ESCAPE, RE_FIND, SOH, STRING_EQUALS } from './util/util';\n\nexport type Protocol = 'tcp' | 'ssl-tcp' | 'tls-tcp' | 'websocket';\nexport type ConnectionType = 'acceptor' | 'initiator';\n\nexport type Options = {\n    host?: string;\n    port?: number;\n    protocol?: Protocol;\n    sender?: string;\n    target?: string;\n    heartbeatIntervalSeconds?: number;\n    fixVersion?: string;\n    tlsKey?: unknown | null;\n    tlsCert?: unknown | null;\n    tlsUseSNI?: boolean;\n    logging?: boolean;\n    proxy?: string | null;\n    onReady?: () => void;\n    onMessage?: (message: Message) => void;\n    onOpen?: () => void;\n    onClose?: () => void;\n    onError?: (error?: Error) => void;\n};\n\nexport class FIXParserBase {\n    public fixVersion: string = DEFAULT_FIX_VERSION;\n    public message: Message | null = null;\n    public messageTags: string[] = [];\n    public messageString: string = '';\n    public fields: FieldsCache = new FieldsCache();\n    public enums: EnumsCache = new EnumsCache();\n\n    public processMessage(): void {\n        const matches: RegExpExecArray | null = RE_FIND.exec(this.messageString);\n        if (matches && matches.length === 2) {\n            const stringData: string = this.messageString.replace(\n                new RegExp(matches[1].replace(RE_ESCAPE, '\\\\$&'), 'g'),\n                SOH,\n            );\n            this.message!.setString(stringData);\n            this.messageTags = stringData.split(SOH);\n        } else {\n            this.message = null;\n            this.messageTags = [];\n        }\n    }\n\n    public processFields(): void {\n        let tag: number;\n        let value: string | number | null;\n        let i: number = 0;\n        let equalsOperator: number;\n        let field: Field;\n\n        for (i; i < this.messageTags.length - 1; i++) {\n            equalsOperator = this.messageTags[i].indexOf(STRING_EQUALS);\n\n            tag = Number(this.messageTags[i].substring(0, equalsOperator));\n            value = this.messageTags[i].substring(equalsOperator + 1);\n\n            field = new Field(tag, value);\n\n            this.fields.processField(this.message!, field);\n            this.enums.processEnum(field);\n\n            if (field.tag === FieldEnum.BeginString) {\n                this.message!.fixVersion = String(field.value);\n            } else if (field.tag === FieldEnum.BodyLength) {\n                this.message!.validateBodyLength(value);\n            } else if (field.tag === FieldEnum.CheckSum) {\n                this.message!.validateChecksum(value);\n            }\n\n            this.message!.addField(field);\n        }\n    }\n\n    public parse(data: string): Message[] {\n        let i: number = 0;\n\n        const messageStrings: string[] = data ? data.split('8=FIX') : [];\n        const messages: Message[] = [];\n\n        for (i; i < messageStrings.length; i++) {\n            this.message = new Message(this.fixVersion);\n            this.messageString = `8=FIX${messageStrings[i]}`;\n            if (this.messageString.indexOf(SOH) > -1) {\n                this.message.setString(this.messageString);\n                this.messageTags = this.messageString.split(SOH);\n            } else {\n                this.processMessage();\n            }\n\n            if (this.message) {\n                this.processFields();\n                messages.push(this.message);\n            }\n        }\n\n        return messages;\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Field } from '../fields/Field';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { MessageEnum } from '../fieldtypes/MessageEnum';\nimport { IFIXParser } from '../IFIXParser';\nimport { Message } from '../message/Message';\n\nexport const heartBeat = (parser: IFIXParser, testReqId?: Field): Message => {\n    const fields: Field[] = [\n        new Field(FieldEnum.BeginString, parser.fixVersion),\n        new Field(FieldEnum.MsgType, MessageEnum.Heartbeat),\n        new Field(FieldEnum.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n        new Field(FieldEnum.SenderCompID, parser.sender),\n        new Field(FieldEnum.TargetCompID, parser.target),\n        new Field(FieldEnum.SendingTime, parser.getTimestamp(new Date())),\n    ];\n\n    if (testReqId) {\n        fields.push(testReqId);\n    }\n\n    return parser.createMessage(...fields);\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Field } from '../fields/Field';\nimport { EncryptMethodEnum } from '../fieldtypes/EncryptMethodEnum';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { MessageEnum } from '../fieldtypes/MessageEnum';\nimport { IFIXParser } from '../IFIXParser';\nimport { Message } from '../message/Message';\nimport { MessageBuffer } from '../util/MessageBuffer';\nimport { log, logWarning } from '../util/util';\n\nexport const handleLogon = (parser: IFIXParser, messageBuffer: MessageBuffer, message: Message): boolean => {\n    if (parser.isLoggedIn) {\n        if (parser.connectionType === 'acceptor') {\n            if (\n                message.getField(FieldEnum.ResetSeqNumFlag) &&\n                message.getField(FieldEnum.ResetSeqNumFlag)!.value!.toString() === 'Y'\n            ) {\n                log(`FIXServer (${parser.protocol!.toUpperCase()}): -- Logon acknowledged by acceptor.`);\n                parser.nextNumIn = 1;\n            }\n        } else {\n            log(`FIXServer (${parser.protocol!.toUpperCase()}): -- Logon acknowledged by initiator.`);\n        }\n        return true;\n    }\n\n    const fixVersion: string | null = String(message.getField(FieldEnum.BeginString)!.value);\n    let validSender: boolean = true;\n    let validTarget: boolean = true;\n\n    if (fixVersion) {\n        log(`FIXServer (${parser.protocol!.toUpperCase()}): -- FIX version set to ${fixVersion}`);\n        parser.fixVersion = fixVersion;\n        if (parser.fixParser) {\n            parser.fixParser.fixVersion = fixVersion;\n        }\n    }\n\n    const target: string | null = message.getField(FieldEnum.TargetCompID)\n        ? message.getField(FieldEnum.TargetCompID)!.value!.toString()\n        : parser.sender;\n    const sender: string | null = message.getField(FieldEnum.SenderCompID)\n        ? message.getField(FieldEnum.SenderCompID)!.value!.toString()\n        : parser.target;\n    if (target && target !== parser.sender) {\n        logWarning(\n            `FIXServer (${parser.protocol!.toUpperCase()}): -- Expected TargetCompID=${\n                parser.sender\n            }, but got ${target}`,\n        );\n        validTarget = false;\n    }\n    if (sender && sender !== parser.target) {\n        logWarning(\n            `FIXServer (${parser.protocol!.toUpperCase()}): -- Expected SenderCompID=${\n                parser.target\n            }, but got ${sender}`,\n        );\n        validSender = false;\n    }\n\n    if (validSender && validTarget) {\n        if (parser.connectionType === 'acceptor') {\n            parser.nextNumIn = 1;\n            parser.setNextTargetMsgSeqNum(1);\n\n            const logonAcknowledge: Message = parser.createMessage(\n                new Field(FieldEnum.MsgType, MessageEnum.Logon),\n                new Field(FieldEnum.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n                new Field(FieldEnum.SenderCompID, target),\n                new Field(FieldEnum.SendingTime, parser.getTimestamp(new Date())),\n                new Field(FieldEnum.TargetCompID, sender),\n                new Field(FieldEnum.ResetSeqNumFlag, 'Y'),\n                new Field(FieldEnum.EncryptMethod, EncryptMethodEnum.None),\n                new Field(\n                    FieldEnum.HeartBtInt,\n                    message.getField(FieldEnum.HeartBtInt)\n                        ? (message.getField(FieldEnum.HeartBtInt)!.value as number)\n                        : parser.heartBeatInterval,\n                ),\n            );\n            parser.send(logonAcknowledge);\n            log(`FIXServer (${parser.protocol!.toUpperCase()}): >> sent Logon acknowledge`);\n        } else {\n            if (\n                message.getField(FieldEnum.ResetSeqNumFlag) &&\n                message.getField(FieldEnum.ResetSeqNumFlag)!.value!.toString() === 'Y'\n            ) {\n                log(\n                    `FIXServer (${parser.protocol!.toUpperCase()}): -- Logon contains ResetSeqNumFlag=Y, resetting sequence numbers to 1`,\n                );\n                parser.nextNumIn = 1;\n                parser.setNextTargetMsgSeqNum(2);\n            }\n        }\n\n        parser.isLoggedIn = true;\n        log(`FIXServer (${parser.protocol!.toUpperCase()}): >> Logon successful by ${parser.connectionType}`);\n        const heartBeatInterval: number = message.getField(FieldEnum.HeartBtInt)\n            ? Number(message.getField(FieldEnum.HeartBtInt)!.value!)\n            : parser.heartBeatInterval;\n        parser.heartBeatInterval = heartBeatInterval;\n        if (parser.fixParser) {\n            parser.fixParser.heartBeatInterval = heartBeatInterval;\n        }\n        parser.startHeartbeat(heartBeatInterval);\n        return true;\n    } else {\n        const logonReject: Message = parser.createMessage(\n            new Field(FieldEnum.MsgType, MessageEnum.Logout),\n            new Field(FieldEnum.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n            new Field(FieldEnum.SenderCompID, validSender ? sender : 'INVALID_SENDER'),\n            new Field(FieldEnum.SendingTime, parser.getTimestamp(new Date())),\n            new Field(FieldEnum.TargetCompID, validTarget ? target : 'INVALID_TARGET'),\n            new Field(FieldEnum.Text, 'Invalid Logon TARGET or SENDER.'),\n        );\n        parser.isLoggedIn = false;\n        parser.send(logonReject);\n        logWarning(`FIXServer (${parser.protocol!.toUpperCase()}): >> sent Logout due to invalid Logon`);\n        parser.stopHeartbeat();\n        parser.close();\n        return false;\n    }\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Field } from '../fields/Field';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { MessageEnum } from '../fieldtypes/MessageEnum';\nimport { IFIXParser } from '../IFIXParser';\nimport { Message } from '../message/Message';\nimport { log } from '../util/util';\n\nexport const handleLogout = (parser: IFIXParser, message: Message): void => {\n    parser.isLoggedIn = false;\n\n    const logoutAcknowledge: Message = parser.createMessage(\n        new Field(FieldEnum.MsgType, MessageEnum.Logout),\n        new Field(FieldEnum.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n        new Field(\n            FieldEnum.SenderCompID,\n            message.getField(FieldEnum.SenderCompID)\n                ? message.getField(FieldEnum.SenderCompID)!.value!.toString()\n                : parser.sender,\n        ),\n        new Field(FieldEnum.SendingTime, parser.getTimestamp(new Date())),\n        new Field(\n            FieldEnum.TargetCompID,\n            message.getField(FieldEnum.TargetCompID)\n                ? message.getField(FieldEnum.TargetCompID)!.value!.toString()\n                : parser.target,\n        ),\n        new Field(FieldEnum.Text, 'Logout acknowledgement'),\n    );\n    parser.send(logoutAcknowledge);\n    log(`FIXServer (${parser.protocol!.toUpperCase()}): >> sent Logout acknowledge`);\n    parser.stopHeartbeat();\n    parser.close();\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Message } from './../message/Message';\n\nexport const MAX_BUFFER: number = 2500;\n\nexport class MessageBuffer {\n    private buffer: Message[] = [];\n\n    public add(message: Message): void {\n        if (this.buffer.length === MAX_BUFFER) {\n            this.buffer.pop();\n        }\n        this.buffer.unshift(message);\n    }\n\n    public getByMsgSequence(msgSequence: number): Message | null {\n        const index: number = this.buffer.findIndex((message) => message.messageSequence === msgSequence);\n        if (index > -1) {\n            return this.buffer[index];\n        } else {\n            return null;\n        }\n    }\n\n    public size(): number {\n        return this.buffer.length;\n    }\n\n    public clear(): void {\n        this.buffer = [];\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Field } from '../fields/Field';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { IFIXParser } from '../IFIXParser';\nimport { Message } from '../message/Message';\nimport { MAX_BUFFER, MessageBuffer } from '../util/MessageBuffer';\nimport { log, logWarning } from '../util/util';\n\nexport const handleResendRequest = (parser: IFIXParser, messageBuffer: MessageBuffer, message: Message): void => {\n    const from: number | null = message.getField(FieldEnum.BeginSeqNo)\n        ? Number(message.getField(FieldEnum.BeginSeqNo)!.value)\n        : null;\n    let to: number | null = message.getField(FieldEnum.EndSeqNo)\n        ? Number(message.getField(FieldEnum.EndSeqNo)!.value)\n        : messageBuffer.size();\n\n    if (to === 0) {\n        to = messageBuffer.size();\n    }\n\n    if (from && from >= 1 && to <= MAX_BUFFER) {\n        let i: number = from;\n        for (from; i <= to; i++) {\n            const messageBySequence: Message | null = messageBuffer.getByMsgSequence(i);\n            if (messageBySequence) {\n                messageBySequence.removeFieldByTag(FieldEnum.PossDupFlag);\n                messageBySequence.addField(new Field(FieldEnum.PossDupFlag, 'Y'));\n\n                if (messageBySequence.getField(FieldEnum.SendingTime)) {\n                    const originalSendingTime: string = `${messageBySequence.getField(FieldEnum.SendingTime)!.value}`;\n                    messageBySequence.removeFieldByTag(FieldEnum.SendingTime);\n                    messageBySequence.addField(new Field(FieldEnum.SendingTime, parser.getTimestamp(new Date())));\n\n                    messageBySequence.removeFieldByTag(FieldEnum.OrigSendingTime);\n                    messageBySequence.addField(new Field(FieldEnum.OrigSendingTime, originalSendingTime));\n                }\n                parser.send(messageBySequence);\n            } else {\n                logWarning(\n                    `${\n                        parser.parserName\n                    } (${parser.protocol!.toUpperCase()}): -- Could not find message with sequence ${i}`,\n                );\n            }\n        }\n        log(`${parser.parserName} (${parser.protocol!.toUpperCase()}): >> sent Logon acknowledge`);\n    } else {\n        logWarning(`${parser.parserName} (${parser.protocol!.toUpperCase()}): -- BeginSeqNo or EndSeqNo out of range`);\n    }\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { IFIXParser } from '../IFIXParser';\nimport { Message } from '../message/Message';\nimport { log } from '../util/util';\n\nexport const handleSequenceReset = (parser: IFIXParser, message: Message): void => {\n    const newSeqNo: number = message.getField(FieldEnum.NewSeqNo)!.value as number;\n    if (newSeqNo && Number.isFinite(newSeqNo)) {\n        log(\n            `${\n                parser.parserName\n            } (${parser.protocol!.toUpperCase()}): -- SequenceReset: new sequence number ${newSeqNo}`,\n        );\n        if (parser.parserName === 'FIXServer') {\n            parser.setNextTargetMsgSeqNum(newSeqNo);\n        } else {\n            parser.nextNumIn = Number(newSeqNo);\n        }\n    }\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Field } from '../fields/Field';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { IFIXParser } from '../IFIXParser';\nimport { Message } from '../message/Message';\nimport { heartBeat } from '../messagetemplates/MessageTemplates';\nimport { log } from '../util/util';\n\nexport const handleTestRequest = (parser: IFIXParser, message: Message): void => {\n    let heartBeatMessage: Message = heartBeat(parser);\n    const testReqIdValue: string | null = message.getField(FieldEnum.TestReqID)\n        ? String(message.getField(FieldEnum.TestReqID)!.value)\n        : null;\n    if (testReqIdValue) {\n        const testReqId: Field = new Field(FieldEnum.TestReqID, testReqIdValue);\n        heartBeatMessage = heartBeat(parser, testReqId);\n        parser.send(heartBeatMessage);\n        log(\n            `${\n                parser.parserName\n            } (${parser.protocol!.toUpperCase()}): >> responded to TestRequest with Heartbeat<TestReqID=${testReqIdValue}>`,\n        );\n    } else {\n        parser.send(heartBeatMessage);\n        log(`${parser.parserName} (${parser.protocol!.toUpperCase()}): >> responded to TestRequest with Heartbeat`);\n    }\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { MessageEnum } from '../fieldtypes/MessageEnum';\nimport { FIXParser } from '../FIXParser';\nimport { FIXParser as FIXParserBrowser } from '../FIXParserBrowser';\nimport { Message } from '../message/Message';\nimport { log, logWarning } from '../util/util';\nimport { handleLogon } from './SessionLogon';\nimport { handleLogout } from './SessionLogout';\nimport { handleResendRequest } from './SessionResendRequest';\nimport { handleSequenceReset } from './SessionSequenceReset';\nimport { handleTestRequest } from './SessionTestRequest';\n\nexport const clientProcessMessage = (parser: FIXParser | FIXParserBrowser, message: Message): void => {\n    parser.nextNumIn++;\n    if (\n        message.messageSequence !== parser.nextNumIn &&\n        message.messageType !== MessageEnum.SequenceReset &&\n        message.messageType !== MessageEnum.Logon\n    ) {\n        logWarning(\n            `FIXParser (${parser.protocol!.toUpperCase()}): -- Expected MsgSeqNum ${parser.nextNumIn}, but got ${\n                message.messageSequence\n            }`,\n        );\n    }\n    log(`FIXParser (${parser.protocol!.toUpperCase()}): << received ${message.description} ${message.encode('|')}`);\n\n    if (message.messageType === MessageEnum.SequenceReset) {\n        handleSequenceReset(parser, message);\n    } else if (message.messageType === MessageEnum.TestRequest) {\n        handleTestRequest(parser, message);\n    } else if (message.messageType === MessageEnum.Logon) {\n        handleLogon(parser, parser.messageBufferOut, message);\n    } else if (message.messageType === MessageEnum.Logout) {\n        handleLogout(parser, message);\n    } else if (message.messageType === MessageEnum.ResendRequest) {\n        handleResendRequest(parser, parser.messageBufferOut, message);\n    }\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Transform, TransformCallback, TransformOptions } from 'stream';\n\nexport class FrameDecoder extends Transform {\n    public data: string | null;\n\n    constructor(opts?: TransformOptions) {\n        super(opts);\n        this.data = '';\n    }\n\n    public override _transform(chunk: string, encoding: string, callback: TransformCallback): void {\n        const chunks: string[] = (String(this.data) + chunk).split(/(8=.+?\\x0110=\\d\\d\\d\\x01)/gs);\n        let i: number = 0;\n        for (i; i < chunks.length - 1; i++) {\n            this.push(chunks[i]);\n        }\n        this.data = chunks[chunks.length - 1];\n        callback();\n    }\n\n    public override destroy(error?: Error) {\n        this.data = null;\n        return super.destroy(error);\n    }\n}\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Field } from '../fields/Field';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { MessageEnum } from '../fieldtypes/MessageEnum';\nimport { IFIXParser } from '../IFIXParser';\nimport { Message } from '../message/Message';\nimport { log } from '../util/util';\n\nexport const handleFirstMessage = (parser: IFIXParser, message: Message): boolean => {\n    if (message.getField(FieldEnum.MsgType)!.value! === MessageEnum.Logon) {\n        return true;\n    } else {\n        const firstMessageNotALogon: Message = parser.createMessage(\n            new Field(FieldEnum.MsgType, MessageEnum.Logout),\n            new Field(FieldEnum.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n            new Field(\n                FieldEnum.SenderCompID,\n                message.getField(FieldEnum.SenderCompID)\n                    ? message.getField(FieldEnum.SenderCompID)!.value!.toString()\n                    : parser.sender,\n            ),\n            new Field(FieldEnum.SendingTime, parser.getTimestamp(new Date())),\n            new Field(\n                FieldEnum.TargetCompID,\n                message.getField(FieldEnum.TargetCompID)\n                    ? message.getField(FieldEnum.TargetCompID)!.value!.toString()\n                    : parser.target,\n            ),\n            new Field(FieldEnum.Text, 'First message not a Logon'),\n        );\n        parser.send(firstMessageNotALogon);\n        log(`FIXServer (${parser.protocol!.toUpperCase()}): >> sent Logout`);\n        parser.stopHeartbeat();\n        parser.close();\n        return false;\n    }\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { Field } from '../fields/Field';\nimport { FieldEnum } from '../fieldtypes/FieldEnum';\nimport { MessageEnum } from '../fieldtypes/MessageEnum';\nimport { IFIXParser } from '../IFIXParser';\nimport { Message } from '../message/Message';\nimport { log, logWarning } from '../util/util';\n\nexport const handleSequence = (parser: IFIXParser, message: Message): boolean => {\n    if (\n        message.messageSequence !== parser.nextNumIn &&\n        !(parser.connectionType === 'acceptor' && message.messageType === MessageEnum.Logon)\n    ) {\n        logWarning(\n            `FIXServer (${parser.protocol!.toUpperCase()}): Expected MsgSeqNum ${parser.nextNumIn}, but got ${\n                message.messageSequence\n            }`,\n        );\n\n        // Message has wrong sequence, respond with ResendRequest\n        const resendRequest: Message = parser.createMessage(\n            new Field(FieldEnum.MsgType, MessageEnum.ResendRequest),\n            new Field(FieldEnum.MsgSeqNum, parser.getNextTargetMsgSeqNum()),\n            new Field(FieldEnum.SenderCompID, parser.sender),\n            new Field(FieldEnum.SendingTime, parser.getTimestamp(new Date())),\n            new Field(FieldEnum.TargetCompID, parser.target),\n            new Field(FieldEnum.BeginSeqNo, parser.getNextTargetMsgSeqNum()),\n            new Field(FieldEnum.EndSeqNo, 0),\n        );\n        log(\n            `FIXServer (${parser.protocol!.toUpperCase()}): Sending ResendRequest from ${parser.getNextTargetMsgSeqNum()} to 0`,\n        );\n        parser.send(resendRequest);\n        return false;\n    }\n    return true;\n};\n", "/*\n * fixparser\n * https://gitlab.com/logotype/fixparser.git\n *\n * Copyright \u00A9 2022 fixparser.io\n * Released under Commercial license. Check LICENSE.md\n */\nimport { MessageEnum } from '../fieldtypes/MessageEnum';\nimport { FIXServer } from '../FIXServer';\nimport { Message } from '../message/Message';\nimport { log, logError } from '../util/util';\nimport { handleFirstMessage } from './SessionFirstMessage';\nimport { handleLogon } from './SessionLogon';\nimport { handleLogout } from './SessionLogout';\nimport { handleResendRequest } from './SessionResendRequest';\nimport { handleSequence } from './SessionSequence';\nimport { handleSequenceReset } from './SessionSequenceReset';\nimport { handleTestRequest } from './SessionTestRequest';\n\nexport const serverProcessMessage = (parser: FIXServer, message: Message): void => {\n    handleSequence(parser, message);\n    log(`FIXServer (${parser.protocol.toUpperCase()}): << received ${message.description} ${message.encode('|')}`);\n\n    if (parser.messageCounter === 0 && !handleFirstMessage(parser, message)) {\n        logError(`FIXServer (${parser.protocol.toUpperCase()}): First message not a logon!`);\n        return;\n    } else if (message.messageType === MessageEnum.SequenceReset) {\n        handleSequenceReset(parser, message);\n    } else if (message.messageType === MessageEnum.TestRequest) {\n        handleTestRequest(parser, message);\n    } else if (message.messageType === MessageEnum.Logon) {\n        handleLogon(parser, parser.messageBufferOut, message);\n    } else if (message.messageType === MessageEnum.Logout) {\n        handleLogout(parser, message);\n    } else if (message.messageType === MessageEnum.ResendRequest) {\n        handleResendRequest(parser, parser.messageBufferOut, message);\n    }\n    parser.nextNumIn++;\n    parser.messageCounter++;\n};\n"],
  "mappings": "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",
  "names": ["createWebSocketStream", "err", "data", "Receiver", "Sender", "URL", "Receiver", "Sender", "WebSocket", "key", "protocol", "WebSocket", "WebSocketServer", "version", "version", "log", "useColors", "createAgent", "HttpsProxyAgent", "createHttpsProxyAgent", "WebSocket", "AllocPositionEffectEnum", "EncryptMethodEnum", "ExecTypeEnum", "FieldEnum", "HandlInstEnum", "MarketDepthEnum", "MDEntryTypeEnum", "MDUpdateTypeEnum", "MessageEnum", "OrderStatusEnum", "OrderTypesEnum", "SideEnum", "SubscriptionRequestTypeEnum", "TimeInForceEnum", "batch1", "batch2", "batch3"]
}
